CSS: Fix what appears to be a typo
[wiki.git] / doc / summer-reading.mdwn
1 [[!meta title="Summer Reading"]]
2
3 Remember middle school English class, when you got a list of books to read over the summer before class? In some classes there was a list of "optional" books which you were encouraged to read if you were particularly bored over the summer or over term. This list is somewhat like the latter, except even more informal and hopefully more interesting.
4
5 Additions are quite welcome.
6
7 ## Articles
8
9  * [The Kerberos play](http://web.mit.edu/Kerberos/dialogue.html): explains why Kerberos works the way it does
10  * [The Rise of Worse is Better](http://www.jwz.org/doc/worse-is-better.html): a brief description of the single coding philosophy that most influenced the design of UNIX and many related systems. The [entire article](http://web.mit.edu/geofft/Public/gabriel-on-lisp.ps), rather than just the section, is available in PostScript
11  * Tim Berners-Lee's [Design Issues](http://www.w3.org/DesignIssues/) section, and his piece on why [Cool URIs Don't Change](http://www.w3.org/Provider/Style/URI)
12  * [How To Ask Questions The Smart Way](http://catb.org/esr/faqs/smart-questions.html) -- A document on asking questions in hacker communities in ways that will help you get answers. Many of its points apply to places like Zephyr, too.
13  * A definition of [yak shaving](http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html), which you'll often find SIPB members unwisely engaging in.
14  * [GNU Philosophy](http://www.gnu.org/philosophy/philosophy.html), hardline but worth reading.
15  * On that note, the [GPLv3](http://www.gnu.org/licenses/gpl.html) and [GPLv2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). Dense legal style, but also worth reading once, to understand what free software is about
16  * [The Cathedral and the Bazaar](http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/), by Eric Raymond: an overview of closed-source ("cathedral") vs. open-source ("bazaar") design and participation philosophies
17  * [Why Nerds are Unpopular](http://www.paulgraham.com/nerds.html), by Paul Graham
18  * [How Athena Works](http://web.mit.edu/ghudson/info/athena), by Greg Hudson, longtime Athena engineer and SIPB member. Note that sections 5 through 11 don't really apply any more.
19  * [The e-mail threading algorithm](http://www.jwz.org/doc/threading.html), by Jamie Zawinski (jwz), old Netscape hacker. Interesting not only for the algorithm per se, but for his description of the process leading to its development, and his [lost argument with Netscape 4's engineers](http://www.jwz.org/doc/mailsum.html) against replacing the algorithm with something overengineered
20  * [HOWTO Encourage Women in Linux](http://valerieaurora.org/howto.html), by Valerie Aurora, a Linux kernel hacker.
21
22 ## Books online
23
24  * Abelson and Sussman, [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/full-text/book/book.html): the classic textbook for the famous 6.001
25  * Eric Raymond, [The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/html/index.html): also explains a lot of design
26  * Mark Pilgrim, [Dive Into Python](http://diveintopython.org/): "a Python book for experienced programmers"
27  * Eric Raymond, ed., [The Jargon File](http://catb.org/~esr/jargon/): a lot of hacker terminology and lore, plus quite a few interesting articles near the beginning.
28
29 Don't forget about [Safari](http://safari.oreilly.com/) -- O'Reilly books online, free for MIT people.
30
31 ## Blogs, etc.
32
33  * [Joel on Software](http://www.joelonsoftware.com), a software developer in charge of a small company who writes well
34   * [Making Wrong Code Look Wrong](http://www.joelonsoftware.com/articles/Wrong.html)
35   * [The Law of Leaky Abstractions](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)
36   * [Things You Should Never Do](http://www.joelonsoftware.com/articles/fog0000000069.html), i.e., rewrite software from scratch
37   * [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](http://www.joelonsoftware.com/articles/Unicode.html)
38  * [The Old New Thing](http://blogs.msdn.com/oldnewthing/), by an engineer for MS who writes about stupid hacks in the name of backwards compatibility
39  * [Jamie Zawinski's](http://www.jwz.org/doc/) writings / rants. jwz developed Netscape 1-3, and played a role in the open sourcing of Netscape as Mozilla.
40  * [Paul Graham's Essays](http://www.paulgraham.com/articles.html) on Software, Startups, and Writing.