Software Engineer at Google
You have a great goal
This is mostly about what all things you should do during your undergrad to help you become a good programmer. 1) Be strong in one programming language (may be Java or Python) 2) Once you have taken Algorithm & data structure class in school, start participating in coding competitions like ACM ICPC which are inter school coding competions. Solve problems & projects on topcoder. Don't worry about language required for project. If you are good at one programming language (step 1), picking up any other language would not be difficult. Syntax would be different for different language but you always have references available for those online. 3) Try doing summer projects with Google summer of code which will look good on your resume and will give you very good experience solving some real world projects. 4) Apply for summer/winter internship for all years of your undergrad so that you have good software projects in your resume which will help when you apply for full time job.