Live data from Hacker News

Ask HN: After SICP, what next?

news.ycombinator.com

11–20 of 37 posts

Re: Ask HN: After SICP, what next?

#11

Did he enjoy sections 4 (Metalingustic Abstractions) and 5 (Register Machines)? If so, he'd probably be interested in both these books. They are quite hefty, but seem to be goldmines (so far, I'm only just getting started on them myself). http://research.microsoft.com/en-us/um/people/simonpj/papers... and http://research.microsoft.com/en-us/um/people/simonpj/papers... Both books cover much of the same ground. The fir…

Lisp In Small Pieces (http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiS...) is sort of intermediate between SICP and the Peyton-Jones stuff; it still focuses on Lisp dialects that use dynamic typing and applicative-order evaluation, but it shows a whole bunch of different approaches to exploring that design space and implementing stuff in it.

I also enjoyed reading Pierce's Types and Programming Languages (http://www.cis.upenn.edu/~bcpierce/tapl/), although I was kind of nodding my head and going "yeah, whatever" during some of the proofs.

Re: Ask HN: After SICP, what next?

#13

If your friend wants to a) get really strong on algorithms, b) put in some hours, and c) actually do the exercises, I'd recommend Knuth. It's worth the effort.

I haven't read Knuth but I recommend http://www.amazon.com/Algorithm-Design-Manual-Steve-Skiena/d... From what I understand Knuth uses MIX assembly language to imlpement his algorithms. Contrast this to the Skiena book which uses C++. I found this to make it very practical. Though to be fair, I don't think it offers near the depth of the Art of Computer Programming:)

It's actually a common misconception that Knuth uses MIX/MMIX to implement his algorithms. The vast majority of the algorithms are described in English, and the MMIX implementation is usually only given when there are relevant implementation details to be discussed. MMIX is just an idealized machine language, and it is trivial for a reader to implement the algorithms described in the programmer's language of choice. (This is assuming that the objective is to learn CS, not to have a cookbook of ready-to-run algorithms to pilfer....)

Re: Ask HN: After SICP, what next?

#14
post #11

Did he enjoy sections 4 (Metalingustic Abstractions) and 5 (Register Machines)? If so, he'd probably be interested in both these books. They are quite hefty, but seem to be goldmines (so far, I'm only just getting started on them myself). http://research.microsoft.com/en-us/um/people/simonpj/papers... and http://research.microsoft.com/en-us/um/people/simonpj/papers... Both books cover much of the same ground. The fir…

Lisp In Small Pieces ( http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiS... ) is sort of intermediate between SICP and the Peyton-Jones stuff; it still focuses on Lisp dialects that use dynamic typing and applicative-order evaluation, but it shows a whole bunch of different approaches to exploring that design space and implementing stuff in it. I also enjoyed reading Pierce's Types and Programming Language…

Both recommendations are little too high for someone just coming out of SICP. I recommend Essentials of Programming Languages as a stepping stone. Pierce's book is probably irrelevant to someone just interested in Lisp; type theory is best approached through an ML angle. And Quinnec's book is not for the faint of heart; you will need to have been well versed in lisp, compiler/runtime implementation techniques and have brushed against denotational semantics (through the Nielson and Nielson book, perhaps.)

[edit: denotational, not operational, semantics; OS can be learned in a fun-filled weekend. The "small-step" variety should appeal to both language hackers and (virtual) machine enthusiasts.]

Re: Ask HN: After SICP, what next?

#15
I recommend the Kleinberg/Tardos textbook: http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...

It is a really enjoyable read and has a nice narrative that I think other algorithm books are lacking. CLR, for instance, just reads like a handbook to me. The goal Kleinberg/Tardos book, OTOH, is to teach you how to design and analyze algorithms. They will actually follow false starts on certain problems and uncover where they break.

Kleinberg is the rebel king!

Re: Ask HN: After SICP, what next?

#16
post #8

This is the single best text I've seen on algorithms in the real-world: http://www.amazon.com/Algorithm-Design-Manual-Steve-Skiena/d... Can't recommend it enough.

I just bought this book and have been reading it for a few days and it really is pretty good. The best thing about it are the numerous practical examples and the "War Stories" that show you how real people determined they really needed to use algorithm xyz.

Re: Ask HN: After SICP, what next?

#17
post #6

- Concepts, Techniques and Models of Computer Programming - Algorithms, a functonal approach - Real World Haskell - Paradigms of artificial intelligence programming Any of these are excellent post-sicp reads.

I don't suppose you have a copy of "Algorithms, a functonal approach" you want to sell huh? The used price is more than the brand new price! Lame.

Re: Ask HN: After SICP, what next?

#19
post #10

Introduction to Information Retrieval: http://www.amazon.com/dp/0521865719/ Convex Optimization: http://www.amazon.com/dp/0521833787/ Foundations of Statistical Natural Language Processing: http://www.amazon.com/dp/0262133601/ Read Peter Norvig's review for Foundations of .... http://www.amazon.com/review/R3GSYXSKRU8V17/ I haven't read any of these books, yet, highly recommended by some friends.

Here are video lectures by the author of the convex optimization book (Stephen Boyd):

http://see.stanford.edu/see/courseinfo.aspx?coll=2db7ced4-39...

http://see.stanford.edu/see/courseinfo.aspx?coll=523bbab2-dc...

And video lectures by the author of the NLP book (Christopher D. Manning):

http://see.stanford.edu/see/courseinfo.aspx?coll=63480b48-88...

Re: Ask HN: After SICP, what next?

#20
The CLR "Introduction to Algorithms" would be one of the canonical answers.

http://en.wikipedia.org/wiki/Introduction_to_Algorithms

It's certainly one worth having and the only book from my computer science education that I still reference frequently.

In fact, I'm tempted to say that it's the last computer science book that you have to read. After that you should be able to work directly from research papers, though a topical book can sometimes be useful in other areas with fairly wide breadth.

Post reply on HN