Interesting Computer Science Jobs? 352
mattskent writes "I'm currently a junior in college working towards my Bachelor's degree in Computer Science. As such, I'm starting to look pretty seriously at jobs in the IT/Computer Science field. I've spent plenty of time working entry-level IT jobs doing various kinds of help desk type work, and so most of the exposure I've had to the field is related to support of other people's computers. I enjoy helping other people out, but I'd rather not be plugging things in and restarting computers the rest of my life. Although the possibility is growing on me, I don't think I would particularly love to write code all day for a living either. What are some interesting jobs that you've had or heard of that I could look into fresh out of college with a Computer Science degree?"
Entry-level-ish positions (Score:5, Informative)
Rather than tech support, there are other non-coding IT jobs out there.
A lot of these could be junior-level in a big enough organization, or in a company where you're a junior consultant sort of person. Usually you work up to that type of position by doing helpdesk first, so it looks like you're ready to move on to something similar.
I might be biased, and not the best expert, but... (Score:5, Informative)
Get a double major or minor in biology. People who can handle bioinformatics or the computer side of structural biology are in really high demand. Not saying it's moreso than other fields, but I do know you can write your own paycheck with that crossover.
I also don't know if you'd find that interesting. I do, and knowing that your job is working towards the cure for cancer or whatever the goal is I think makes some of the more menial tasks more interesting, but that's just me.
If you're not looking to add a major or minor, you can still likely get into that field and learn whatever you would need on the job about bio. They're that desperate.
Not a lot of options (Score:5, Informative)
If you don't want to code, then you're in the wrong degree program. There's really only 3 entry level jobs for CS people- programming, testing, and system administration. All 3 of those require at least some coding (the first being all coding). Testing breaks down into low paid monkey work and SDET positions where you're expected to code almost as much as a programmer. There's various types of management and liason type jobs that require a technical background, but without at least a few years experience you aren't qualified for them. If you really hate coding, your options are really sys admin or a quick change of majors.
Research (Score:4, Informative)
During my junior year of my computer science degree, I picked up a job working for some chemistry professors at my university. We've worked on everything from new drug discovery algorithms, force field simulations, and smart statistical analysis methods. This kind of work developed software that can wind up in the hands of every pharmaceutical company on the planet, make huge breakthroughs with hydrogen fuel cells, and math code that can play the stock market. I am the world expert on linear algebra based recursive partitioning algorithms for predicting the tight binding properties of compounds to the 2c9 enzyme. This all was an incredible exercise in everything from software design to calculus to organic chemistry. As the only computer scientist in a group of chemists and mathematicians, I was the expert in my field which gave me a lot of freedom in how I went about my work.
There is a surplus of jobs on your own campus, and it's well worth it to stick around for a few months after graduation to do some amazing work and get some great references. Best of all, if your work is viable and marketable, you may form a start-up company out of it.
Mod parent up (Score:3, Informative)
Business Analysis/Project Management? (Score:3, Informative)
I just recently finished a long co-op assignment doing business analysis, and if you are not one that likes to do a lot of coding, but likes organizing big technical projects and talking with many different areas of a business, then this might be a good route to consider.
I personally did not like it because I'm the type that likes helping out in what I do best and love most: getting "down 'n dirty." I've also dealt with a lot of people who only understood technology and computing from a surface-level standpoint, which is often just right for a business analyst (not too technical to sour the project setup, but not too business-oriented to be lost in the way of things).
Good luck!
Positions (Score:1, Informative)
The positions which are out there are generally these in a large organization -
The lowest end position would probably be help desk. This is a "level 1 position". If you have a BS in Computer Science you should avoid this position if possible. The position that is a step up from this is a Windows Systems Administrator. This is a "level 2" position. There are also UNIX Systems Administrators. This is a level 2 position as well, although it is generally considered a little bit above a Windows Systems Administrator. There are also more esoteric systems administrators like Mainframe administrators, but I'll stick with the more common positions. Years ago, there really were not a lot of storage administrators as it was considered just a function of a sysadmin, but storage administrator nowadays is 80% of the way to being a real, common position like the others (only 80% because 95% of ads for storage admins ask for some Windows and/or UNIX sysadmin experience).
There are other administrators as well. Network administrators deal with switches and routers. DBAs deal with administering databases.
Then there are programmers. While there's a lot of talk about how a good programmer can program in any language, they are pretty much divided by language. I would say Java is #1 right now. The #2 language would be C# (and from the little I know, most ASP.NET is done in C#, but my familiarity with this is limited). Then there's other languages as well - C, C++, PERL, Python etc.
Then there's security people. They usually sit by themselves and no one knows what they're doing.
At level 3 are engineers. They usually do engineering and architecture, have a decent amount of experience and know a lot. They can be found on the administrator and programmer side of things.
As I said, this is at larger companies. At a small company with few IT people, you can wear many hats. I am mainly a UNIX sysadmin, but I have been a Windows sysadmin (from NT 3.51 to now), a network admin running Cisco switches and routers, I have done security, putting access lists for network access. I have also installed and managed databases, and even done some programming, although the programming I've done has been automation scripts you'd expect a UNIX sysadmin to write.
There are pros and cons to each position. Sysadmins generally work from 9 to 5, but are more or less oncall 24/7. Programmers usually don't get called in the middle of the night, but unless you're lucky you often have to put in long hours at the office, especially if they're near a deadline of going live on a big project milestone. Choose your poison.
Seriously? (Score:2, Informative)
I don't know of ONE good sysadmin that doesn't have programming knowledge of some decent degree.
Do you want to run everything you do manually? Do you want to go into tedium on a regular basis to do regularly scheduled tasks? The whole point of a GOOD sysadmin is that they don't do SHIT, they just automate the hell out of their environment and let it go.
That goes for Windows as WELL as *nix.
If you want to be a good sysadmin, learn how to program. Whether it's bash/perl/python, or VBScript or Powershell.
The Definition of Computer Science. (Score:4, Informative)
I hold a B.S. in Computer Science.
Computer Science is basically the science of converting mathematics and logic into a series of instructions that a computer can understand. This is known as "algorithm development". The physical embodiment of this process is programming, or "writing code".
In spite of the fact that it involves "computers", Computer Science is not about computer tech support.
If you do not enjoy algorithm development, Computer Science is not for you.
Re:Help Organize an Open Source Project (Score:4, Informative)
Actually it's quite common for people with an proper CS degree ( the theoretical kind ) to not want to code. While I do it for a living right now it is definitely not my plan to keep doing that for the rest of my life.
Personally I'm probably going to look into teaching, did a bit during my studies and it was quite fun and rewarding.
Re:Positions (Score:4, Informative)
The parent comment is crap. It's long and very specific crap, but crap none-the-less.
This may be true for one specific company, but in no way is this consistent across the board. There is *nothing* that is consistent across the board and pretending that there is is either disingenuous or just plain wrong.
Weather is good (Score:3, Informative)
Worry if you won't write code most of the day (Score:3, Informative)
As a professional developer with a little over a decade of commercial experience, I can assure you that the jobs where you have to write TPS reports, attend constant meetings, write reports about attending meetings, attend meetings about reports, and occasionally meetings about meetings or reports about reports are toxic worthless environments. About 5 years ago now this trendy thing called "Agile" happened to the software development world as a way to put a bullet in crap like this.
One of four things is going on with software companies now 1.) Agile is understood and people will find creative ways to fire anyone who want's to build a Dilbert empire 2.) Agile is being adopted and the toxic environments get transformed into livable ventures as Agile practices get successfully adopted and the toxic people are pushed out, 3.) Agile is subverted by PHBs and the toxic sources kill it's adoption while all the worthwhile people leave it to fester 4.) Agile is ignored/blocked - the environment is already dead AND toxic.
You can fight like hell to get into or stay in company #1, pitch in to help company #2, avoid or flee from company #3, and short sell the stock on company #4. Also, as a programmer, you should be writing code that either makes money or reduces costs in a niche or market that is growing. If the market isn't growing, move on to another domain. If there is no revenue associated with the lines of code you write, go where there is. As a buddy of mine says, "NEVER be part of the cost center - ALWAYS be in the profit center!".
At any rate, if you don't want to write code - no offense, but get the hell out of the way and make room for those of us who do.