A young PC enthusiast dips his foot into some future planning for education and ultimately, work. It's good to follow your interests, but better to anticipate where the job market is going, along with other markets, too.
For the foreseeable future, software offers more opportunities than hardware, but there is a career path where hardware meets software that's worth consideration. And the best strategy is to apply for both kinds of programs -- computer engineering & computer science -- to see what will ultimately fit your technical interests.
Here's what Jovin from India asked about his future career:
I'm Jovin, from Kerala, India, and I'm doing my 12th and final year of secondary school here. I'm planning to study in the USA after school and I'm confused about which degree I should choose. I like computer hardware a lot. I like processors, motherboards, GPUs, and all the macro things, also into liquid cooling, and stuff like that. These are the things that fascinate me the most. Is a Bachelor’s degree in computer engineering right for me?
About programming languages, we study Turbo C++ here.... the old one and it seems fairly easy for me. I've heard that a Bachelor’s degree in computer science is lot more focused on the software side, and programming languages. Which one do you recommend? Are there any other interesting courses?
Also I'd like to know about present and future jobs: What kind of jobs can I get after getting a B.S. in computer engineering? Is there much opportunity for such jobs? Do any of these jobs involve the stuff I mentioned above (GPUs, processors, and other PC devices)? And if I choose computer engineering, will I ever regret that decision later?
Hoping to hear from you soon. Thanks in advance for your assistance and advice.
Thanks for your recent e-mail. You raise some interesting questions, particularly for those who might consider themselves to be somewhere between "PC enthusiast" and "hardware junkie." You seem to fall somewhere in that spectrum yourself, which is why I think you're leaning so heavily toward computer engineering and somewhat further away from a bachelor's in computer science of some kind (some programs offer BS in CS, others offer a BA in CS, though the curricula seem to be more alike than different).
If you really want to work in device design, you will want to take the engineering route rather than the computer science route. That said, even if you get a computer engineering degree, you probably won't end up working on PC technology for any of a number of reasons you'll want to think about heavily before making your decision.
- Reason 1: the PC is becoming increasingly a niche product, and the real action is in mobile devices. That's true for sales, and thus also for job opportunities as well.
- Reason 2: jobs building motherboards and PC peripheral devices probably represent less than 5% of the jobs available to those with a device background and interests. You might be restricting yourself too much if you focus purely on PC products and that particular market space.
I think it's perfectly valid to pursue a degree in electrical or computer engineering, and it may very well fit your interests. But you should attack this subject matter from the standpoint of wanting to decide how various aspects of such systems work and behave, and may thus also be best designed, including power, computation, signaling, networking, display, input, and so forth. Then you can let your aptitude and interests guide you to where work opportunities will be the greatest.
On the other hand, please consider that no device is truly useful without software to make it do something! Even for mobile devices, the number of jobs for those who build apps, tools, utilities and so forth probably outnumbers the outright device engineering jobs by a factor of 4 or 5 to 1.
From the standpoint of where the jobs are (and are likely to be for the foreseeable future), software offers a great deal more opportunity than does hardware; it is also more portable over time, as classes of devices and device platforms come and go, the need for software remains constant and growing for all conceivable computing environments.
And if your love of hardware is just too strong to resist, you might consider developing expertise in writing device drivers. This is the area where hardware meets software, and if you can develop the proper programming chops (along with device knowledge) you can find excellent, high-paying work developing device drivers to make it possible for the hardware you love and the software it needs to get together.
If I were in your position, I would apply for both kinds of programs -- computer engineering and computer science -- and see what kinds of responses I got back from the various programs. You should definitely look for the best combination of:
- school -- national/international rankings and ratings,
- degree program -- prestige, name recognition, student placement record, and so forth,
- and overall cost -- out of pocket expense, including such grants or scholarships for which you might qualify.
Only then can you choose the school and program that are best suited for your particular needs and technical interests.