Live data from Hacker News

Knuth's Art of Computer Programming, V 4B, has gone into print

www-cs-faculty.stanford.edu

331–340 of 357 posts

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#332
post #50

Earlier quoted context omitted.

And more prestigious to boot.

My laptop is raised to the height of my other monitors by Feynman's boxed set of Lectures on Physics, Aho & Ullman's Foundations of Computer Science, and a Scott Adams compendium. This way my computing is based on a strong foundation...

Ullmann's is actually out of print and increasingly scarce.

Your laptop stand will likely become a family heirloom in the decades to come.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#334
post #222

Earlier quoted context omitted.

As someone whose computing career was improved by learning to touch-type in grade school (Mom had been a secretary, saw that these "personal" computers had keyboards, and bludgeoned the high school to let me in to the summer-school typing class) it's not actually the speed that matters - though that does certainly impress people - it's that it's "automatic". If you're not thinking about letters and where they are, yo…

There is however a terrible effect on productivity and self-respect when you have to switch keyboard layout for any reason. I'm still one month into switching to a macbook, and I now dread cutting and pasting. Oh, and typing "pipe", too. I wonder how long it will take my 40+ years old brain and hands to get their act together...

Hmm, I switched to Dvorak in about a month… you just use it till you stop having to think about it, no?

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#335
post #240

Earlier quoted context omitted.

How on earth do you even find work like this? I would love to have a career working on problems like this but can't imagine how I'd get a job doing anything but commonplace back-end work.

Those jobs sort of found me... My path involved working at a series of tiny startups through the first 15 years of my career - the 1990s and early 2000s. At the smallest, I was the only engineer. At the largest, there were 8. At that scale, you learn to do everything (seriously: front end, back end, databases, assembling servers, networking the office, setting literal rat traps, cleaning the cat litter after "upgradi…

That's quite the journey!

Thank you for sharing it.

It was actually probably more insightful and useful than I think you may have realized.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#336
post #223

Earlier quoted context omitted.

Re "being paid", consider that he took early retirement in 1992 to work on this book that he sees as his life's work ( https://cs.stanford.edu/~knuth/retd.html ) (and until then was doing in his "side" time, separate from his job of teaching and research), giving up whatever salary a tenured Stanford CS professor's would be, and has been living off savings and royalties since then: he only gets "paid" when people cho…

> So teacher, that is how we spent the summer of 1960. ENIAC was finished in 1945. I cannot imagine how small the programming world must've felt back then.

You can get a bit of an idea by reading Knuth's "The IBM 650: An Appreciation from the Field", written in 1986 and nostalgically looking back at the 1956–60 period when he entered college and first encountered a computer (the IBM 650). The paper is available here and is gripping reading: http://ed-thelen.org/comp-hist/KnuthIBM650Appreciation.pdf

I consider this the first and last generation of truly self-taught programmers. Earlier programmers either built the computers themselves or were hired and trained on the job; they were professionals. Later programmers (all of us) did have some programming books/tutorials or some sort of community to draw from. But Knuth and his peers just had a machine with a manual describing its opcodes, and practically "discovered" programming independently at each "site", e.g. college. As he writes:

> The IBM 650 was the first computer to be manufactured in really large quantities. Therefore the number of people in the world who knew about programming increased by an order of magnitude. Most of the world's programmers at that particular time knew only about the 650, and were unaware of the already extensive history of computer developments in other countries and on other machines. We can still see this phenomenon occurring today, as the number of programmers continues to grow rapidly.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#337
post #282

Earlier quoted context omitted.

One of the smartest people I met as an undergrad at Berkeley was a theoretical chemistry PhD student. He was an extremely slow typist, with mostly hunt and peck. It would be frustrating for me because it would be like 1/4 my comfortable speed (20 vs. 80 wpm?). But being slow there made him faster, because he’d spend a little more time before typing thinking about what to type.

I’ve always had the opposite experience. When I am unable to type well I am massively less effective. This happened when switched from emacs to vim, or got a new keyboard with a weird layout, or broke my thumb, or, hell, anytime I use a phone. First there’s the cognitive overhead involved with the task itself, as opposed to letting your fingers do the work while you think about real stuff. Second, when you’re slow at…

I understand what you're saying and often feel that way. I think one point to be taken away is not to judge capabilities of X (say, programming) based on Y (typing speed).

However, sometimes I have the opposite desire. I can type on a normal keyboard at 80-90 wpm. On an iPhone I'm probably 1/4-1/3 of that. However, I probably spend 60-90 minutes a day reading/writing emails from my phone. Sometimes going slower allows you go to faster.

> Your brain has the hard part; it should always be the bottleneck.

Or maybe not. Lots of famous people (particularly physicists) talk about the importance of letting the mind wander i.e. the opposite of making sure it's the bottleneck.

I'm a slow phone typist but it's still easy to do. My brain can still think of the next thing to write, or wander.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#338
post #265
post #255

Earlier quoted context omitted.

Concrete Mathematics is not a prerequisite, but an expanded version of the "Mathematical Preliminaries" section of TAOCP. (More precisely, Knuth and later Graham used to teach a course at Stanford based on that section of TAOCP; the book Concrete Mathematics is based on the lecture notes of that course.) That apart, I (and Knuth) recommend just skipping the math parts when they get hard. You can always come back to t…

Wow, thank you for this great answer! It makes me wonder though why previous published mathematics about computer programming has been allegedly faulty. Since I don't know enough math to objectively see whether Knuth has succeeded in his task or not... TAOCP could have benefited a lot if someone had written a simpler on-ramping version, with examples in a powerful but newbie-friendly industrial-grade language, such a…

Knuth wrote that preface in the early 1960s, when it was indeed true that much of what little there was of published mathematical study related to programming was faulty. He succeeded incredibly well: he kickstarted the entire field of "analysis of algorithms", got all the details right and organized them extremely clearly, put it on a sound footing, and now mathematicians take it seriously, and published work in the area is of high quality.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#339
post #69

Very cool. I own the originals and the 4th but sadly I have to admit that even though I am a reasonably accomplished developer with a couple of CS degrees I have a hard time understanding this work and have not yet really read it. I feel like I am publicly admitting failure just posting this. I still have time to make sure these are not just bookshelf decorations though.

The 1st Chapter is one of the best mathematical discussions I've ever read, bar none. But hardcore math isn't needed for most of us programmers. Knuth knows this. I suggest skipping around on an "as needed" basis. Try Volume 1, Section 2.2 "Linear Lists", as a starting point. I promise you its an easier read than you expect. Despite being relatively easy material, you will probably learn something about arrays with j…

I agree on the section on linear lists. It was really eye opening for me back when I read it the first time. It's remarkable how much useful information there is about such a seemingly simple concept.

Re: Knuth's Art of Computer Programming, V 4B, has gone into print

#340
post #212
post #146

Earlier quoted context omitted.

This is the function my copy of TAOCP serves. I'm not anywhere near knowledgeable enough to digest all of it, but when I need something and I want to understand the ground theory behind it then to Knuth I go.

My most recent use of it was to convince my team that binary search is in fact not a good interview coding question. It's surprisingly tricky and Knuth explains exactly why!

The part where he explains how a binary tree can be unbalanced, and when, was really surprising to me. Never assume that just because your accesses are random that the tree will remain balanced on average.
Post reply on HN