Live data from Hacker News

Ask HN: After SICP, what next?

news.ycombinator.com

21–30 of 37 posts

Re: Ask HN: After SICP, what next?

#21

Earlier quoted context omitted.

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.…

YES! Thank you for this clarification.

I personally enjoy thinking about the implementations, instead of looking at the code itself. Knuth makes that easy (hard?) by not spoon feeding you.

Plus the typography of Knuth's books is so wonderful. It's a pleasure to read.

Re: Ask HN: After SICP, what next?

#22
post #7

I'm personally going to work through Programming Language Pragmatics. I want to have a better foundation in language paradigms, plus fill a hole in my education (no, zero, nada, real exposure to compiler design). I'll also be learning more about Lisp concurrently. Sadly, none of this has much bearing to my day job, but when I have an hour or two it seems like a nice way to spend it. At that pace, I plan to finish som…

PLP is pretty good. We used it in my university course on compiler design, I quite enjoyed reading it.

Re: Ask HN: After SICP, what next?

#23

Earlier quoted context omitted.

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.…

YES! Thank you for this clarification. I personally enjoy thinking about the implementations, instead of looking at the code itself. Knuth makes that easy (hard?) by not spoon feeding you. Plus the typography of Knuth's books is so wonderful. It's a pleasure to read.

I'll also add that I usually recommend that newcomers begin with Volume 4, and turn to the earlier ones later. I think that for many people, skipping the preliminaries, and starting with an interesting and relevant topic (combinatorial algorithms) gives more immediate pleasure than beginning with the lower-level underpinnings.

Re: Ask HN: After SICP, what next?

#24

Earlier quoted context omitted.

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.…

Sorry if this seems dense but I can't reconcile what your saying and I've not read the book. You say:

> It's actually a common misconception that Knuth uses MIX/MMIX to implement his algorithms.

So you state very clearly that he doesn't use MIX to code his algorithms.

But then you say:

> and the MMIX implementation is usually only given when there are relevant implementation details to be discussed

So you say that he does actually use the MIX language.

Do you mean that most algorithms aren't presented in source form at all and only the few that are actually coded are in the MIX language?

Re: Ask HN: After SICP, what next?

#25
"Problems On Algorithms" (Parberry, Gasarch): A slim volume containing ~700 exercises on proving various properties of algorithms. And it teaches you most of what is needed. Download it from: http://www.eng.unt.edu/ian/books/free/

"Elements of the Theory of Computation" (Papadimitriou): Classic text. Sure you've heard of Turing machines before, but what do you know about mu-recursive functions? It's very beautiful and if you have a person with whom to read the book and do the exercises, you will gain immensely.

Re: Ask HN: After SICP, what next?

#26

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:)

You can run MIX programs using the GNU MIX Development Kit:

http://www.gnu.org/software/mdk/

Re: Ask HN: After SICP, what next?

#27

Earlier quoted context omitted.

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.…

Sorry if this seems dense but I can't reconcile what your saying and I've not read the book. You say: > It's actually a common misconception that Knuth uses MIX/MMIX to implement his algorithms. So you state very clearly that he doesn't use MIX to code his algorithms. But then you say: > and the MMIX implementation is usually only given when there are relevant implementation details to be discussed So you say that he…

Yes, that is how it is.

For example the first algorithm in the book (found via google):

Algorithm E ( Euclid's algorithm). Given two positive integers m and n, find their greatest common divisor, that is, the largest positive integer that evenly divides both m and n.

E1 [Find remainder.] Divide m by n and let r be the remainder. (We will have 0 ≤ r E2 [Is it zero?] If r=0, the algorithm terminates: n is the answer.

E3 [Reduce.] Set m← n, n← r, and go back to step E1.

Re: Ask HN: After SICP, what next?

#28

Earlier quoted context omitted.

YES! Thank you for this clarification. I personally enjoy thinking about the implementations, instead of looking at the code itself. Knuth makes that easy (hard?) by not spoon feeding you. Plus the typography of Knuth's books is so wonderful. It's a pleasure to read.

I'll also add that I usually recommend that newcomers begin with Volume 4, and turn to the earlier ones later. I think that for many people, skipping the preliminaries, and starting with an interesting and relevant topic (combinatorial algorithms) gives more immediate pleasure than beginning with the lower-level underpinnings.

Readers might also consider Knuth's "Concrete Mathematics" as a substitute for the more-or-less equivalent material in Volume 1, especially if a little more help is needed in understanding it.

Re: Ask HN: After SICP, what next?

#29
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.

I bought it new on Amazon.co.uk for a very reasonable price. It was printed on demand, so it took some time, but it was worth it.
Post reply on HN