Live data from Hacker News

Must Read CS Books For Self Self-Taught Programmers

news.ycombinator.com

11–20 of 63 posts

Re: Must Read CS Books For Self Self-Taught Programmers

#11
You can find some resources in a similar discussion here http://news.ycombinator.com/item?id=297289

You can find some resources, mostly books, in the following links

http://stackoverflow.com/questions/194812/list-of-freely-ava...

http://stackoverflow.com/questions/1711/what-is-the-single-m...

Re: Must Read CS Books For Self Self-Taught Programmers

#12

While not strictly a CS book, "Godel, Escher, Bach" by Douglas Hofstadter definitely has strong roots in the area. It's not a text book, nor anything even close, however, there is a reasonable amount of mathematics and programming language design which make it educational as well as inspirational (particularly formal logic systems, around which the premise of the book is built). The book is somewhat life changing, in…

I think GEB is an excellent books because it basically demonstrates in a reasonable accessible way that CS can be about rather more than "how to write programs".

Re: Must Read CS Books For Self Self-Taught Programmers

#13

The standard for computational grammars and parsers in natural language processing is: Prolog and Natural-Language Analysis - Fernando C. N. Pereira and Stuart M. Shieber The PDF is available from the publisher: http://www.mtome.com/Publications/PNLA/prolog-digital.pdf It also serves as a great introduction to Prolog and logics programming.

I've heard "The Art of Prolog" is good, too... a quick glance at Amazon shows it to be ridiculously expensive, though.

Re: Must Read CS Books For Self Self-Taught Programmers

#14
post #4

functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters

Plus learning a language from another paradigm, e.g. functional or logics programming, can also be insightful to your 'safe areas'[1]:

- After learning functional programming I realized how much of my programs do just mapping or folding over data. You start to spot the cases where this is not immediately obvious after some FP practice.

- After learning logics programming, I realized how much of my programs do a poor man's version of backtracking.

Maybe one of those languages is so much fun that you'll eventually change your 'lifestyle'. E.g. I use Haskell in many cases where I'd previously use Python or C.

[1] Of course, it doesn't always come natural. C++ STL does provide maps and folds, but since pre-C++0x doesn't have lambdas, using them requires more effort.

Re: Must Read CS Books For Self Self-Taught Programmers

#15
post #13

The standard for computational grammars and parsers in natural language processing is: Prolog and Natural-Language Analysis - Fernando C. N. Pereira and Stuart M. Shieber The PDF is available from the publisher: http://www.mtome.com/Publications/PNLA/prolog-digital.pdf It also serves as a great introduction to Prolog and logics programming.

I've heard "The Art of Prolog" is good, too... a quick glance at Amazon shows it to be ridiculously expensive, though.

I haven't read "The Art of Prolog". But if you want to write correct and fast Prolog, reading "The Craft of Prolog" by Richard O'Keefe is a must.

Re: Must Read CS Books For Self Self-Taught Programmers

#16
post #6

It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of…

I'd recommend this one on architecture:

Computer Architecture: A Quantitative Approach - Hennessy and Patterson

Re: Must Read CS Books For Self Self-Taught Programmers

#17
post #4

functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters

To steal words from a comment earlier today, Haskell has a very steep but very rewarding learning curve.

It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional concepts in OO languages. That said, as a fan of Haskell I'm definitely biased, and a lot of that can be said for other functional languages as well.

"Real World Haskell" is also very good, but probably not the best place to start if you haven't written in a functional language before.

Re: Must Read CS Books For Self Self-Taught Programmers

#18
One book that I would suggest to anyone is Introduction to Automata Theory, Languages, and Computation - HMU. It is very approachable and presents some very interesting topics (so you won't write a regex for matching HTML and will learn what P vs NP means). On a more practical side, I think that a must read for machine learning is Tom Mitchell - Machine Learning . Another book that from what I've heard is easier to digest is Data Mining: Practical Machine Learning Tools and Techniques.

Re: Must Read CS Books For Self Self-Taught Programmers

#19
post #6

It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of…

So far the comments in this thread cover Functional (SICP, Haskell books), Logic (Prolog Books), and Procedural/OO (Almost everything else) Languages, so I figure I should add a reference for Stack/Concatenative Languages:

Thinking Forth - Brodie

Re: Must Read CS Books For Self Self-Taught Programmers

#20
post #17
post #4

functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters

To steal words from a comment earlier today, Haskell has a very steep but very rewarding learning curve. It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional c…

+1 on real world haskell, which is here: http://book.realworldhaskell.org/read/

definitely a lot less hand-holding than learnyouahaskell, but they complement each other pretty well.

Post reply on HN