What should my goals be as a CS major?

<p>Ok, so I go to a top 20 university, and we're also ranked pretty good for CS (Around #20 on the US news rankings). I'm wondering what my goals in terms of GPA and other things should be as a CS major. A lot of my friends are pre-med and can say things like "I need to try to get a GPA of 3.5+" or "I need to get research experience" but I really have no clue what I should be trying to do.</p>

<p>I want to be able to:
-Have the option of going to grad school/ doing research
-Get a good internship over the summer
-Be at least some what competitive at many top companies</p>

<p>The #1 attribute to be successful in software engineering has nothing to do with academics. The #1 attribute dedicating yourself to stay on top of the latest trends and techniques in the industry. Guess what?..in CS, we are very lucky because we can do that in the comfort of our own home or any downtime at our job (while getting paid for it).</p>

<p>Having said all of that…</p>

<p>Even though I was able to parlay C+/B- grades from a “middle of the pack” state school (Michigan State) into a 20+ year software engineering career and even sneaked in the back door and snagged a graduate engineering degree, I DO KNOW that having good a good GPA (3.0+) helps…for these reasons:</p>

<p>0) Those C+/B- grades kept me out being admitted as CS major. By the stroke of luck, the same semester when Michigan State denied my CS admission, the Math department started the Computational Mathematics program (which didn’t have a 3.3/3.4 GPA requirement for admission)</p>

<p>1) Those C+/B- grades immediately eliminated me from internships. True, I lucked out and did database work for a research lab in my school’s College of Medicine, BUT…it was not like having that Fortune-500 company on your resume for an internship.</p>

<p>2) I had to wait and build up proven work experience to gain “provisional admission” into grad school. On top of that, the number of grad schools that allow the “sneak in the back door” path to graduate school using “provisional admission” is low.</p>

<p>Another thing to aim for is to be marketable and employable. Databases, networks and operating systems are the heartbeat of many companies’ I.T/Software departments.</p>

<p>The last thing relates to my “#1 attribute” for above. Be ready and willing to shut off the rest of the world in order to learn the material.</p>