I wish people would recognize their own bullshit from time to time and just titled those posts "books I enjoyed", otherwise it turns out more into "every graduate student should read what I had read" or "books I would like people to think I read so I appear smart", e.g. the frequency with which each book appears in lists like this is greatly different from the frequency each book is actually read.
On a more technical note, "Compilers" is a great book I enjoyed quite a bit, but it hardly is a great reference for compilers, it isn't even a very good textbook those days, it is very specialized in parsing and lexing and isn't very well balanced, there is much less about backend/runtime/optimization stuff which is the bigger part of compiler-writing those days, and the whole book is far, far removed from practice, it is perfectly possible to read it cover to cover and still have very little idea about how to write an actual compiler. There are much better books those days both if you want to simply write your own compiler (books by Appel, Cooper/Torczon, Grune) or have a reference of the state of the art in compilers (famous book by Muchnick). I would say "Compilers" is more similar to a monograph in specialized topics than to a textbook or reference book.
No one ever reads blog posts titled "Decent books worth reading for some people" or "Mildly useful advice that applies in certain situations". The format of the web and sites like HN and Reddit almost forces hyperbole.
mattmight is a University professor, and presumably advises graduate students in his department. So he's in a slightly different role than your average joe programmer or even rock star computer scientist at the latest startup of Y-combinator fame.
In my masters program, there were about 16 books that I saw in every single one of our professors' offices. Over my coursework there, I had to buy about a dozen of them for specific courses. Before graduation I bought the others. While I haven't read every single one of them from cover to cover, I have extensively referenced every one of them. His list should serve the same purpose for the audiences he's identified.
Even in this position, or maybe especially in this position, I think it is downright harmful to suggest that there are books every student should read, like there is some canonical set of books that will make a great researcher of you and the world would become a better place if everyone would read the same set. I shared this view for a good while and I deeply regret it, you should instead focus on your problem domain and on problem solving, choose your lectures independently, don't get too bound or too concerned about books in general, and stay deeply critical of anything you read - e.g. you should deliberately look for holes even in the most praised works instead of admiring them blindly. That's the way you can progress and not just keep copying what others have done. And it is very good that not everyone has to and not everyone does read the same books.
In the end it is not about the fucking books anyway.
He did not give a list of books for everyone to read just suggesting 4 books to be used as references for graduate level writing which I find hard to argue with. Along with one for presentations and persuasion which you are going to do so I doin't think there is as much to argue with as you might think.
I got my PhD at that same university in that same field (PL, but before Might's time as a professor there), and I didn't read any of those books (I read TAPL afterwards). My adviser tried to get me to read one of the writing style books, but I seemed to have figured it out by myself :)
People are diverse. There are no must have books but there are many books appropriate for your context (writing your first paper, need help with style? Read that book, or let your adviser beat it into you).
It is OK to provide a list of things nice to read, even better if you list the demand context where the book will be useful. But to use an absolute...that could confuse incoming grad students.
> it is perfectly possible to read it cover to cover and still have very little idea about how to write an actual compiler.
I learned how compilers worked by studying a Pascal compiler written in BASIC that was published by BYTE back in the 70's. I thought the way it worked was a revelation, and completely magical.
Compiler books in general, however, tend to omit the messy details one has to deal with in building a production quality compiler.
I've heard several people say good things about BYTE. It's a shame there's nothing similar today. (Yet another thing for my list of what to do when I have lots of money).
Yes, it was Tiny Pascal. I still probably have the issue buried in the garage somewhere.
I'm also partial to Creative Computing in the 1970's. It was full of fun artwork and silly games you could type in and run, and unabashedly optimistic editorial content. It's forgotten now, but it was very influential for me.
Completely agree on your last point. I have written a compiler for a small subset of something like Pascal for the JVM and it was among all other things a big exercise in software engineering. E.g. several times almost all the structure of my code became obsolete because a change in grammar or a need of doing different passes through the code / parse tree was required for a new feature in the language to work and that completely changed how everything else needed to work.
I feel like you're reading a bit much into a submission title. The page isn't titled that way and doesn't read in a way that suggests it.
I think I get where you're coming from though. I often wonder how many people have actually read the typical list of "classics" and "must haves" that are continually recommended without context, reasoning or even a gist.
While this HN post is certainly guilty of the puffery you describe, the actual site is just a collection of resources this professor thinks are useful for various categories of grad students.
I'm a big fan of mattmight, but I have a problem with the very first book on his list. My academic background is the behavioral sciences, and using MLA will get you in deep dog excrement in most behavioral and social sciences. Our goto style guide is the American Psychological Association's Publication Manual - http://apastyle.org/
APA is predominantly a behavioral and social sciences standard. However, I have a colleague that is currently in a mechanical engineering program and he mentioned just a few days ago that his school has actually gone to exclusively APA for all colleges and departments.
In our humanities grad program we were told to pick either MLA or APA and stick with it. It doesn't matter which, consistency is what matters. Enforcing a particular style across all colleges and departments seems silly. These were the resources we were told to consult:
Anyway, you should have a citations database and whatever citation tool you are using (BibTeX for instance) should be able to pull the citation from the database and format it in one of any number of styles.
It's incredibly rare to find advocates for APA in most humanities fields. I've only come across MLA and Chicago. Was yours a terminal program? Mind sharing the discipline?
The issue isn't so much enforcing a style across colleges/departments as academic journals.
LaTeX is not the lingua franca of Biology/Chemistry. Nonetheless, I wrote my thesis in LaTeX, and spent all of maybe one and a half days getting all of the citations correct, figures on the correct page, etc. Honestly, thanks to LaTeX and a lot of not-stressing-out about things (I wrote it while on vacation in Hawaii), I did my thesis painlessly in about a week, and didn't really understand what the fuss was about.
I would add "Death March" by Edward Yourdon, which should be read even if you aren't in the computer industry.
In the first chapter, Professor Dr Moritz-Maria von Igelfeld, renowed scholar of Portuguese linguistics, travels to America to give a lecture. But due to a mixup, his hosts believed they were inviting an expert on sausage dogs. Too shy to correct them, von Igelfeld makes up his mind to speak about sausage dogs...
When I read it I doubled over in laughter. But at the end of the day it reminds you far better than any "serious" book what makes for an effective presentation: humility, confidence, and putting yourself in your audience's head.
One of many benefits of so-called education is in significantly reduced amount time wasted on clueless assumptions and ignorant guesswork. The list makes sense, especially HtDP => ProgLangs => FP + Types "road".
btw, there is a wonderful course based on HtDP2 on Coursera by Gregor Kiczales - the guy who wrote AMOP (yeah, almost no one know what is it.) This course is such a rare example of teaching thinking and doing transformation in your mind instead of coding and copypasting that I sometimes watching some lectures for a better night sleep.))
Another nice idea is to google who Matthias Felleisen is and why he is famous guy. Then, perhaps, one could be able to appreciate what academic guys could do.
Alas, The Lambda Calculus is out of print, and comments on the linked Amazon page indicate it's not available even at the $186 (softcover) or $470 (hardcover) prices.
...though the 3 star review is good for a chuckle.
I guess it must be a joke, but that's a fun review. "I accidently bought this book thinking I was buying a traditional calculus book in order to prepare for a standardized test I had to take. After a few chapters I realized this was no ordinary Calculus book."
Pretty funny that on the "People also bought..." section in Amazon for the "Even a Geek Can Speak" book is the projector remote the author recommended.
I have that (Strunk-meister) but never really consult it. Stephen King's (let's put aside what we think of his works for the moment) On Writing is a great style guide even though it concerns writing short stories and novels. Read the technical (non-biographical) part of that book a couple of times and you'll see the words, sentences, and paragraphs that you're cranking out a whole lot differently, I guarantee you. Plus, it's an easy read.
I find his fiction enjoyable; it reads easily and his sense of humor is similar to my own. (It is possible to overdose on his style, as I did on Vonnegut after a few volumes.)
"Single greatest book on writing of all time?" We'll part company here too. I read On Writing shortly after it came out, and was entertained through the front half, but can't for the life of me remember a shred of advice from it. I do recall the striking discontinuity in the last part, where he writes about the auto accident that nearly killed him. The writing was obviously different from that in the front of the book, and I felt the topic was out of place, and even self-indulgent. But he gets a bye, 'cause he's Stephen King.
If you are starting off writing, and you're not a freak of nature like David Foster Wallace or James Joyce, and you can get over any revulsions you have about Mr. King, and you'd like to be shown the tools of the craft by a friendly craftsman, for what it is worth I can recommend it. And I want to say thank you (not) to that girl who borrowed my copy and promised to call me and return it and didn't - you suck just a little bit.
> When you're starting out with LaTeX, Leslie
Lamport's LaTeX book covers all the basics, and it
makes a good reference for all of the common things
you'd like to do in LaTeX.
> LaTeX, as it turns out, is a deep rabbit hole.
(It's Turing-complete.) When you're ready for your
black belt in TeX-fu, Donald Knuth's TeXbook is how
you get there.
> This is not an introductory book. This is for
hard-core TeX users.
LaTeX is essentially a macro package on top of TeX
except TeX and/or it's basic macro package Plain had
to be tweaked a little to enable some of the
functionality of LaTeX.
His description of Knuth's The TeXbook is not
correct: The book is nicely "introductory". Also
for an introductory book on a technical topic, the
quality of the writing of this book is excellent,
one of the best, world-class, maybe exemplary.
I read the book in late 1994 in about two weeks and
have used TeX for all my high quality word whacking
since then. I use TeX for all my letters, both
business and personal, used TeX for one peer
reviewed paper in some applied math for a problem in
computer science, and used TeX (to document for
myself) the core, original applied math for my
startup.
I have about 150 macros written in TeX for simple
lists, ordered lists, unordered lists, titles, table
of contents, cross references, various cases of
verbatim (where get to type text that looks like
TeX commands but the text gets treated by TeX just
as-is or verbatim instead of as TeX commands),
some automatic push down stack dynamic storage
that conforms to the scope of names rules of the
nested block structure, etc.
Part of what is good about TeX is the ability to
write macros; any TeX user should be able to write a
macro of a few lines easily as needed, if only for
some one document.
TeX, without LaTeX, is fine, perfectly usable.
And for a "black belt in TeX-fu" read the five
volumes or so of Knuth's detailed documentation of
the source code of both TeX and Metafont.
LaTeX is now quite an advanced macro package, far
beyond my 150 macros or what a user should try to
write for themselves. But, the manuals that
describe LaTeX well are much thicker than Knuth's
The TeXbook and, in my opinion, less well written.
Mostly people who want to do high quality word
whacking, especially with some mathematical
material, with TeX or LaTeX likely should just start
with LaTeX and there maybe the book the OP
recommends, Leslie Lamport's book.
On a more technical note, "Compilers" is a great book I enjoyed quite a bit, but it hardly is a great reference for compilers, it isn't even a very good textbook those days, it is very specialized in parsing and lexing and isn't very well balanced, there is much less about backend/runtime/optimization stuff which is the bigger part of compiler-writing those days, and the whole book is far, far removed from practice, it is perfectly possible to read it cover to cover and still have very little idea about how to write an actual compiler. There are much better books those days both if you want to simply write your own compiler (books by Appel, Cooper/Torczon, Grune) or have a reference of the state of the art in compilers (famous book by Muchnick). I would say "Compilers" is more similar to a monograph in specialized topics than to a textbook or reference book.