I’m going to enter college in a few months. Right now, I’m set on being a computer science major and eventually working as a software developer or engineer. However, since I am only 17 and barely know what that really means, that is completely subject to change.
Preparing for a career in computer science is unlike preparing for a career in most other fields. In nearly every field, you learn a curriculum in school that you will use to get a job and use every day on your job. The way that technologies are constantly changing and new languages are being developed, most universities cannot keep up with curricula that are completely relevant. Instead, they focus on providing understanding of underlying concepts that may or may not be of use. So, the general suggestion for potential software engineers is to constantly be learning in your free time and work on projects to show what you’ve learned. In addition, you are expected to show your portfolio in an easy-to-view manner that is part of your personal website, which requires you to learn a few more languages (easier ones though).
Part of the reason side projects are necessary are to show experience, which every company wants. The skills learned in those side projects are also a necessity for technical interviews, which rarely touch on subjects that are learned as a part of a computer science curriculum.
Another suggestion that is not necessarily required but seems to be the norm among software engineers is to constantly be up-to-date with the latest technology and productivity news, something they show through a social network – usually Twitter.
All in all, it’s a pretty complicated field, but the tradeoff is doing all of this in exchange for the possibility of six figures immediately after only 4 years in college and never having to wear a suit in my life. Despite my lack of motivation as a teenager on summer break, I know that this is still preferable to what people in a lot of fields have to go through.