News for hackers. Stuff that matters.
Re:Computer Science students: Learn to write by wdewind on Monday August 08, 2011 @03:32PM (#2861268)
When I tell people I'm a programmer they always go "oh, you must be good at math." The truth is that I'm pretty bad at math, but in terms of logical syntax and parsing I am pretty good. Programming (especially high level modern stuff) has much more to do with syntactical and epistemological skills than math. I learned to program from writing.
Re:Computer Science students: Learn to write by mtogo on Monday August 08, 2011 @05:40PM (#2861699)
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.

Re:Computer Science students: Learn to write by KevinMS on Monday August 08, 2011 @06:39PM (#2861852)
Given 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.

Re:Computer Science students: Learn to write by SeoxyS on Monday August 08, 2011 @07:10PM (#2861934)
Agreed, 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

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.

Re:Computer Science students: Learn to write by wdewind on Monday August 08, 2011 @07:47PM (#2862032)
Sort 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.
Re:Computer Science students: Learn to write by GrangalanJr on Monday August 08, 2011 @06:04PM (#2861772)
As 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.
Re:Computer Science students: Learn to write by sanderjd on Monday August 08, 2011 @11:16PM (#2862738)
Absolutely 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.
Re:Computer Science students: Learn to write by hmottestad on Monday August 08, 2011 @05:49PM (#2861734)
As 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.
Re:Computer Science students: Learn to write by superuser2 on Monday August 08, 2011 @07:13PM (#2861943)
Thinking 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.

Re:Computer Science students: Learn to write by georgieporgie on Monday August 08, 2011 @09:44PM (#2862423)
While 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. ;-)

Re:Computer Science students: Learn to write by ThomPete on Monday August 08, 2011 @04:58PM (#2861564)
I love your comment and would love to get it elaborated a little. Can you give an example of what you mean?
Re:Computer Science students: Learn to write by wdewind on Monday August 08, 2011 @08:06PM (#2862097)
If you are writing a sorting algorithm there will be a lot of math as in equations involved.

If you are writing a complex model, while it is ultimately math, it has more in common with the skills required to write a great essay than it does with the skills required to do complex calculus. A great essay is understandable on multiple levels of detail: if you read just the introduction you should get a sense of what is going to happen in the essay. If you want a more detailed explanation of what exactly happens it should be contained in a logical place later on in the essay. The body paragraphs should reference the structure of the introduction and they should contain those arguments in more detail. If you are writing a particularly large body of writing you might need a more expansive structure: chapters, maybe even multiple volumes etc.

The same should be true of your application. If I read the main file of it I should get a basic idea of what is going to happen. If I want more detail I should be able to understand clearly where to look for the detail I want.

Re:Computer Science students: Learn to write by derleth on Monday August 08, 2011 @06:36PM (#2861843)
> The truth is that I'm pretty bad at math, but in terms of logical syntax and parsing I am pretty good.

The sad truth is that you have a very limited view of what math is if you think of logical syntax and parsing as something other than math.

Frankly, I'm a little tired of the position calculus holds, where it is the pons asinorum for everyone who wants to do the more advanced (that is, non-arithmetic non-trivial-algebra) math regardless of what their true focus is. I think proof construction should be its own class and CS folk should take that and discrete math in order to move up the ladder. Engineers-in-training could take proof construction if they want a math minor and, yes, calculus their little brains out because calculus is what physics uses for a language.

Re:Computer Science students: Learn to write by tokenadult on Monday August 08, 2011 @08:12PM (#2862115)
Frankly, I'm a little tired of the position calculus holds

You are not alone. Here is a quotation from John Stillwell that I put in a FAQ for parents about mathematics education:

"What should every aspiring mathematician know? The answer for most of the 20th century has been: calculus. . . . Mathematics today is . . . much more than calculus; and the calculus now taught is, sadly, much less than it used to be. Little by little, calculus has been deprived of the algebra, geometry, and logic it needs to sustain it, until many institutions have had to put it on high-tech life-support systems. A subject struggling to survive is hardly a good introduction to the vigor of real mathematics.

". . . . In the current situation, we need to revive not only calculus, but also algebra, geometry, and the whole idea that mathematics is a rigorous, cumulative discipline in which each mathematician stands on the shoulders of giants.

"The best way to teach real mathematics, I believe, is to start deeper down, with the elementary ideas of number and space. Everyone concedes that these are fundamental, but they have been scandalously neglected, perhaps in the naive belief that anyone learning calculus has outgrown them. In fact, arithmetic, algebra, and geometry can never be outgrown, and the most rewarding path to higher mathematics sustains their development alongside the 'advanced' branches such as calculus. Also, by maintaining ties between these disciplines, it is possible to present a more unified view of mathematics, yet at the same time to include more spice and variety."

That's from the preface to his book Numbers and Geometry (New York: Springer-Verlag, 1998), which is a delight to read and full of thought-provoking problems.

http://www.amazon.com/gp/product/0387982892/

Re:Computer Science students: Learn to write by sanderjd on Monday August 08, 2011 @11:03PM (#2862682)
My eyes were similarly opened to the unnatural focus on calculus in mathematical education by the book "Everything and More" by David Foster Wallace. It is about Georg Cantor's search for an understanding of infinity, but spends much of its time laying groundwork with a lengthy adventure through math history, including many of the topics Stillwell mentions in that quote.

http://www.amazon.com/Everything-More-Compact-Infinity-Disco...

Re:Computer Science students: Learn to write by reemrevnivek on Monday August 08, 2011 @08:39PM (#2862204)
Re:Computer Science students: Learn to write by nazgulnarsil on Monday August 08, 2011 @09:23PM (#2862344)
my discrete math class was a joke. we covered half the book and it seemed we specifically skipped the things that were most valuable.