I follow a few Computer Science forums and some of the most common questions come from prospective students who aren’t confident in math. I previously wrote about this topic in the post, You Don’t Have To Be A Math Genius to Learn Computer Science. Plus, 6 Math Tips for Everyone Who Isn’t Einstein. I want to post an update because I’ve taken Discrete Math since then. Currently, I’m taking Differential Calculus.

Yes, you do need math in Computer Science. Most programs will require a sequence in Discrete Math and/or Calculus. Depending on your program, there might be an additional course (e.g. Linear Algebra).

**No, you don’t need to be good at math or naturally gifted to begin your Computer Science journey. **

I was out of school for 10 years when I started my CS program. I was never great at math back then and anything I did know was long forgotten.

There were two things I did know:

- The thought of learning Calculus
*terrified*me. - I really, really wanted to learn Computer Science.

When I took my college placement exam, my math score was awful. If you think you’re bad at math, trust me, I was worse. I tested into the lowest level Algebra offered – Elementary Algebra. That meant I’d have to take beginning, intermediate, and college level Algebra courses plus Trigonometry just to get to the level of math required for my degree. In my first 2 years, that translates to 7 math classes total, 2 of which would count as zero credit because they were so low.

I didn’t let that discourage me. I wanted to learn CS and math was part of the deal. I won’t lie and say it’s been easy. In fact, Elementary Algebra was probably the hardest class because I had to start from scratch. Intermediate and College Algebra, while challenging at times, felt much easier. By being honest about my math skills, beginning at the correct level, and building that strong foundation, subsequent classes have sort of fallen into place.

Grade-wise, I earned a B in Elementary Algebra and an A+ in College Algebra. Part of that success is realizing that **no one naturally knows math**. People are only good at math because they do math. That’s all there is to it: **Do math, get better at math**. When you’re stumped, utilize every resource you have. For me, that’s meant countless hours of YouTube videos, Google searches, the campus tutoring center, asking for help, forming study groups, and lots of trial and error.

Does it feel overwhelming sometimes? Yes, of course. You’ll feel overwhelmed more times than you can count when getting that CS degree. I’ve yelled, “I can’t do this!” pretty much every term, probably every day during Trig. Trig kind of knocked the wind out of me. There I was, cruising along in Algebra, finally having confidence in math, then Trig kicked my butt. Halfway through term, I kissed an A goodbye and prayed I’d at least pass the class. I kept at it, getting better by doing. That was the first term I went to a tutor (big help). I also made a friend in class to study with. We didn’t meet up often, but we texted back and forth, working through difficult problems. One day, it just clicked. I wound up nearly acing the Final and squeaking by with an A (to my huge surprise!)

Discrete Math came at a time when I was burned out. I underperformed. Totally my fault. I did pass the class though. This brings us to my current class: Calculus. As someone starting in beginning Algebra, the idea of Calculus scared me. I even considered changing my degree to avoid it.

In my state, there are program agreements between community colleges and universities. I can transfer into a university CS program with either an Associate of Arts or Associate of Science in Computer Science, the former requires no Calculus. But I really want that Computer Science degree. In my area, there are many job opportunities for 2-year CS degrees, so I want to make the smart choice just in case I don’t transfer in the near future. So Calculus it is.

Calculus isn’t so bad! Honest. I’m about halfway through term and following along nicely. That strong knowledge in Algebra is a lifesaver. I can’t stress that enough. Pay attention in Algebra! I’m attending every class, paying close attention during lectures, doing my homework the day it’s assigned, taking notes, studying, you name it. My current grade sits over 100% which is mind blowing for me. When I started school, I was literally learning *how to plot points on a graph*.

So if you’re interested in CS, but not so excited about math…that’s okay. As you get into your program, your feelings will probably change. It’s hard to hate something you’re good at, after all. I used to feel like my terms revolved around my math class and it kind of overshadowed everything else. Now it’s just like any other requirement. And turns out, it’s not so scary after all.

grace hopper, who practically invented compilers (after she invented debugging) used to teach mathematics at university. and she was also the original advocate of using keywords (commands) instead of symbols for programming. and the told her it would never work (but every html tag and javascript command and python function says she was right.)

despite loving math and programming in machine code, hopper was a practical person who was interested in practical applications. she knew that the people that would be writing programs did not want to learn or use symbols for programming. which isnt to say no one wants to. but logo and basic and pascal are three of the most famous educational languages, and they all have relatively easy syntax (at least the part of logo most people use does) and they all have command names, like hopper outlined.

one of the best things i ever learned in coding was how to iterate from -pi to pi and plot x using cos(pi) times r and y using sin(pi) times r. and most of the graphics here: http://i.imgur.com/lPBkChM.png i coded using that, including the flower design and the 7-sided round shape. so to say i “hate math” would be a little ridiculous.

i am a self taught coder but i still really struggle with math. i can outline a lot of reasons why. when i was trying to teach basic and python, my friend said “this is too much like math” and so i made practically all syntax optional in the language i taught her later. it goes left-to-right like english does, but its not english the way that cobol or applescript are (thats really too much like english.)

i always tell people you dont have to be good at math to code. in fact, the only time ive ever really enjoyed math is when i was coding. it is 100% math actually. all computing is just following numeric instructions to do numeric processes to move or copy numeric values into numeric locations. and everything else (from this text to every command, to moving the mouse) is an abstraction (Which is also implemented numerically) of those purely numeric processes. and yet even if you “hate math,” programming is very much like a second chance to love math– just from slightly farther away 🙂

LikeLike