The wild high-tech boom times of the late 1990s are not likely to return any time soon, but computers play an absolutely central role in our economy and society, so there will be a continuing need for those with computer expertise.
What kinds of jobs do CS graduates get? Here is an overview:
- Programmer jobs: Twenty years ago, most CS graduates became programmers, but that number shrunk to less than 50% a decade later, and in the coming years will probably be something like 20%. Thus, though programming jobs might be the first choice for many of you, keep in mind that the subject of CS is much broader than just programming.
- System administrator jobs: A common career path for CS grads has been UNIX system administrator. Note the UNIX qualifier. Microsoft Windows system administrators often tend to have non-CS degrees (or no degree at all), while UNIX system administrators tend to come from CS or EE. Other major system administrator job categories filled by CS graduates are database administrator and high-performance Web site administration.
- Computer security specialist jobs: Our department is arguably the foremost in the nation in the computer security field. You can take advantage of this by taking our security courses, but much more importantly by doing undergraduate research with one of our faculty members who specializes in security.
- “Hybrid” jobs, combining CS with another technical field: Examples are software development for financial modeling, drawing upon both CS and mathematics, and bioinformatics, combining CS and biology.
- Though the “newer” job categories such as computer security specialist or hybrid programming may sound very appealing, note that the number of such jobs will probably be limited. Again, it is best to keep your options open.
- Semitechnical/nontechnical jobs include customer support and software/hardware marketing, as well as jobs where CS background plays a “supporting role,” such as patent attorney.
In terms of general jobs advice, keep in mind the following:
- Merely having good grades is not enough to get good job offers. To be sure, grades are important—many employers won’t even consider hiring someone with a GPA below 3.0-—but grades alone are not enough.
- Develop a REAL understanding of computer science. You will be tested when you interview for jobs after graduation, and one can’t “cram” for this kind of test. Instead, the best way to prepare is to continually sift the concepts through your mind as you take the courses, keeping in mind the fact that you will need to know this material later on, not just for the final exams.
- Develop an excellent understanding of “computer systems,” meaning operating systems, computer architecture and computer networks. Again, it is not enough to simply have good grades. If for example you cannot give a detailed explanation of the cooperative role that software and hardware play in a virtual memory OS, you are in essence “computer illiterate,” even if you got an A in your OS course.
- Install and use Linux, a form of UNIX, on your home PC. In installing and using Linux, you will learn many practical things about computers which you would not learn in coursework. Do your CS course homework on Linux, and if possible do all your other daily tasks, such as e-mail, word processing and so on, on Linux as well. You can learn about Linux through a guide written by Professor Norm Matloff. Consider joining the Linux Users Group of Davis, which is one of the most active and respected in the nation.
- Gain practical experience through a co-op or intern position, typically between your junior and senior years. Keep informed of these kinds of opportunities through frequent use of the Internship and Career Center, and by contacting people you may know in the industry. This is one of the most important things you will do during your college career. Many employers will not consider you for a technical position after you graduate without co-op or intern experience.
- Develop good verbal and written communication skills. Note that while courses in communication and English can help improve communication skills, that is not enough. You must practice this in your daily life. Join some organizations on (or off) campus; do some volunteer work; read widely; be aware of recent trends in society, economics, and politics; etc.