Ask HN: Can below average math guys become better programmers?
So I don't have a good background in math skills. Should I skip trying to learn programming and focus on maybe Sales/Management ?
So I don't have a good background in math skills. Should I skip trying to learn programming and focus on maybe Sales/Management ?
Comments
You dont need math at all. I learned to program when I was 12. At the time, my math skills topped out at long division.
Then I went to engineering school. I had taken calculus in high school but failed. I failed calculus again in college. Twice (two different courses, once each). Eventually I gutted through it all and learned it, got my degree and went on to an enlightening, but short career in a very math-heavy role - structural dynamics.
Fast forward, and I do web development for a living. Not once* have I done anything in programming that required skills beyond those that I had when I was 12.
So you tell me, am I above average in math skills or not? I haven't a clue.
* I lied. I did build a ballistics calculator once - but that is a very specialized niche of programming. I can assure you there is little to no math in CRUD apps.
It also depends on what you're programming. I do iOS apps, which is basically just displaying pictures and grabbing data from the Internet-- no fancy math needed. Though I've been dabbling in OpenGL ES 2.0 recently and the shaders are kicking my ass with math!
This isn't a direct answer to your question - but why not work on obtaining a better background in mathematics? I guarantee you it isn't as hard as you think. Until you are at the very highest levels of numerical analysis or meta-mathematics, it's not beyond the cognitive capabilities of the average person - most people just give up and rationalize it by thinking it's beyond them.
Why is your math background so weak, in your opinion? If the answer is that you didn't put in the time, energy, and focus to learn it the first time around, then you have other problems beyond a weak mathematical ability. If it's that you never had good instruction, then it's worth the investment to find it.
Recently I started getting interested in math and science after connecting the dots using systems thinking. Several stuff in math is interrelated to different pieces within it. I didn't knew that at the time when I was in school. Yea I can become better at math, but I'm not sure if I should just focus on my strengths or improve my weakness i.e maths which can take alot of time. Maybe I can focus on things which will have big impact in my life ?
Yea I didn't had good instructure. I also changed alot of school during childhood, that may had changed curriculum alot of times and my basic math skills were messed up. Here in India they don't teach you much. Students here are more interested in getting that piece of certificate(graduation degree) and showing it to the employer rather than thinking about what to do with the knowledge they have. Sometimes they don't even have knowledge cuz they just do rote learning without connecting the dots or understanding the concepts.
I downloaded couple of ttc lectures, and they explain these stuff in a awesome way.
Mathematicians tend to be good at solving puzzles. "Read the problem; state the problem; state what you know and what you need to know; think about how you find what you need to know and how to get there.".
That's pretty handy skill for programming.
Some people think that programming is an inherent skill - http://www.codinghorror.com/blog/2006/07/separating-programm...
Other people suggest that you just need to do it. (All those "Learn X the hard way".)
I'd be interested to know what the research says.
I find if you're good at applying logic you'll do just fine programming. Math really helps when trying to prove why good logic is right. Plus most math used in CS is just powers of two and basic algebra... nothing fancy.
The kind of math you need for programming (except in games, analysis, or other specialized subsets of programming) isn't trig/calc/etc. It's just simple logic, and except in that rare instance once you start speaking the language you don't even think about the fact that what you're writing are mathematical statements, it just comes naturally.
A lot of people get confused about the math requirement for programming. You don't need to know what 356^84 is, you just need to know how to tell the computer to calculate 356^84.
It's surprisingly easy once you get started.
I strongly agree with this. Remember that being a good developer has as much to do with creativity and in some respects artistry as it does with algorithms (see PG's essay Hackers and Painters http://www.paulgraham.com/hp.html). The tone of this question is a bit concerning though. Why are you currently a programmer (if that is the case)? Do you enjoy building things by writing software? Do you want to solve more advanced technical problems that might require higher level Math? Or are you considering a different path because you are tepid about programming? This career, in my estimation, is something you need to have passion for. So make sure whatever you decide that part is true.
Depending on what you want to program, lack of math knowledge might mean you'll have to dig a little deeper into some subjects at first and gain that missing knowledge. But that's it. Just some extra time. Go for it :)
Well I'm specially not good at calculus, geometry, probability etc. I can do algebra and statistics after some practice.
You'll be fine.
*As long as you aren't hoping for a university degree. Saw many, many, many below-maths students not able to complete a CS Degree and some not even Software Eng. because of a lack of Mathematics skills.
However, you're ability to conceptualize, use, alter, convert, code, write modules, etc won't be effected as long as you put in the necessary effort.
Seconding this. In senior year of university, the math requirements of the CS track went from second-grade arithmetic to being expected to have finished your math minor. It was quite the jarring shift.
If you want to program, you don't need to know much in the way of mathematics. If you want to program well, knowing advanced math will open up new possibilities for problem solving. If you want a CS degree, start taking math courses now.
Or you won't be. Some people just suck at programming. A lot of "below average math people" would be fine though.