Going back to the basics? [closed]

I'm currently in my second year of college majoring in comp sci and I haven't really taken any math courses yet except pre-calc. In high school, I thought of myself as a pretty good math student and got good grades but never really challenged myself to take calculus. I found pre calc easy enough but it was taught to me in a very mechanical way. For example, first step is to do this and then that and so on. When you see a specific problem, you do it the way the professor taught you and that's all you need to know. I felt that this isn't really good for me since I didn't really understand any of the concepts for example logarithms, quadratic equations, trig identities, etc.

I plan on becoming a programmer/software engineer and after reading a few intermediate programming books or trying out intermediate programming exercises that required some math (nothing too difficult), I found that I couldn't understand how to apply the math I knew to programming. I felt that is because of the way I was taught my math so I was thinking that I should probably go back to the basics and re-learn it in a different, more intuitive way so I understand the concepts better and have a better and more solid foundation so I can understand the higher level math that is needed to solve such programming problems. An example of such a basic programming problem is: http://code.google.com/codejam/contest/32016/dashboard#s=p0 and http://code.google.com/codejam/contest/351101/dashboard#s=p0

Reading blogs posts, and other info online suggests that having a good math background will help you find solutions to programming problems much more easily compared to someone who has no math experience. Also helps out with algorithms that almost all programmers should have basic knowledge of. People who are good at math are usually good problem solvers and programming requires a lot of problem solving.

So what I want to ask you guys is if going back and learning the basics would be a good idea or should I continue with higher level math and hope that it will all fall together and make sense in the end. Also, if I do plan on going back, I don't want to retake those courses because 1. it's very expensive, and 2. it's sort of a waste learning it again in the same exact method that most schools teach. I would rather find a book and self-learn to better understand the concepts.

Lastly, since it's difficult to self learn any topic, especially something like mathematics without a teacher to guide you, can you recommend a strategy to self learn the topics I need in order to become a good programmer. Currently, most computer science programs include a lot of Calculus which from reading famous blog posts online isn't something that is the best type of math programmers should focus on. According to this: steve-yegge.blogspot.com/2006/03/math-for-programmers.html

Discrete math is the most practical for programmers. In the same blog post, it says that I shouldn't take an in-depth approach to such subjects. Instead, the blog post says, "The right way to learn math is breadth-first, not depth-first." So with my basic background, what topics should I first cover in order (since I can't jump into an advance math topic without learning it's prereqs first) while I self learn.

I've been researching on some books on Amazon on various sites and found these four books. I wanted to get your opinion on these if this would be a good start. Also, if you can suggest any others to add to this, I would appreciate it.

The four books that I found on Amazon:

1. Precalculus Mathematics in a Nutshell: Geometry, Algebra, Trigonometry - To brush up on the basics for quick review.

2. Mathematics for the Nonmathematician - Sort of an outline of different types of math I'm guessing from the reviews. Looks like a good basic book to start from?

3. Mathematics: A Very Short Introduction - Same purpose as above

4. The Skeleton Key of Mathematics: - Not sure about this one if it's something that fall under basic math or advanced. Judging from the title, it seems relevant to me.

-

closed as too localized by Pedro Tamaroff♦, Amzoti, Math_overview, Keenan Kidwell, Guess who it is.May 28 '13 at 6:31

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.

Ok, Summer is around the corner now, so I am giving you just something to think of. Get from an online source a Precalculus book (cheap!) and work through the problems as much as you can and as needed depending on the chapter. Don't worry much about the probability chapter. This is just for your basis! Then since you want to go back to school, are you planning to go to a community college? They offer the Calculus Sequence for a very reaosnable price. In fact, you can do the first two years of a 4 year BSc program. For you, Calc1 can start right in the Fall. This is just one avenue. –  imranfat May 23 '13 at 20:29
Odds are that until now, your time spent in highschool "math" courses and basic college "math" courses has exposed you to approximately but not quite entirely no mathematics at all. So, this raises a question: are you really interested in learning some mathematics or do you want to be able to specific tasks without worrying why the math works? –  rschwieb May 23 '13 at 20:33
Well math is something that I am interested in, but not something that I can divert my full attention to. Programming is related to math and uses math in many cases so because I can't focus on both, I'd like to focus on just the math that will help me become a better programmer. Also, @imranfat: are the four books that I have listed above a good choice? –  An Alien May 23 '13 at 20:52
I haven't seen the books, but book 1 seems to be good, looking at the title. If you want to have a four year engineering degree in computer sciences, then you will have to take the standard math courses that every undergrad in engineering has to take, irrespective of the field. That accounts for 18 credits of Calculus: Calc1, Calc2, Calc3 and DFQ. Along with that you may choose Linear Algebra as an elective if that is not mandated by the four year institution. –  imranfat May 23 '13 at 21:21
I believe that the reason we program is because we want to automate computation of something, and there is always math in computation. For example, in the sorting problem, you assume that elements in a list can be compared, and the comparison is a total order, which is the mathematical structure of interest. I'm saying that it is impossible to know what math will be needed unless you know exactly what you're programming for. However, there are topics that are considered widely popular, and they are mostly included in most discrete math books. –  Tunococ May 23 '13 at 22:27

Higher abstract mathematics is probably going to be irrelevant to what you want to study. The most relevant mathematical topics for the typical programmer are some introductory mathematical reasoning, combinatorics, graph theory, calculus, differential equations, matrix algebra, and numerical analysis. Things like abstract algebra and analysis are not likely to be things you'll encounter frequently. Besides, if your eventual job does end up requiring you to have some knowledge of more abstract things, you can always pick up a book and learn it as you go.

I don't know much about the precalculus book you listed. I'd recommend you stick with the one your educational institution uses, because you can get more targeted help from professors if you get stuck. The other three books are not mathematics textbooks, but more "popular science" type books. They explain to the layman what a mathematician's job is, and do not focus on technical details. If you're looking to build solid mathematical foundations, then it's best to look toward actual textbooks in the areas you think you'll need.

On the other hand, they can be a very entertaining read. The third book, Mathematics: A Very Short Introduction by Tim Gowers is very well regarded, so if you've got spare time to read then by all means try it out.

-
Well, the reason why I was trying to find intro books to mathematics is because I don't really know where to begin my self study adventure. But since you said it's not really for the purpose I'm trying to achieve, can you recommend any other math books? –  An Alien May 23 '13 at 22:15
Search for the topics I listed on Amazon or someplace like that. Your local university textbook list might also be helpful. The books you listed aren't really introductions to mathematics in the sense that they prepare you for further mathematics. They are introductions in the sense that they try to describe the job of a mathematician. –  neuguy May 24 '13 at 1:42

Once you get past precalculus, and maybe the basic calculus sequence, you might want to consider looking at the book "Concrete Mathematics" by Graham, Knuth, and Patashnik. The subtitle of the book is "A Foundation for Computer Science." The blurb on the back cover starts off "This book introduces the mathematics that supports advanced computer programming and the analysis of algorithms. Its primary aim is to provide computer science students and practitioners with a solid and relevant base of mathematical skills." From what I've gained, the book will help with both the "how" and the "why" of the mathematics it covers.

Graham and Knuth are household names in the mathematical community, at least for those of a certain age. Patashnik was a doctoral student in computer science (at Stanford) at the time of the book's writing. I'd give it a serious look, now or later.

My son works at a robotics firm, and almost the entire staff has significant background in both CS and math. In my opinion, the more math you know, the more attractive you will be to potential employers (academic or non-academic).

-
In my view very good post, particularly the last paragraph. You should come and talk to our crybabies at college. They freak out when an integral takes up two pages... –  imranfat May 23 '13 at 23:00
Thanks. I've seen that book, but like you said, it requires me to learn a bit about calculus which I haven't yet. Thanks for your answer. I will try out the book once I get the basics down. –  An Alien May 24 '13 at 15:08