I have been programming for almost 6 years now.. I love programming, I love debugging, I know many different ways of programming, aspect oriented programming, object oriented programming, procedural programming, etc. I have worked for over 4 companies in san francisco mainly as a part time job, internships, and summer jobs. A part of my experience is working for Oracle, Bit Hanger, Ajent, iD Tech Camps. All of my positions were specifically programming, either servers side, phone applications, computer applications, multi-platform application, programming specific arm chips for both tracking purposes, and other space space analyzing related issues. I will tell you one thing. You want to be a successful cs major, and get a cs job in your life ? LOVE programming, why ? because programming is not like math or physics where you sit down for 1, 2, or 3 hours and then youre done. No.. programming could take days. Another thing is you have to be GREAT in object oriented programming for many jobs. Especially for game companies, and business side software development. If youre not that good at it leave it ! many will tell you that youll get better at it with time. Ill say give it a month. If by the end of that month your not pretty good in oop programming you I believe you should look into something else.