]> sipb.mit.edu Git - wiki.git/blob - doc/summer-reading.mdwn
UsingScreen -> screen.mdwn
[wiki.git] / doc / summer-reading.mdwn
1 [[!meta title="Summer Reading"]]
2
3 ## Articles
4
5  * [The Kerberos play](http://web.mit.edu/Kerberos/dialogue.html): explains why Kerberos works the way it does
6  * [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
7  * 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)
8  * 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.
9  * [GNU Philosophy](http://www.gnu.org/philosophy/philosophy.html), hardline but worth reading.
10  * 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
11  * [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
12  * [Why Nerds are Unpopular](http://www.paulgraham.com/nerds.html), by Paul Graham
13  * [How Athena Works](http://web.mit.edu/ghudson/info/athena), by Greg Hudson, longtime Athena engineer and SIPB member
14  * [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
15  
16
17 ## Books online
18
19  * 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
20  * Eric Raymond, [The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/html/index.html): also explains a lot of design
21  * Mark Pilgrim, [Dive Into Python](http://diveintopython.org/): "a Python book for experienced programmers"
22  * 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.
23
24 Don't forget about [Safari](http://safari.oreilly.com/) -- O'Reilly books online, free for MIT people.
25
26 ## Blogs, etc.
27
28  * [Joel on Software](http://www.joelonsoftware.com), a software developer in charge of a small company who writes well
29   * [Making Wrong Code Look Wrong](http://www.joelonsoftware.com/articles/Wrong.html)
30   * [The Law of Leaky Abstractions](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)
31   * [Things You Should Never Do](http://www.joelonsoftware.com/articles/fog0000000069.html), i.e., rewrite software from scratch
32   * [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](http://www.joelonsoftware.com/articles/Unicode.html)
33  * [The Old New Thing](http://blogs.msdn.com/oldnewthing/), an engineer for MS who writes about stupid hacks in the name of backwards compatibility
34  * [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.