Hacker Newsnew | past | comments | ask | show | jobs | submit | djb's commentslogin

I've had the opportunity to speak with Gerry on a couple occasions. He's an incredibly nice and brilliant man. He pulled a postdoc into his office and they talked to me for about an hour on a huge variety of topics. He taught me the Y Combinator, gave me a pocket protector (same as the author's) and signed my copy of SICP. (Hal, unfortunately, was on sabbatical at Google at the time.)

What impressed me about Gerry was the incredibly wide variety of topics he could speak on, not just computer science and electrical engineering but many other hard sciences and I even remember him mentioning something about the ambiguity of ancient Hebrew. He had something intelligent to say about everything. A few other interesting points are that when he was my age (high school) he used his knowledge of chemistry to make explosives for fun, and he had a chair hanging from the ceiling he had built himself. Being around someone that knowledgeable and intelligent has the potential to automatically make you more ambitious, and it's something I recommend every young person do as soon as possible. (PG said something similar about showing founders how to be relentlessly resourceful: http://news.ycombinator.com/item?id=508048)

I came back and visited Gerry a few months later for a briefer visit. At the time I was deciding between colleges. He asked me about where I was considering and provided me the most helpful overview of the strengths and weaknesses of each of their cultures. Needless to say, he was a pretty big fan of MIT. ;)

He told me an interesting anecdote about Marvin Minsky that I haven't heard anywhere else so I'll put it here. We were discussing good procrastination. He said Minsky advised putting all mail in a pile, newest on top, and only processing the pile top-down. Then, once a month throw out the bottom half of the pile to save time. "Anything important will come twice," Minsky said.


Great insight into the character, thanks!

  "Anything important will come twice," Minsky said.
Next time it may be more important -- bills have a tendency to grow.


This is a nitpick but I think the pledge should read "No first use of software patents against companies with fewer than 25 people," since people are countable:

http://englishplus.com/grammar/00000214.htm


There are some other essays of his in this directory:

http://groups.csail.mit.edu/mac/users/gjs/essays/


I think Feynman may have used this book. He mentioned having a calculus book that had the same quotation that this one begins with:

"I don't believe in the idea that there are a few peculiar people capable of understanding math, and the rest of the world is normal. Math is a human discovery, and it's no more complicated than humans can understand. I had a calculus book once that said, 'What one fool can do, another can.' What we've been able to work out about nature may look abstract and threatening to someone who hasn't studied it, but it was fools who did it, and in the next generation, all the fools will understand it. There's a tendency to pomposity in all this, to make it deep and profound."

-- The Pleasure of Finding Things Out (http://books.google.com/books?id=Md0IirlFUfEC&lpg=PA194&...)


SICP and learning calculus.


"SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing."

—Philip Greenspun, http://blogs.law.harvard.edu/philg/2005/03/07/how-long-is-th...


While I'd agree with Lisp and Haskell, I not sure how SQL could be considered that dense. I often find myself frustrated that a split second thought takes so long to express as a query, and I type a decent 80wpm or so.


I always assumed he was referring to complicated ad-hoc queries that involve all kinds of joins and so forth.

If I understand you correctly, yes, typing "select ... from ... where id = ..." would get old very fast.


Well I was actually talking about writing queries that involve a join or two. Thinking to myself "I can get this by grabbing all these via joining on that where x = y" doesn't take very long, but typing that out can be annoying if you do it often enough.

Of course, if you are constantly writing 8-way joins with fun things like group_concat in the select clause, I guess it would require a little more thought than typing. Also, I'd imagine the people that spend their days writing stored procedures, triggers, and the like spend more time thinking than typing, but I can't claim to be one of those people.



I'm one. Coincidentally, I'll also be starting to learn how to program tomorrow. I'll be learning C from K&R. I wish you the best of luck with Python.


I found this http://www.eskimo.com/~scs/cclass/cclass.html a useful, lighter, accompaniment to K&R when first learning C. Good luck. C is a great language for, er, implementing higher-level languages in ;-.


Oh, dear god...don't learn how to program from K&R!

Aside from K&R being a bad first-time instructional book, C is just a bad choice of a first-time language. Most CS departments start freshmen with Java, these days (hell...back in my day, most new programmers started with Basic or Pascal, before moving into the ugly world of C.)

If at all possible, learn a scripting language first. Learn Python. Learn Perl. Learn Javascript. All are more productive and fun for first-timers than C. Compared to C, they're all ultra-expressive and ultra-friendly, and you will have an easier time understanding the why of programming, since you won't be as distracted with the details of the how.


K&R is a great book to learn C from. It is short, the authors are programming greats, and as a bonus you get to learn a little about how the Unix programming model works.

And just to be devil's advocate, C is a fine first language to learn - it is small and encourages you to understand what the machine is doing. C++ on the other hand is not a fun place for beginners to hang out.

Just because most CS depts start freshmen with Java doesn't mean that Java is a great first choice.

I think learning C and Python/Ruby would make for a pretty nice combination.


C maybe isn't the easiest choice of a first language, but I disagree that it's a bad one. No single language will make you a good programmer, because a good programmer needs to be capable of thinking in high-level abstractions and also needs to understand what goes on close to the metal. No language that I know of is good for both of those (Forth comes closest), and C is excellent for the latter.


Thanks for the advice (and thanks to the others who responded to my post). I think I'll still give K&R a shot, possibly with the notes a13x recommended (I haven't had the time to check them out yet), because I don't want to buy another book right now. If I find that I'm not getting excited about programming or not learning well from K&R, I'll switch to Python.


A warning or two on C and K&R:

If you hit a brick wall when you get to the chapter on pointers and arrays, don't panic. That's perhaps the first relatively hard thing to learn in C, it may take you a little while to grok it.

And I get the impression that K&R doesn't teach it well; I myself read the Lions notes to "get it" (_Lions' Commentary on Unix_, ISBN 1573980137, a critical 1977 book with the UNIX Version 6 source code and excellent commentary). Now of course there are many more good expositions on this and the other harder parts of C.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: