3 ms·
Given that all of computer science is based off of math at some level, i'd say math is more important than you think. Anyone can glue some APIs together[1] and
by mtogo 15y ago
Given that all of computer science is based off of math at some level, i'd say math is more important than you think.
Anyone can glue some APIs together[1] and make some kind of application, but it takes some math skill to design and implement strong algorithms. Computer science is not about syntax and semantics, it's about about algorithms and data structures-- and if you're not good at algorithms and data structures, it doesn't matter how good you are at memorizing Python syntax.
This is anecdotal, but every good programmer i know of has a strong math background, or at least knows how vitally[2] important math is to being a good programmer. Incidentally, most bad programmers i've met put much more weight on memorizing APIs and language semantics (e.g. Why do i need to know the big-O running time of bubblesort? python has sort() built in!) than learning math.
[1] And they do. You can find them on odesk and elance charging $10/hr and blowing past deadlines, producing unworkable code.
[2] Seriously. I cannot stress this enough.
- hmottestad 15y agoAs an informatics student a lot of my math skills are within logics and discreet mathematics. The last thing people see at high school is calculus, which makes them assume that that's what I'm good at. Truth be told I couldn't integrate for the life of me. Give me a nice complex logical sentence any day and you'll watch me drawing up venn diagrams like I've done nothing else all my life.
- GrangalanJr 15y agoAs someone who has started studying programming and CS recently, avoiding becoming a guy who "glues APIs together" has been one of my goals. I want to learn the underlying principles, not just the surface-level implementations that change every few years.
- sanderjd 15y agoAbsolutely do learn the fundamentals. Be able to look off into space and imagine the flow of a system at many different levels of abstraction. Understand how compilers, interpreters, and operating systems wrangle your hardware into submitting to your will. Learn and design algorithms. Spend time thinking about how your computer gets from point A to point B for every program you use. Do all those things and more, but then be willing to embrace being somebody who "glues APIs together" when appropriate, or somebody who creates new APIs when appropriate, or somebody who creates new APIs using others that you have glued together, and then make something with all that abstract, algorithmic thinking and all that glue.
- KevinMS 15y agoGiven that all of computer science is based off of math at some level, i'd say math is more important than you think. There's your problem right there. He isn't talking about computer science, he's talking about actually programming. Sad thing is, on HN, many more people will probably support your side.
- SeoxyS 15y agoAgreed, the only Math I do in my daily programming is: 1) Drawing code. One recent example was an (animated) undefined progress bar designed all in code I did last friday: http://akhun.com/seo/skitch/photo-20110805-195455.png http://akhun.com/seo/skitch/photo-20110805-195455.png 2) Sorting, ranking and scoring algorithms. Eg. figuring out which ad to show based on the average eCPMs, or which option to show based on a Quicksilver fuzzy search algorithm. Everything else is as grandparent condescendingly calls it, stitching APIs together. Design patterns, data managements, doing all the little polish that makes up a real app.
- superuser2 15y agoThinking about complex algorithms (not just wiring APIs) is still worlds removed from high school pencil-and-paper algorithm repetition. I would be "good at math" if it were about how well we could invent methods of solving problems, rather than how accurately we can apply the method we were taught 100 times. I have a pretty good grasp of the behavior of systems, it's just that I'm likely to drop a coefficient or confuse a 0 and a 9, which is the source of nearly every B. I have rarely lost points in a situation where I would not have known how to write a program to do the work for me.
- wdewind 15y agoSort of. Most computer science departments actually came out of philosophy departments. In terms of implementing algorithms (sorting etc.), yes there is a lot of math involved in that. But there is a lot of computer science (and programming) that is involved in epistemologically describing and modeling objects that does not involve math as directly. Ultimately, though, you're right: it's all math at its base.
- georgieporgie 15y agoWhile I agree with your assertion that CS is math (I've upset many people by stating that computer science is fundamentally a subset of mathematics), I disagree with equating those with weaker math skills with those who are incapable of creating elegant code and meeting deadlines. We have a variety of tools and abstractions in Computer Science which allow us to view what is fundamentally mathematics from a more abstract and 'natural' standpoint. I've known many people with a poor grasp of higher level math who had an innate ability to understand logic and hierarchies, making them extremely skillful at solving business problems. I assert that something on the order of less than one in ten programmers need to have significant command of mathematics proper. I'll take nine programmers with solid domain knowledge who can write clear, concise code on a schedule, who are self-aware and will defer to the one research guy, over a team of nine research guys. ;-)