Ask HN: What's the highest math level you need to be a hacker?

7 points by acidfreaks ↗ HN
BTW I'm not good at math but I would love to after taking some Online courses available. I'm wondering what's the highest math level you need to be a good Hacker?

21 comments

[ 3.5 ms ] story [ 61.1 ms ] thread
#define "good hacker"
The thing about math is that it isn't a requirement for most things in life, but there are almost zero things that aren't helped by learning math
I believe the question is one of prioritization. More things in life are helped by learning business mathematics than learning K-theory.
>More things in life are helped by learning business mathematics than learning K-theory.

I thought about that before writing my comment, but then I changed my mind. For all I know K-theory could be more helpful to a person than business math. I think people were pretty surprised by the impact of eigenvectors in the last 15 years

True. But the OP is asking for advice on what to do next. It's hard to take any action on "for all I know".

Based on population counts, knowledge of business math is useful to many more people than knowledge of K-theory. While tensors, eigenvectors, etc. are important for my daily life, the are as behind-the-scenes as plumbing, materials engineering, and farming; that is, I benefit from people with that knowledge, though I know almost nothing about them.

The problem I see is a math problem and a computer problem both involve problem solving. So, if you don't enjoy problem solving then I doubt you'll enjoy programming. Not that you can't become a proficient programmer, but if you don't enjoy thinking about something until you "get the answer" I doubt you'll like your job.
There are many different types of problem solving. For example, diplomacy is a type of problem solving. So is plumbing repair.

Even in programming, I found that I like solving problems with a physical basis, but not more business-oriented problems like equipment management and payroll, or financial problems like derivatives pricing.

I therefore don't think it's useful to consider this as a "problem solving" issue.

But you like solving problems. A lot of people don't. They also tend not to like higher level math. Can they learn to program yes but, will they enjoy it probably not.
We are talking about the OP, not "a lot of people".

A lot of people like problem solving, even though they don't specifically like the sorts of problems addressed in most math courses.

There are also many programming problems which have little to do with those math problems.

I see no reason to believe that this OP is not interested in solving problems. Even if there is a anti-correlation to "problem solving" and easy of learning math, I don't think it's strong enough to make a recommendation to stay out of "hacking" or programming in general.

I also protested the implicit restriction of the term "problem solving" to mean a certain specific type of intellectual problem.

For most programming jobs, high school algebra (and then really only for the concept of variables).

Add trigonometry and potentially calculus for 3D graphics, game development, and high finance quant stuff.

I don't know what "hacker" means in this context.

In general most programming requires middle school levels of maths if that. A lot of maths knowledge higher than that is similar to programming, but learning the maths itself doesn't really make your code better in and of itself.

That being said there are specific jobs that require much much higher levels of maths in particular statistics, physics, and similar. But the vast majority of programming jobs are just business-information which requires near to none.

I don't use any non-trivial maths day to day and haven't since the start of my career. But I don't work in the science/economics/games development fields, I work in one of the many "boring" programming jobs. We are the silent majority.

Agreed on the middle school levels. I'm also in the "boring" programming jobs section, even though I don't find it boring.

Also, if you're coming from a non-maths background I've found you occasionally "discover" some little bit of math in the process of coding something up. It's a nice bonus when you find something interesting and look it up and it clicks instinctually because you were wrestling with a concrete example of the idea.

There are a ton of things from math or many other sciences that can assist you in problem solving. However, if you made it through algebra and spent a few weeks studying a discrete math book I think you'd be fine. Algorithmic complexity interview questions would be easier to understand if you were more familiar with what graphics of logs and exponential functions look like.
Haven't you gotten it backwards? You appear to be interested in what is the lowest level of math needed to be a "hacker". Of course, the question is hard to interpret as the term "hacker" has a multiplicity of folk definitions. Most of my colleagues think that "hacker" and "polymath" are synonymous and see it as a positive term. Other folks often think "hacker" describes people who maliciously break into secured computer systems and view them as pariahs.

In truth, computer programs and problem solving don't require deep mathematical knowledge, but it helps.

Algebra II is probably necessary (you at-least need to be very comfortable with the concept of variables). Stats couldn't hurt. Any math class that teaches you proofs will be helpful when you stat tackling BDD/TDD.

But overall, I'd say that taking a formal logic class (usually part of the Philosophy Dept at most colleges), will be the most bang-for-your-buck.

having studied philosophy helped me more as a developer than anything else
Linear Algebra. If you understand how to manipulate matrices and vectors you can get pretty far.
TL;DR; When you can read this book [6] and do all exercises in it without any issues you can safely stop and be sure you are very well versed in vast majority of subjects that you might encounter while hacking on whatever in most technical fields.

You can be a hacker and get by with very little math, depends what you are hacking. Hacking is not a profession, it is more of an approach to things, a way of looking at the world, the joy of really figuring stuff out and maybe doing something cool, something that might have seemed impossible. This does usually involve mastery, but not necessarily of mathematics.

I think the question you should be asking, or maybe are even asking is - how much mathematics do I need to hack the hack that I want to hack? - and the first thing you need to do, if you have not already done so is try to think about what that might be. Even a vague idea will give you plenty of clues about how much of what you might need for that.

If you find it troublesome, check out what Richard Hamming has to say about it, it should help you out a lot with figuring it out [1][2].

That said, if you want to do computer science, or hack on the interesting things you do need quite a bit of mathematics. This is due to the fact that, as other posters here have pointed out, what you are really in need of, is an effective way of problem solving, and to solve a problem you need to understand it, model it, work on it in some terms. Mathematics is /the/ method of clear thinking which you should apply in order to do this. Sure, you can do certain things without mathematics, but you are not making things any easier for yourself by doing that, and more importantly you are not gaining as much insight as you would have if you used the mathematical approach.

Now, you do mention that you are not good at mathematics, do not let that discourage you, there are many people who were, or are in similar situation as you, me included, and I can assure you that with some dedication and open minded thinking, it comes easier than you might think, and all this effort almost instantly pays off. If you are familiar with one or several programming languages, check out these amazing books and use them alongside whatever mathematics course you will be taking, they will help you out immensely by helping you master both the problem solving approach and the necessary concepts in order to succeed in mathematical education [3][4][5].

[1] https://www.youtube.com/playlist?list=PL2FF649D0C4407B30 [2] http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn... [3] http://www.amazon.com/Language-Mathematics-Utilizing-Math-Pr... [4] http://www.amazon.com/How-Solve-Mathematical-Princeton-Scien... [5] http://www.amazon.com/How-Prove-Structured-Approach-2nd/dp/0... [6] http://www.amazon.com/Methods-Mathematics-Calculus-Probabili...