8 ms·
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
by wdewind 15y ago
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.
- ThomPete 15y agoI love your comment and would love to get it elaborated a little. Can you give an example of what you mean?
- wdewind 15y agoIf 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.
- mtogo 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. 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.
- derleth 15y ago> 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.
- tokenadult 15y agoFrankly, 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/ http://www.amazon.com/gp/product/0387982892/