What High School courses should I take to become a Software Engineer?

What courses for math and science?

Ideally you’d take the most advanced math your high school offers. For most that’s Calculus AB. Some schools offer BC too. It’s really a matter of where you are now and what the sequence looks like going forward. Don’t choose finite math or statistics over the Calculus prep path.

As for science, Chemistry and Biology aren’t relevant to the types of engineering you’re interested in, but taking them in high school, especially the AP versions, might help with your admission, showing you took a rigorous path. More importantly you might be able to test out of taking them in college.

Physics really is the important one. Good luck.

AP Comp Sci may help you to skip an introductory course at some school. Calculus is usually required so try to take the highest level your school offer.

Take every computer science class you can take, BC calculus if you can, AP Physics. These classes will give you a huge boost before entering college. In addition to those, just take any APs you can to get general education credits towards your school.

Generally, take a well rounded high school college prep schedule, but pay particular attention to math, CS, and physics courses:

Math: highest level you can reach (precalculus if you started with algebra 1 in 9th grade, calculus if you started with algebra 1 in 8th grade or earlier); statistics is optional but not a substitute for precalculus or calculus
Science: all three of biology, chemistry, and physics (especially physics)
English: four years
History and social studies: three or four years
Foreign language: level 3 or higher or equivalent; super-selective schools tend to look more favorably on level 4 or higher in a non-heritage language
Art and/or music: yes
Academic electives: include a computer science course if available

Stick with Math. Don’t worry about taking Computer Science in high school.

Literature and writing. Nobody cares about what grades you got in Calculus but reading and writing skills in software engineers are (a) generally lacking and (b) critical.

Also do take AP Comp Sci if offered only to determine if you have the ‘talent’ for it.

Post #6, college will care before they admit you. Otherwise you may end up doing HCI.
Take 4 year of math, 4 year of science, 4 year of English, and 4 year of social science.


[QUOTE=""]

Literature and writing. Nobody cares about what grades you got in Calculus but reading and writing skills in software engineers are (a) generally lacking and (b) critical.

[/QUOTE]

This.

The hard parts about making software are 1) grasping the idea of what it’s supposed to do, 2) organizing that idea into smaller, supporting ideas, and 3) expressing those ideas collectively in a new form. Writing skills are essentially that.

Not just try to be a contrarian but I have worked with people who graduated from UCB EECS with broken English. When I read their specs, I could barely understand and guess what they were reasonably successful, I’m glad they didn’t come to CC for advice. This is why engineering is a field where lots of immigrants are successful, yes even software engineering.
While I’m not saying reading and writing skills are to be ignore but if kids grow up in this country or born in this country, they should have a decent reading and writing skills.

Agreed, kind of.

What I’m thinking is if you have an opportunity to develop a skill that will help with undergrad work and help you really stand out among your peers in professional life … TAKE IT.

It’s also useful to be the nerd who can write well. :slight_smile:

I think good writing skills are important. (I have a Technical Communications minor). But… not sure literature classes will help much for spec writing. They don’t hurt (and may be good in other way), but there may be better options.

You mentioned at least one significant area where they were worse workers, and where their ability to advance would be hindered by their inability to write their thoughts in effective English. Higher level jobs involve significantly more communication, so while you could get by without being able to read and write well, it isn’t exactly a good thing.

I have met too many engineers and engineering students, most born in the US, whose writing skills are beyond horrid. Their level of writing is certainly worse than that of any competent high school student. So good writing skills are not a given because you were born in the US. And besides the obvious hindrance of communication, the act of following good style practices in code is important to being productive as a software engineer, and very closely related to the ability to follow the mechanical rules of language.

And I have seen a number of studies that show that better grammar makes one a better programmer.

I’d say literature and writing classes can be helpful if you go into management, but they aren’t essential to basic engineering. Most day-to-day writing done by engineers consists of short emails and text messages.

The reason a manager would want to take literature classes, especially classic literature classes, is because they help you understand human nature.

The lit & writing have one grasp then reduce complicated ideas down into manageable ideas, and express the result in a tidy set of cohesive paragraphs. Graders, proofreaders, and editors will be ruthless enforcers style and grammar.

Software engineering is largely about grasping a complicated, abstract idea then expressing it in a tidy set of cohesive functions. It won’t compile if the grammar isn’t correct in detail.

For this, more writing is better. Not indispensable, but definitely better.

Post #12, good comments are not necessary have to be good in English literature and writing, just clarity and bookkeeping. I’m not saying native English speakers don’t have problem, I had to wade through an architecture spec written by an American born professor from Cornell, (he was current professor at the time), and his spec sucks in such a way that I have to retread it more than twice to understand it. Most people in the group made the same comment toward this person. We often joked about his writing.
But bad writing didn’t hurt this kid, he was already multi- millionaires twice over when I met him, maybe he didn’t want to go further, some people stopped at a certain point when they accumulated enough money, ie they didn’t want to go farther. Nothing keeps them but their desire. So what I’m trying to say weak in Math might hurt you more than weak in English, you may flunk the pre-req to continue with the program or never graduate with an engineering degree. So it’s moot point to think about moving higher like into management and such if you never got the undergraduate degree in engineering.

For computer science, what math do i need to know before I take the class?

If you are in high school, make sure you end up with Cal AB or BC for senior year.

“Post #6, college will care before they admit you. Otherwise you may end up doing HCI.”

LOLZ. I also have a graduate degree in HCI (human factors engineering), and a legit undergrad engineering degree, calculus and all. And undergrad and grad computer science degrees. I’ve spent 3 decades designing and coding user interfaces, from GKS and Curses in the mid 80’s to X Windows in the 90’s to HTML5/Javascript and QML today. True, colleges will care but the thing is, if you have the time and energy to study Calc BC in high school, go to EECS/CE/EE/et-al. I don’t think anyone would cringe if you get a BA Comp Sci vs a BS.

Computer science, in my mind at least, is all about using your skills to solve problems in many diverse domains and work in large teams. That’s where the communication and comprehension parts come in.

The classes that most people have a tough time in undergrad CompSci are generally Probability or Discrete / Combinatorics math. There, all the calc in the world is not going to help you. AP Stats, such as it is, and some HS course in ‘finite math’ or ‘linear algebra’ comes handy.

I think there’s really two questions, what do you need to get in and what do you need to be good?

I agree with @turbo93 that classes that round you out, that broaden your perspective are important. Those are things that make you better. My son for instance took AP Lit (Literature of London 1 Semester and Literature of the Grotesque 1 Semester, Blood Meridian, Dracula…