Comp Sci major advice

<p>Hey all. As far as CS electives go, would you guys suggest taking courses that all fall into one track (i.e. computer security) or going the route of diversity and taking electives from all aspects of CS?</p>

<p>Currently I plan on working as a software engineer / programmer / software developer / <em>insert title for similar job positions here</em> etc. you get the idea. I would like to be somewhat flexible though if possible.</p>

<p>Here are my options for electives. Out of these, which do you guys think one would benefit most from learning in a college course vs. just learning on one's own (i.e. learning the material provided in "Internet Technology" vs. learning Cryptography on one's own)? Which would you consider invaluable or near invaluable?</p>

<p>NOTE: I can only choose seven.
Computer</a> Science, Rutgers University: Degree Requirements</p>

<p>Core courses already include:
- Introductory computer science course
- Data Structures
- Discrete Structures 1 & 2
- Computer Architecture
- Design and Analysis of Algorithms</p>

<p>Also, would it be wise to take multivariable calculus (only up to Calc 2 is required) or is it unnecessary (for someone who MAY consider going into 3D graphics development)? </p>

<p>I know this was long, but thanks for all who took the time to read (and even better, respond!).</p>

<p>For industry software jobs, you probably want 352, 416, 419, 437, and probably 417 and 431. For grad school preparation, perhaps also 452, 415, and 411.</p>

<p>Many of the topics can be learned on your own if you have a strong basis in the fundamentals, but having gotten the most commonly used concepts by graduation time means that you are more likely to be able to hit the job running.</p>

<p>Linear algebra may be a more useful math course to take. If you want to go more deeply into cryptography, advanced math courses in algebra and number theory may help.</p>