Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I took away the exact opposite - this is yet another example of not needing to know the right math. In the end, he can study up a bit and/or seek out a friend who does know, but be got the hack done without it.

This is how it works with my wife and I sometimes. I write a lot of code, and she either fixes or writes or advises me on the bit I need to work much better.

I admit we can't run the world or write good code without math, but some of us have strengths in other areas.

tl;dr my matrix algebra is fuzzy too.



First of all, "getting away" with something by relying on someone else to know what you don't know but need to use is hardly a virtue. If someone wants to work like that, to each his own. The problem I have is people telling the next generation that since you can "get away" without math, that it isn't important to take it very seriously as a programmer.

Second of all, like you said, you can get the "hack" done without math. I would say the less hacks you have to use in your programs the better, and the best practice is to code at a high enough level of generality that you don't need any hacks at all. Without math, so much time is spent (or wasted) tinkering around, and you don't often end up with the optimal solution. Whereas a strong math background lets you skip all that tinkering, because you are able to properly plan a solution before you even write a single line of code.


I think for programmers the constant state of learning (code techniques, browser quirks, new tools, new libraries, new algorithms) takes the edge off of learning "a bit of linear algebra" for one little part of your program. Would it help to really know linear algebra in and out? Sure, but that list of things worth learning is near infinite and the times you'll need linear algebra like this is quite small.

Web developer especially need to get their sea legs and be comfortable working on unstable ground all the time - it's inherent in the kludge we call web standards. So if you take a list of all the things a web developer needs to know to be effective, let's just agree "high math" isn't going to be near the top of that list.


There's something to be said about time investment. You're suggesting that tinkering takes time. If I want to keep current on all the math I learned in school, I'd have to invest a significant amount of time in addition to the time I already invest in keeping up-to-date with languages/frameworks/platforms/algorithms/datastructures/databases/etc.

How often would I use this level of math? I know I use the others on an almost daily basis. Coming up with something I need linear algebra for, though? Few and very far between. Maybe you use linear algebra often, but most of us don't have a need for it.

And if you disagree, then I think you should actually know abstract algebra, number theory, topology, etc., so that when the next problem comes along, you can 'quickly come up with an optimal solution'.


Sorry if this comes off as snarky, but I'm not sure of a better way to explain it. To me your comment sounds like:

"I have been walking through mazes my whole life with my eyes closed, and I make progress by feeling the walls with my hands. In order to get through each maze I need to remember lots of facts about how the walls in the different mazes feel when I touch them. If I opened my eyes now, it would take too much time, and be too painful to adjust to the light. I never tried to open my eyes, and even though a lot of people keep telling me it's a lot easier to get through mazes with your eyes open, I think they are wrong. Besides, the few and far between times I get stuck, I can always ask one of the people who can see where I should go next. And if you think I need to keep my eyes open, then the next thing you are going to tell me is I should use my sense of hearing and smell too."


Is that really the best you can do? That analogy has absolutely nothing to do with baak's point.

If you must reword and put his entire argument into a bad analogy, try this one:

"I've been walking through mazes all my life. This one time, I had to recognize a particular brand of poison flower, but I didn't know my flowers very well because flowers are rare in the maze."

And the answer?

"I asked my friend who was also in the maze: 'Is this flower poisonous?' He said yes. I said okay. We skipped the flower and moved on."


Pretty much this. Except you should also add that while he dedicated time to learning poisonous flowers that are encountered almost never, I spent that time getting in shape to move through the maze quicker, a skill/attribute used way more often.


Probably majority of most software engineering is "getting away" with it as defined in this context. Which is trying to accomplish a goal with imperfect knowledge about the methodology.

If the majority of someone's engineering involves concepts and tasks that one is 100% knowledgeable about, I'd argue that that person has reached a stale state and shoudl probably seek out other challenges.

Specifically, I'm NOT saying that math is not important.

I'm saying that there's nothing at all wrong with getting by with imperfect knowledge in a domain if the process of "getting by" means expanding your knowledge in that domain.

Everyone learns on the job. I don't see the difference between brushing up on linear algebra from school, and learning that new framework or language or software suite.


It's not a virtue to not know matrix algebra, but it's not particularly un-virtuous either. I have great respect for mathy engineers, but I also know the world needs its Jobs's and its Wozniak's, and it needs them to work together.


This is very wise +1


Absolutely not. Yes, you might be able to hack something with outside help but knowing math it is the mind set that would allow you to build something like this in the first place. You can imagine solutions to problems because you might visualize how they can be solved.


When you don't know what you don't know, you end up wasting countless hours trying to rediscover the solution to an already-solved problem. I know I have.


Two sides of the same coin. Whether you know math or someone on your team does, no good programming is getting done without it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: