Live data from Hacker News

Ask HN: Computer science for the self taught programmer

news.ycombinator.com

31–40 of 41 posts

Re: Ask HN: Computer science for the self taught programmer

#31
post #21

A list for a programmer and a list for a computer scientist would look quite different.

This is not a helpful comment. Additionally I do not agree - while there is a difference between academically focused individuals and industry focused individuals they absolutely should not be mutually exclusive. That's a social generalization in our industry everyone should be working to dismantle. I'm an industry programmer and pursued a lot of Comp Sci self-study in order to become a "better programmer", an "effec…

Very well put. I would say the opportunity when self taught is that you can focus on the areas or challenges that excite you the most. "Getting close to the metal with C" is a good example of someone interested in taking things apart and seeing the gears turning the wheel. I studied CS at university specifically to understand how a machine could make chuckie egg jump or dragon ninja kick. You start with Binary, Machine Learning play with some C or Java and suddenly the magic was more than magic - mathematics. Immerse yourself and enjoy it is the most important thing. Back to the point - agreed - programming and computer science can never be mutually exclusive. Everyone's comments on here have me officially addicted to HN. About time.

Re: Ask HN: Computer science for the self taught programmer

#32
post #9

I'll start out with the classic: "Introduction to Algorithms" a.k.a. "CLRS" http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme... I think this is all (and probably more than) you really "need" if you want to know CS for programming, and an enjoyable read too.

I would strongly urge the OP to not use this book. I used it as my undergrad algorithms book and it is, quite frankly, far too obtuse and hard to understand. At first, I thought it was just me and that other people found the book readable. I eventually realized that the book itself is just bad for autodidacts. Last month (about 5 years after I took the course), I went through to review some stuff that I'd looked at m…

> What really upset me was that there was practically no surrounding discussion of the intuition behind the algorithm. Behind all the rigor of mathematics lies very simple and powerful ideas. This book did nothing to emphasize those simple ideas.

I would just respond to this by saying that the mathematics do express the ideas. It's just a different language than most people are used to.

Re: Ask HN: Computer science for the self taught programmer

#33
Programming, Learn by Doing:

For programming specifically you can learn by doing more than reading. Just like Maths you have to have solved a problem or two. So hope the following inspires you and in the case of codeschool's rails for zombies or code academy - it means you can learn by doing.

http://www.codeschool.com/ Kicks ass. Unless you are scared of zombies.

http://www.codecademy.com// YC Startup if I remember correctly. Beautiful.

Computer Science, Turing Turing Turing:

For some serious inspiration the first ever essay we wrote at Manchester in Year 1 of CS was The Life and Times of Alan Turing. His huge impact still hadn't hit me then. The story of Alan Turing is told in so many different ways that to learn about him is to learn about the type of mind that led us to where we are now. His impact at Bletchley Park breaking the German Enigma code, then at Manchester his work not only seeded AI as we know it but showed how Mathematics could help us understand the code behind nature. These deep roots of CS are what keep you going through the more incomprehensible CS books and difficult challenges.

http://plato.stanford.edu/entries/turing/ http://en.wikiquote.org/wiki/Alan_Turing http://www.bbc.co.uk/history/people/alan_turing

I just found this:

Breaking the Code: Biography of Alan Turing (Derek Jacobi, BBC, 1996) http://www.youtube.com/watch?v=S23yie-779k

Looks like I am staying up working a little longer! If only BBC Programs could be streamed on demand I would pay for one daily. There were numerous programs on Turing including an episode from the series The Code - Numbers which was the type of programme that should always be available to the world and makes you wonder why the BBC doesn't unleash it's potential... Another story...

http://www.bbc.co.uk/programmes/b012xppj http://www.bbc.co.uk/history/people/alan_turing

I really value all the helpful comments here - thank you for your practical advice guys ;-)

Re: Ask HN: Computer science for the self taught programmer

#34

Computer Science is not just algorithms. Generally speaking, Comp Sci consists of: Algorithms/Data Structures Computational Complexity Discrete Math Programming Languages (both application and the concepts behind them) System Architecture Networks Compilers Operating Systems Databases Parallel Programming Artificial Intelligence Graphics As for what to learn, here is THE BEST link: http://matt.might.net/articles/what…

To be thorough, you might include Sound Synthesis if you're going to include Graphics. Or you might swap one for the other depending on your interests. While Graphics will have you learn applied linear algebra, Sound Synthesis will have you learn digital signal processing, which includes Sampling Theory, Filter Theory, Fourier Analysis and Synthesis Methods.

Re: Ask HN: Computer science for the self taught programmer

#36
post #7

I've found The Little Schemer[1] to be very approachable and effective for grokking common CS concepts. [1]: http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262...

I'm reading/working through this book now and can't recommend it enough, especially for those with limited time (or limited ability to focus and study due to environmental factors). I've worked through most of the first two chapters of SICP, but honestly felt a little overwhelmed at times. TLS has been enlightening AND fun. The format is genuinely unique and well-suited for reading/thinking in the small slivers of free time I have between work, kids, freelance, Khan academy, etc.

Most exercises don't require an interpreter, which is nice if you need a break from screentime. But I do enjoy working through some of them in Racket or even Pixie Scheme. TLS isn't free or available in a digital format (AFAIK), but the book is inexpensive and very portable.

Re: Ask HN: Computer science for the self taught programmer

#37

Computer Science is not just algorithms. Generally speaking, Comp Sci consists of: Algorithms/Data Structures Computational Complexity Discrete Math Programming Languages (both application and the concepts behind them) System Architecture Networks Compilers Operating Systems Databases Parallel Programming Artificial Intelligence Graphics As for what to learn, here is THE BEST link: http://matt.might.net/articles/what…

[deleted]

Re: Ask HN: Computer science for the self taught programmer

#38

What is it that you wish to learn? If you're a self-taught programmer who wants to learn (to use an extreme example) bricklaying, then you won't have much use for the standard undergrad CS reading list. Similarly, if you want to be a better programmer, the list will be different to that of the standard undergrad CS reading list. Can you tell us what your goal here is? Do you actually want to do CS, or do you want to…

> do you want to fill in some of the theoretical gaps that might be useful to you as a coder, or do you actually not care so much about the theory and just want to be a better programmer Definitely yes, and yes. I suppose I want to see a few examples of writing better code, see how and why things break when they scale, understand useful principles that I just "worked around" before (ie recursive functions), and then…

Same boat here. I've really only skimmed 'Think Complexity: http://greenteapress.com/complexity/index.html but it looks like a nice, digestible introduction to a broad range of topics. If you want to get more (way more) in-depth, have a look at 'Mathematics for Computer Science': http://courses.csail.mit.edu/6.042/spring12/mcsfull.pdf

Re: Ask HN: Computer science for the self taught programmer

#40
Unfortunately, at least in my experience, most textbooks are rather unfriendly for self-teaching (including the ones very frequently recommended), especially in the more theoretical fields like algorithms, theory of computation etc. (no solutions to exercises, not enough worked out examples, general strong reliance on classroom usage), it takes a long time to find good ones and even then a very long time to get to a decent speed in a new field, surely much longer then when taking a course. Thus I would recommend relying more on some online courses at least initially:

http://ocw.mit.edu/courses/electrical-engineering-and-comput... - Very good course covering the most crucial theoretical things every programmer should now

http://aduni.org/courses/ - Good discrete mathematics, algorithms, theory of computation courses (I recommend "taking" them in this order) without assuming any prerequisites

http://ocw.mit.edu/courses/electrical-engineering-and-comput... - More sophisticated "CS 101" kind of course

I think almost everyone with some programming experience should be able to work through them in the sequence listed in one year perhaps, at a satisfying level of detail. At the same time, many people programming professionally lack mastery of this basic material.

Post reply on HN