5 answers

What types of classes can I take while in high school to prepare for a computer science degree in college?

Asked Burlingame, California

This question was asked by a sophomore in high school who is interested in establishing a basic knowledge base in computer science before they enter college. The youth of today will be entering a workforce more technologically charged than the one we are currently facing. I would like to share this question with the CareerVillage community to offer a learning opportunity to all of our young men and women who have an interest in working in the tech industry. #computer-science #college-major #computer #high-school #degrees #computer-engineer

5 answers

Eric’s Answer

Updated Cambridge, Massachusetts

To start with, I'm going to assume that this is for a "Computer Science" degree in the common sense, as in to become a programmer, as opposed to the rare few who want to study abstract Computer Science, a branch of math. They can just take all the math classes they can get their hands on, and would probably seek a Masters or Ph.D in CS. So, for the rest of this, I'm treating "computer science major" and "programmer" as synonymous (I got a B.S. in Computer Science to be a programmer, for example).

Anyway, the main difficulty in answering this is that the classes being offered in high school have varied over time, and vary from place to place, too.

The ideal class would be AP Computer Science, which some schools offer, but not everywhere, and it's not always taught by a teacher who knows any programming, so it may not help.

Math classes are good because they help you learn to think in the logical ways that help with computers. Algebra is useful for understanding many algorithms later, geometry helps if you're going to do any graphics and can help with graph theory (which, again, helps with many algorithms), and I have always found calculus showing up in unexpected places.

An English class for writing is less likely to come up directly, but learning to write well can help you write better documentation, and programmers who document their code well are few, far between, and highly valuable.

Other than that, any class about things that you are interested can be generally useful, because as you learn to program you will start to see ways to use computers in most anything that interests you. I have always found that it's easiest to program when working on a topic that interests me, and a big part of getting good at programming is just a lot of practice. For example, if you're interested in mechanics, too, and there's a shop class, then take it! Maybe you will notice somewhere that it would really help to be able to simulate 100 different sizes of some part, and that could inspire you to go and write that simulator.

The other best advice I can give is to not just rely on high school classes to prepare you for a computer science degree. While I have seen people who never programmed before start from the ground up in college, those who are lucky enough to have access to a computer (even a library computer, from time to time) during high school are able to start to learn and get a leg up. codeacademy.com is a great place to start to learn to program, for free, online, and getting started early can help you make sure that you will actually like it, and will usually either let you start on more accelerated courses in college, or treat the first few as easy overview.

Updated
Thank you, Eric!
Updated
Thanks for giving me the advice!
Updated
thank you for advice

G Michael’s Answer

Updated Dover, Massachusetts

I agree with Eric -- although I'd like to add one. A foreign language... Being able to 'say what you want to say' in a different language is a key to software programming and the various languages we program in. After a few years of experience, you realize that you are just trying to figure out how to say what you want to say -- with the various computer programming languages. The rules of grammar, while sometimes take a bit of learning --are not to dissimalar to the syntax you need to learn to get your programs to compile and run as you want them to.

and I second some outside of the class learning -- pick a language that you can run on any computer you have access to-- and try to write a basic program or create a simple webpage on your own. The experience you gain, and having some motivation behind a project that you want to do versus just a class assignment will be very valuable to you and your learning.

Updated
Thanks so much!

Natasha’s Answer

Updated San Francisco, California

I would also like to recommend http://freecodecamp.com/, it's a good introductory and free resource into web-based programming.

Updated
freecodecamp.com looks awesome! Thanks, Natasha!

Andrew’s Answer

Updated San Francisco, California

Anything involving logic is helpful. That can obviously mean math and sciences, but also things like philosophy.

Updated
Thank you, Andrew!

Michael’s Answer

Updated Los Angeles, California

Along with what the others above have mentioned, I would suggest Physics. Physics is all about learning how things work and breaking them down into smaller and smaller bits that each function independently. This is pretty much what you do in computer science and I found my background in physics to be of great assistance in understanding the basic concepts when taking computer science classes in college (I didn't have the opportunity to take any CS classes in high school, so I started my classes in college with just a couple of self taught books under my belt)

Updated
Thanks, Michael!
Updated
I actually went to college first for Physics, and have always loved it. I definitely see connections between the way I think about the world for physics and for programming, but I have hesitated to recommend it because I don't know how common an experience that is. It's good to see someone else suggest it, and I have noticed a weirdly large number of my coworkers have physics backgrounds as well, so there does seem to be some kind of connection.
Updated
Thanks for saying