3 answers

Where can I expect to be in five years?


As a computer science student, the road to have a successful career are so uncertain because the field changes as the world is constantly changing. In five years, will I see myself be working for desired firms like Microsoft, HP, or even Google?
#technology #computer-science

3 answers

Eric’s Answer

Updated Cambridge, Massachusetts

You're right that the field is moving quickly. Eboni's point about an internship is a great one, because that will make things a lot less abstract.

In general, I would recommend trying to get as firm a foundation as possible. It's true, you don't know what languages companies will be looking for in five years, what platforms will be big deals, what companies will be hiring, and so on.

But you can be pretty certain that it will be valuable to be able to "think procedurally," to be able to break a task down into a series of smaller steps that a computer can follow. It will be useful to know standard algorithms and data structures and their tradeoffs (when should you use a hash table versus a tree? A set versus a list? and so on). The easiest way to get to know these is to try a number of concrete things out, but don't let yourself believe that you've stumbled across the One True Way that will never change.

Learn a few programming languages, ones that make it easy to do things you like. Swift or Objective-C if you want to write iOS apps, Java or Kotlin if you want to write Android apps, JavaScript or TypeScript if you want to write Web apps, Python if you want small, easy scripts that take in text input or files and process them, and other things that stand out to you. Once you've gotten a few, try branching out to try ones that make you think differently, like Lisp, Scheme, Haskell, or Erlang. By this point, you'll likely find that picking up new languages becomes very easy, just a matter of a few hours' work. Then, if you find yourself trying to work at a company in five years and they want some new language you've never heard of, you can know that you'll probably be able to pick it up quickly, and not be left behind.

Many tech companies (including Google, the one I can speak for on this) want to hire "generalist" software engineers, people who can be given a problem and solve it with whatever tools are appropriate. Sometimes that will be a brand-new framework just being tested, but just as often it could mean using something tried and true that was written in the 70s. In my day-to-day work, I use some of Google's JavaScript libraries, that are new and also impossible to learn outside of Google (so it's not like you could have prepared for it, and we know that), and I use old Linux shell tools that have existed at least since the 80s. You want to focus on the flexibility aspect, rather than doing some particular, concrete specialization that might not matter in five years. Nobody programs in HyperCards anymore, so someone who based their career around that might be in trouble. But someone who learned it and added it to their toolbox probably benefited from that a lot, because it was useful then and expands their mind now.

I hope this helps!

Eboni’s Answer

Updated Murfreesboro, Tennessee

Because the field of computer science is ever changing, the best thing you can do is begin an internship. This will allow you to keep up with industry changes while gaining some great experience. It's also important to remember that software and internet companies are not the only options for computer science majors. Many industries are relying on computer technology to get things done faster, more efficiently, and without human interference. Think along the lines of mobile apps, self checkouts, drones, military defenses, etc. The wider you expand your search, the more you will find. Best of luck!!

Rafael A.’s Answer

Updated New York, New York

My only recommendation here is to keep expanding your knowledge base while doing your homework in the sense of what new technology / software may be coming down the road. Keep your skills sharp and you should be fine.