<p>1) Operating Systems
2) Database Systems
3) Computer Networks
4) Software Engineering</p>
<p>and maybe, just maybe</p>
<p>5) Programming Languages</p>
<p>All the rest of those requirements mean squat in the working world. For instance, there aren't but 10 compiler-design jobs in the whole USA...but..</p>
<p>An Oracle DBA makes 6 figures all day long and would not know a turing machine, an NP-complete problem or any other theoretical computer science concept.</p>
<p>Most computer jobs are in I.S. anyway.</p>
<p>Just letting you CS majors know.</p>
<p>Global
B.S. Computational Mathematics
M.S. Engineering Management</p>
<p>Hey, I did that assembly language stuff too. It was part of the "computational" component of the computational math degree. </p>
<p>The computer science curriculum needs an overhaul. These schools act like there are a TON of compiler design type of jobs...NO!</p>
<p>It's mostly about databases...and the leader is Oracle. Add on stable security and the operating system of choice is UNIX. Now UNIX costs a lot, so companies will you a UNIX-flavor like Linux. Most of the time, folks want web access with object-oriented design so there is your Java.</p>
<p>Once you have large databases, then you get into data warehousing (my area of expertise). From there, companies want to do data mining (heavy on statistics). Mathematical modeling also comes into play, so there is your operations research and optimization.</p>
<p>I just named what will jump-start your I.T. career:</p>
<ul>
<li>Databases</li>
<li>Operating Systems</li>
<li>OO design/development with Java</li>
<li>Statistics (more than just the 1-course requirement)</li>
<li>Operations Research</li>
</ul>
<p>I can at least pass it on to you current students. I wish I knew then what I know now.</p>
<p>So if someone goes to grad school for theoretical computer science, s/he's not gaining any marketable skills, and the only option is to stay in academia? That seems like an awfully huge risk considering how competitive it can be to get tenure and all. What do theoretical computer scientists do if they ever decide academia isn't for them?</p>
<p>Me personally, I would have a plan-B...which would be to take a few "applied" courses to get that marketability. Don't get me wrong, there are probably a few companies in California or Texas needing some theoretical CS folks to help with language processors, but.....</p>
<p>New York City, Boston - Financial centers
Philadelphia, Delaware - Credit Card Banks rule there
Washington DC, Baltimore - All Federal Gov't and Intelligence
Alabama, Florida - Space Systems</p>
<p>thank goodness for someone like you, globaltraveler.</p>
<p>ur the only one that i know of who majored in computational mathematics, which i coincidentally am preparing myself to officially switch my major in the fall. i was wondering, how hard was it to get a job straight out of undergrad in that major. i feel like i do not have a chance compared to the regular cs majors and my dad doubts that i will get a decent job with computational mathematics.</p>
<p>also, i do plan on taking a class in 'database management systems' to increase my marketability, but do you think classes such as computational geometry and computer graphics is useless? id like to somehow work with computer graphics or image processing.</p>
<p>
[quote]
New York City, Boston - Financial centers
Philadelphia, Delaware - Credit Card Banks rule there
Washington DC, Baltimore - All Federal Gov't and Intelligence
Alabama, Florida - Space Systems
[/quote]
</p>
<p>What about the military industrial complex?</p>
<p>
[quote]
So if someone goes to grad school for theoretical computer science, s/he's not gaining any marketable skills, and the only option is to stay in academia? That seems like an awfully huge risk considering how competitive it can be to get tenure and all. What do theoretical computer scientists do if they ever decide academia isn't for them?
[/quote]
</p>
<p>Well, no, I wouldn't say that the situation is that dire. The truth is, if you manage to get your MS or PhD in CS, plenty of organizations will hire you even if you don't have a lot of practical skills. The jobs won't be as nice and high-paying than if you have extensive experience in the cutting-edge high-demand practical stuff. But you will be able to get a job somewhere, and from there, you can start building your practical skills.</p>
<p>In fact, I know a guy who did just this. He got a PhD in theoretical computer science. He didn't get a tenure-track job. So he basically signed up as a regular IS staffer at a local company, and he squeezed that company to give him all of the training and experience he could get. His specialty became Cisco computer networks, and he became certified all the way to the CCIE (Cisco Certified Internetworking Expert) level. If you can survive a theoretical PhD CS program, you can complete the CCIE with little problem. </p>
<p>Now, he makes a highly lucrative living as a Cisco computer networking consultant. He uses his PhD for nothing else except as a self-marketing tool for his consulting practice. The truth is, there are a lot of CCIE's around who really don't know very much about computer science at all, for all they know how to do is configure Cisco routers. They're very good at that, but that's all they really know. What this guy now has is both the CCIE and the Cisco experience AND a CS PhD, and that gives him a major edge when he's competing for consulting contracts. </p>
<p>So the point is, I wouldn't say that somebody getting a theoretical grad CS degree is forever relegated to academia. If nothing else, that grad degree will be useful to market yourself. It's a resume booster.</p>
<p>That's exactly what I did and what many others do with a more academic background. You use the MS/PHD to get the maximum salary/position at a firm and use the practical training (Cisco, Oracle, UNIX, etc) to keep your marketability.</p>
<p>For instance, if you didn't have a BA/BS or MS/MBA but have the practical training/experience...YES, you will be employed and make good money but many positions/wage scales within a company are tied to academics. Sure, the companies will employ you because they have that Cisco/Oracle need BUT they will knock off $10,000-$20,000 off your salary BECAUSE you don't have the BS degree or don't have the MS degree. Basically, the company is getting the "skill needed" for a cheaper rate (lower salary) but can always dangle that "lack of desired degree" over your head.</p>
<p>I would say (and I am not an expert with the military), that the military would be more geared toward intelligence. Seems to me, the CS areas in military are databases, operating systems, scientific computing, and a lot of operations research.</p>
<p>Sorry for the delay in responding to your post but I unknowingly skipped your posting.</p>
<p>To answer your first question, it wasn't hard finding a job right out of school for a comp-math major, BUT there were very few "computational" jobs offerred to me. Of course, OUR major is concerned with developing computational solutions to engineering and scientific problems and that wasn't what many employers thought in MY opinion. It seemed like we were (to employers) just another pool of potential software developers who (in this case) would not have to been trained has much in programming/software development than the pure mathematician.</p>
<p>I went of quite a few on-campus interviews from employers who STATED that they were looking for comp-math majors but once I got to the interview...it was some manager from the "business information systems" group...not someone who needed computational solutions. I would say hang in there as long as you can to find a computational job. I "hung" in as long as I could but ultimately money was getting low and parents support was getting low too (hahaha), so I ended up taking a database-type job out of school.</p>
<p>To answer your second question, database systems is ALWAYS a safe and marketable elective to take. Like I said before, ORACLE is huge. Now your computer graphics and imaging CAN be a couple of neat choices because Geographic Information Systems (GIS) is getting bigger now (for obvious military reasons) and Washington DC-area firms are asking for folks with the graphics, imaging and computational background so they can teach them GIS on the job.</p>
<p>I just got a BS in CS and I pretty much agree with you. If you want to work in corporate world, chances are you will be coding database driven web applications all day long, and you really don't need a strong theoretical background for that.</p>
<p>That said, I think the question every CS major should as themselves is "Do I want to code database driven web applications all day long?". I really don't so I took classes I was interested in instead (mainly AI / machine learning classes) and now I'm going for a PhD next fall. I'll be pretty well funded but obviously not making the 6 figures an Oracle DBA would. I'm also worried I won't land a research job after grad school, but I didn't like the work I did at my more corporate internship so the choice wasn't that hard to make.</p>
<p>Also, even if you don't want to go to grad school I think there are still jobs out their for people that have a passion for less marketable specializations. I think you just need to work harder to get them and maybe sometimes be willing to take risks and make a little less. One of my CS friends specialized in graphics / computer vision and is now working for a very small startup that does interactive displays. Another one of my CS friends was also into AI / machine learning and now works for a small natural language processing company.</p>
<p>Oh, just to be clear, I also agree with GLOBALTRAVELER you should take databases just in case even if you're not planning to do the corporate thing. It's good to be well rounded and databases are so common now days you'll probably need to use them at some point anyways.</p>
<p>I went to Michigan State University for my B.S. in Computational Mathematics degree. I waited like 10 years before getting a majority-online M.S. in Engineering degree from University of Wisconsin.</p>
<p>Is it worth it to attend a 'big name, big $$' university like a Cornell or Princeton if someone does not have plans to enter academia?....or would attending a coop-type school like Northeastern give more practical experience from an undergraduate perspective? My S in interested in a CS/math double major and has considered a govt/intell future .</p>
<p>Only contact I've had with Northeastern has been through one of my brother's friends, who went to Northeastern and majored in comp sci. He went to Microsoft after he graduated and is currently a programmer there.</p>
<p>So... I'm impressed. And more importantly, so is Microsoft, it seems.</p>
<p>Thanks aibarr for the feedback on Northeastern.</p>
<p>The OP mentioned a few classes specifically but what are some truly great progams out there for CS/math and what makes them great? The rankings I have seen around cc relate to graduate programs. What about undergrad?</p>
<p>Thank you so much globaltraveler, I was thinking of doing computer vision but I was also thinking of taking a database course to be safe. Your recommendation confirmed my thoughts. </p>
<p>And I also see lots of jobs offered in web programming as well, isn't that a good thing to study, although web programming is much more hacky and probably best learned through experimenting?</p>