Self-Taught CompSci
Suprise. I don’t have a Computer Science degree. I’ve been working for over 12 years on the web now and it hasn’t slowed me down much. When I was applying to college, I applied for CompSci, but by the time I was actually ready to go, I had become disheartened by it – 20% because I’m much better at general problem solving then hardcore math and 80% because I didn’t really like the people (no offense). I ended up getting a degree in Art History, something I’m proud of, but hasn’t exactly helped me with a career. Obviously, I got back in to web development.
Now, as I get deeper and deeper into more extreme development scenarios and harder problems, I’m wishing I could learn more about the actual field of Computer Science. The fact is, as much as you might think your problem/challenge is unique, someone has solved it before, and probably written about it, too.
So in a effort to gain knowledge, I decided to tap some of the smartest people I know – nyc.rb Not only did they return with a ton of great links and ideas, but also in talking to Luke at last weeks meetup, I found a kindred spirit and hopefully were going to do some sort of study group hack sessions in the future.
I’ve compiled all the books and other resources they suggested below. Thanks to Mike Dalessio, Paul Dix, Jonathan Katz, Ben Stein, Pat Nakajima, Anton Maximov, and the rest of nyc.rb.
AMZ = Amazon
WIKI = Wikipedia
PDF = duh
WWW = home page
Note: I also found if you’re interested in purchasing these books, straying from amazon and looking at some of the used university book sites as they generally have better prices
Books
General Computing
Structure and Interpretation of Computer Programs, 2nd Edition, Harold Abelson and Gerald Jay Sussman WWW AMZ PDF
The Art of Computer Programming, Donald E. Knuth WIKI AMZ
Introduction to the Theory of Computation, Michael Sipser AMZ
Machine Learning, Thomas Mitchell AMZ
Languages
Programming Languages: Principles and Paradigms, Allen B. Tucker AMZ
Algorithms
Introduction to Algorithms, Thomas Cormen (et. all) AMZ
Algorithms in C++, Parts 1-4, Robert Sedgewick AMZ
The Algorithm Design Manual, Steven S. Skiena AMZ
Math
Linear Algebra and Its Applications, David C. Lay AMZ
Introduction to Mathematical Statistics and Its Applications, Richard J. Larsen AMZ
First Course in Probability, Sheldon Ross AMZ
Other Resources
A number of universities (including MIT) have put up audio and video for entire courses that can be downloaded through iTunes. MIT specifically has a number of classes on Algorithms and engineering tought by some of the authors above.
I have to second the Knuth suggestion – you will learn more useful stuff from reading (and comprehending) Knuth end-to-end than most CS grads learn in the process of getting their degrees.
so if you were to begin such a study group, where would one sign up to be notified in the event?
@Scott T: If it does get going (dependent on interest) I’ll announce something on the nyc.rb mailing list.
Thanks!
@AQ, thanks. I’ll stay tuned. If it helps, I think a colleague & I would be down. He’s a java guy (mostly) and I’m a php/js/ruby guy. I never finished my CS degree (ended up doing most of CS and cognitive psych but couldn’t afford to finish either, so left w/ a “general studies” degree) — I always feel like I missed the deeper stuff.