tag:blogger.com,1999:blog-36547168.post3056569072126306489..comments2023-03-13T13:51:22.584+01:00Comments on Invisible to the eye: Programmers should know math.. just not all of itGiorgiohttp://www.blogger.com/profile/03558287012747987157noreply@blogger.comBlogger47125tag:blogger.com,1999:blog-36547168.post-55051929894627209232012-10-07T12:21:55.390+02:002012-10-07T12:21:55.390+02:00I didn't take the high school math exam and we...I didn't take the high school math exam and went to the crappiest university to study CS, which didn't even need a math or any real subject exam, to get in (like WTF, right?). We had linear algebra and discrete math, and something else. I somehow got through the exams, but i still don't understand much of it, i understand set theory, boolean logic and some of the basic stuff. Result - i'm creating user interfaces at a company, which creates software for online bookmakers. Other developers are having fun with modelling different markets for different sports, doing function analysis, probabilities, statistics etc. I can't take this crap anymore, though the pay is good, i just started my masters in a better university and i'm gonna take math courses again, cause a high school kid could do my job. It's f*****g frustrating. So, if you suck at math, no one will give you more responsible, interesting tasks. They'll just throw you in the GUI department. Eventually you will get bored, which i am right now. And if you're bored, you become less productive and start hating your job. I'm on that path. But there's a plus side. Since i was really, really BAD at math at high school, i didn't understand what a hell a function is, what integers or real numbers are. But now that i've learned to use functions and methods in programming, using java, i actually understand what a function is now, that it has input and ouput - so easy. I associate terms integers and real numbers, i know what they're called now, in high school it was a big confusion, teachers using these "complicated" terms to sound smart or whatever. So programming in my case has brought me closer to understanding math and associate difficult terms with simple concepts. I've been learning high school math independently, it's so easy now, since I can relate it with my programming experience and the simplest logic. I blame the educational system, if a teacher uses unknown terms in sentences at a high frequency, and doesn't properly explain them, then anyone would lose interest and wouldn't want to deal with it. When in fact you're dealing with very simple concepts. And of couse the greek letters scare the hell out of anyone. I like the american education system, it tries to always bring examples in real life and explain the terms, it makes so much more sence in the way of teaching. I'm from Eastern Europe by the way, people here like to brag with their knowledge and scare the crap out of the younger generations. I'm still dumb at math, but i'm getting there. If i can take all the math courses in masters and understand it, i'm probably gonna go to doctorate also :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-23385633182824863832009-10-27T23:10:46.208+01:002009-10-27T23:10:46.208+01:00The thing about physics is that it's only rele...The thing about physics is that it's only relevant in the sense that certain specific fields actually use knowledge from that field. <br /><br />Sort of like how genetics is good to know if you plan on working in the bioinformatics field (as it math :-). <br /><br />The difference with math is that the *process* of learning how to solve complex math problems and construct airtight proofs aids you in *all* analyses of even moderately complicated algorithmic problems you might run into.<br /><br />Programming is a generalist's art. The more you know about more fields the better you will do overall. Mathematics provides practice and learning about algorithms that cuts across multiple fields. <br /><br />In it's own way, it's also an important generalist's skill, as many difference fields make use of math. But that's secondary.hacksoncodehttps://www.blogger.com/profile/16810160033437736677noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-84380509156771092812009-10-27T19:37:43.728+01:002009-10-27T19:37:43.728+01:00Don't forget about physics! Important if you w...Don't forget about physics! Important if you want to do game programming...(e.g. realistic models) =PAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-76028379723344768492009-10-24T00:07:10.713+02:002009-10-24T00:07:10.713+02:00Here's the thing, if you code simple tasks, th...Here's the thing, if you code simple tasks, then you're not going to need much math.<br /> But when you start analyzing real problems, math is essential.<br /> True cost effective performance testing is nearly impossible without a basic background in statistics. How much is that caching system you put in really helping? How do 2 servers really compare?<br /> Linear Algebra and Discrete math help a lot in search problems (similarity ranking algorithms anyone?).<br /> Graph and Network theory can help out when analyzing how to execute that simulation program, the civil engineer gave you, on a 100+ node computer grid system.<br /> Differential Equations and Linear Algebra would be helpful in actually understanding that engineer's code.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-6913322860779680192009-10-20T15:07:39.996+02:002009-10-20T15:07:39.996+02:00All you need to be a programmer is Be Prepared To ...All you need to be a programmer is Be Prepared To Learn New Stuff. This is certainly true in my case. I graduated in History with F*** ALL science background but have been working as a programmer for last 5 years started with C, C++ now working on C#.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-25517006575424345952009-10-19T20:51:52.383+02:002009-10-19T20:51:52.383+02:00Miles,
many of my books are written in Italian so ...Miles,<br />many of my books are written in Italian so I think they do not interest you. :)<br />Apart from trigonometry, which you need a specifical text for, if you want some general insights I would suggest "What Is Mathematics? An Elementary Approach to Ideas and Methods" from Courant and Robbins. My high school teacher suggested it to me when I was 14 and still today I find me thinking "That was explained in the book" after a lecture.Giorgiohttps://www.blogger.com/profile/12689416577856305650noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-91233641388893156232009-10-19T20:22:34.559+02:002009-10-19T20:22:34.559+02:00I totally agree that for *some* programmers math i...I totally agree that for *some* programmers math is essential. Can you guys suggest some books on the topics you've pointed out. Recently I've been investigating a lost of trig and the math is perplexing. Sadly the books are just as bad. Many of the formula are extremely complexMileshttps://www.blogger.com/profile/10355989779733313948noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-59401578776984759622009-10-17T13:00:42.684+02:002009-10-17T13:00:42.684+02:00I think knowing math helps a lot in programming. B...I think knowing math helps a lot in programming. By 'help', I do not mean it’s applicable only to jobs that involve fleshing out complex algorithms in code; but also, it improves how one attends to details, the way one approaches problems, designing (where the capability to abstract things is essential) and increases mental stamina. That said, I should probably also add that there are a lot of jobs out there where you can possibly do without knowing much math (or any math at all)- you work on a few projects: you get to know the nuts and bolts of stuffs - but I still believe , knowing math, would help you there too. After all, doing math is not just about blind symbolic manipulation - that’s just a manifestation :) - its mostly about elegant problem solving, which one might apply to all walks of life.<br /><br />Someone mentioned 'outsourcing' in a comment - I am not sure about the intended objective or what vein it was mentioned in - but I don’t think that the fact a project has been outsourced to you is reflective of the fact that you are a good programmer. Outsourcing is a business decision - and it could probably mean you are providing cheap labor for a tolerable level of quality (this is not about the commenter :), just mentioning what an outsourcing decision could mean in the worst case :) ).<br /><br />I have programmed for both the above kinds of projects - application development (some outsourced) and pure 'academic'-tech codes (AI, search heuristics, text mining etc), with the latter kind of work coming to me later. After working on the second kind of projects, for which I had to read up a lot on math, I did find a significant positive change in my approach to problems of the first kind - even though the second kind of projects were MUCH smaller in scale than the first ones.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-24634973202250182112009-10-17T10:25:57.952+02:002009-10-17T10:25:57.952+02:00After 25 years in programing I've start to hel...After 25 years in programing I've start to help guys who struggle with programming at school. What I've found is that the better one know math the easy it is for him to learn the abstractions involved in programming (i.e. program variables are very similar to algebra variables).<br />Even a simple loop over an array could be a wall for a non math mind. I'm just talking about speed of learning because I don't know how deep they will gets into the programming after my lessons.<br /><br />IMHO:<br />Pre-calculus skills are enough, but must be solid skills. Set theory helps.<br />Mastering proofs by induction would be the definitive skill, but is very unusual to find in guys.<br /><br /><br />PS. sorry to all douches for my poor english.Marconoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-40261026295294067442009-10-17T04:49:54.456+02:002009-10-17T04:49:54.456+02:00I think that learning specific maths certainly doe...I think that learning specific maths certainly doesn't define how good you are at programming, but the ability to learn and implement maths does. Maths in code sure isn't exactly maths in programming.<br /><br />I'm in high school, and I've never been the best at maths, and never cared for it. Yet I'm learning about Vectors, Matrices, and more maths related knowledge through 3d programming, and programming in general.<br /><br />Not because of my great maths 'skills', but because I want to learn it. And besides, the only real math I learnt was enough only to implement and work with it, not to know everything and master the subject. So I don't really think knowing maths is as major in programming as many think.Sam Sweeneyhttp://www.samwhat.com/noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-4971388233602230352009-10-17T04:12:46.555+02:002009-10-17T04:12:46.555+02:00Dude, the more you know about math, the better. Ha...Dude, the more you know about math, the better. Haven't you seen that guy from Numb3rs? <br /><br />Seriously, math is good for you because it develops many different problem solving skills. Besides, it makes an impression if you want to show off in a cocktail party. <br /><br />What do you need to know as a programmer depends very much on the industry you are in. For example, if you want to land a job in the finance industry (besides UI developer) you should have a solid foundation in calculus (yes, multi-variable too), diff. equations, linear algebra, probability and numerical analysis. And this is just for a starter. Oh, and of course, you have to be a kick ass problem solver.<br />Regards,Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-33937226741126709802009-10-17T02:27:35.157+02:002009-10-17T02:27:35.157+02:00Here's a question: did you *learn* any math pa...Here's a question: did you *learn* any math past basic algebra?<br /><br />If so, I can say almost categorically that your programming benefited from it.<br /><br />Almost no one needs the actual exact stuff they teach in most math classes. It's the *skills* you learn *while* you're taking the math class that apply strongly to programming, and I defy you to separate them out.hacksoncodehttps://www.blogger.com/profile/16810160033437736677noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-78218197373351623892009-10-17T00:03:42.502+02:002009-10-17T00:03:42.502+02:00I've been a successful programmer for 15 years...I've been a successful programmer for 15 years. I've spent years working at one of the largest Internet companies, and have launched successful start-ups, including my own.<br /><br />Not once have I needed to know any math beyond basic algebra.<br /><br />There are plenty of programming jobs out there that you don't need a lick of math to do well.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-91191116078423114692009-10-16T20:32:01.138+02:002009-10-16T20:32:01.138+02:00It's may be more accurate for the purpose of t...It's may be more accurate for the purpose of this article to say that the world is not *predictably* deterministic. The weather may (or may not) be deterministic, but you still have to treat it as though it weren't, because you can't usefully predict it with 100% accuracy. <br /><br />I would elevate at least elementary statistics to the "must have" level, though. No one can make a reasonable judgment about things like how much effort it's worth putting into covering unlikely corner cases without understanding what "unlikely" means, or how 2 "unlikely"s combine into an overall probability of disaster.hacksoncodehttps://www.blogger.com/profile/16810160033437736677noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-62966435945681555012009-10-16T20:15:48.084+02:002009-10-16T20:15:48.084+02:00Roman,
my faculty name is Computer Engineering &qu...Roman,<br />my faculty name is Computer Engineering "Ingegneria Informatica". Other faculties of Politecnico di Milano are mechanical engineering, electronic engineering, chemical engineering. We are engineers in the sense that this is not a computer science course: we are required to know physics (thermodynamics, waves, dynamics, electromagnetism) and high-level math (multiple variable calculus) and we can theoretically switch faculty for the Master degree to any other engineering course.<br />About the "deterministic universe", the classic physics is deterministic but more modern theories like quantum mechanics aren't and are based on prabability. Heisenberg says for example that no one can know, by principle, both the momentum and the position of an electron with accuracy on both the measures.<br />http://en.wikipedia.org/wiki/Uncertainty_principle<br />Of course quantum mechanics it's not required for programming, but that is what I was referring to in the post.Giorgiohttps://www.blogger.com/profile/12689416577856305650noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-64525012611680639542009-10-16T20:10:18.477+02:002009-10-16T20:10:18.477+02:00Trust me a MONKEY CODER is still a MONKEY CODER fo...Trust me a MONKEY CODER is still a MONKEY CODER forever. <br /><br />I am a douche ? Yeah right... Remind me that next week when your boss outsource your job to us. <br /><br />And there is NO mathematical model in coding. We do have standard coding. <br /><br />- DeeptaAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-70508284921572370692009-10-16T18:41:24.043+02:002009-10-16T18:41:24.043+02:00Kirby, you're not a programmer. Programming is...Kirby, you're not a programmer. Programming is eternally fun and challenging, and real programmers always have a side-project cooking up outside of the day-job. If programming were so boring, and a repetitive task, programmers ages ago would have written nice programs to write other programs.<br /><br />If you don't find other people's problems as interesting (or more so, even) than your own, you've picked the wrong profession. That, or you need to try the indie road, but I seriously doubt your ideas are all that grand.<br /><br />I agree with the post, that math is important, and the more math you know the better off you'll be. One part stands out though: "the world is not deterministic". Probability exists in the mind, dude. The universe isn't uncertain.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-43973607141922842872009-10-16T18:39:09.080+02:002009-10-16T18:39:09.080+02:00I want to add--
Wow, Kirby L. Wallace is bitter.
...I want to add--<br />Wow, Kirby L. Wallace is bitter.<br /><br />Math isn't important in every programming job, only the interesting ones.<br /><br />I work on something pretty complicated and hard. Just to be able to review other people's patches I have to construct proofs, find the implicit invariants in existing code--it involves a lot of mathematical thinking, though not in any particular mathematical field.<br /><br />It's fun.jtohttps://www.blogger.com/profile/03968844388108605008noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-29238883452973429062009-10-16T18:21:31.949+02:002009-10-16T18:21:31.949+02:00for those who have fun in maths:
http://projecteu...for those who have fun in maths:<br /><br />http://projecteuler.net/Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-14278731233383681352009-10-16T18:20:42.537+02:002009-10-16T18:20:42.537+02:00It's interesting how many people feel offended...It's interesting how many people feel offended by this post, probably because they do *not* know math very well / at all? Either way, it doesnt matter. No need to feel offended.<br /><br />@jto: I agree, graph theory has lots of uses in practice. I've needed graph theory quite a lot already.<br /><br />@Giorgio: What do you mean by "engineer"? "Software Engineer"? Personally I still find the term engineer/engineering misplaced in the world of software development. Maybe one day it will fit. This is a very interesting post: http://www.artima.com/weblogs/viewpost.jsp?thread=255898<br /><br />Whether you need math and how much of it you need really depends on the field you're working in. You can not say programmers need math or dont need math. A lot of them indeed dont need any advanced math beyond the absolute basics. Simply because a bulk of the programmers are simply told what to do and do boring tasks. They code what they're told to. If there was something complicated to solve before, then other people did that already before assigning them the tasks. Programmers that are just "end users" of software and frameworks and tools usually need to know much less than the ones who write these frameworks, tools and programming languages (which is good, after all thats the goal of building these tools, to get higher levels of abstraction).<br /><br />So it really depends on what you work on. You can certainly be a software developer without much math knowledge, it just wont get you very far and you miss out on a lot of interesting working areas.<br /><br />And ... it really doesnt hurt to know some math ;)Unknownhttps://www.blogger.com/profile/00439059243350222311noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-53191471863688907852009-10-16T18:19:27.533+02:002009-10-16T18:19:27.533+02:00See also here: Do we need to know basic math as pr...See also here: <a href="http://blogs.lessthandot.com/index.php/ITProfessionals/EthicsIT/do-we-need-to-know-basic-math-as-program" rel="nofollow">Do we need to know basic math as programmers?</a>Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-84421068732277590862009-10-16T17:58:55.303+02:002009-10-16T17:58:55.303+02:00A little high school algebra goes a long long way....A little high school algebra goes a long long way.<br /><br />Some graph theory is nice to have, too.jtohttps://www.blogger.com/profile/03968844388108605008noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-64586311815528619172009-10-16T17:58:51.114+02:002009-10-16T17:58:51.114+02:00I really wouldnt worry about the his/her gender re...I really wouldnt worry about the his/her gender refrences. There is absolutely no reason for anyone to genuinely be offended by such a thing. The book "c# for dummies" for example refers to all person's as "she" and "her" and that didnt bother me at all. You can replace it all with "person" and "them" but then some sentances become akward and you could even argue it lacks the personal touch perhaps. At the end of the day, you could argue about anything :/<br /><br />Loosen up, its an article about programmers maths. If people took offence less easilly maybe we'd have less wars and hate crimes eh?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-36547168.post-48417076193947009202009-10-16T17:56:19.139+02:002009-10-16T17:56:19.139+02:00This comment has been removed by the author.Sandcastlehttps://www.blogger.com/profile/01707814194529031879noreply@blogger.comtag:blogger.com,1999:blog-36547168.post-65294520577586889072009-10-16T17:26:24.597+02:002009-10-16T17:26:24.597+02:00Kirby,
I have worked as a programmer for the last ...Kirby,<br />I have worked as a programmer for the last years, but I'm studying to become an engineer. As you may know programmer skills are a subset of an engineer's ones. Maybe this mindset is the reason why I stress my desire for mathematics and deep understanding of programming techniques, since my job will be not to use them only but also to design new ones.Giorgiohttps://www.blogger.com/profile/12689416577856305650noreply@blogger.com