another Q+A
[wiki.git] / doc / SummerReading
1 = Articles =
2
3  * [http://web.mit.edu/Kerberos/dialogue.html The Kerberos play]: explains why Kerberos works the way it does
4  * [http://www.jwz.org/doc/worse-is-better.html The Rise of Worse is Better]: a brief description of the single coding philosophy that most influenced the design of UNIX and many related systems. The [http://web.mit.edu/geofft/Public/gabriel-on-lisp.ps entire article], rather than just the section, is available in PostScript
5  * Tim Berners-Lee's [http://www.w3.org/DesignIssues/ Design Issues] section, and his piece on why [http://www.w3.org/Provider/Style/URI Cool URIs Don't Change]
6  * A definition of [http://sethgodin.typepad.com/seths_blog/2005/03/dont_shave_that.html yak shaving], which you'll often find SIPB members unwisely engaging in.
7  * [http://www.gnu.org/philosophy/philosophy.html GNU Philosophy], hardline but worth reading.
8  * On that note, the [http://www.gnu.org/licenses/gpl.html GPLv3] and [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPLv2]. Dense legal style, but also worth reading once, to understand what free software is about
9  * [http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ The Cathedral and the Bazaar], by Eric Raymond: an overview of closed-source ("cathedral") vs. open-source ("bazaar") design and participation philosophies
10  * [http://www.paulgraham.com/nerds.html Why Nerds are Unpopular], by Paul Graham
11  * [http://web.mit.edu/ghudson/info/athena How Athena Works], by Greg Hudson, longtime Athena engineer and SIPB member
12  * [http://www.jwz.org/doc/threading.html The e-mail threading algorithm], 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 [http://www.jwz.org/doc/mailsum.html lost argument with Netscape 4's engineers] against replacing the algorithm with something overengineered
13  
14
15 = Books online =
16
17  * Abelson and Sussman, [http://mitpress.mit.edu/sicp/full-text/book/book.html Structure and Interpretation of Computer Programs]: the classic textbook for the famous 6.001
18  * Eric Raymond, [http://www.catb.org/esr/writings/taoup/html/index.html The Art of Unix Programming]: also explains a lot of design
19  * Mark Pilgrim, [http://diveintopython.org/ Dive Into Python]: "a Python book for experienced programmers"
20  * Eric Raymond, ed., [http://catb.org/~esr/jargon/ The Jargon File]: a lot of hacker terminology and lore, plus quite a few interesting articles near the beginning.
21
22 Don't forget about [http://safari.oreilly.com/ Safari] -- O'Reilly books online, free for MIT people.
23
24 = Blogs, etc. =
25  * [http://www.joelonsoftware.com Joel on Software], a software developer in charge of a small company who writes well
26   * [http://www.joelonsoftware.com/articles/Wrong.html Making Wrong Code Look Wrong]
27   * [http://www.joelonsoftware.com/articles/LeakyAbstractions.html The Law of Leaky Abstractions]
28   * [http://www.joelonsoftware.com/articles/fog0000000069.html Things You Should Never Do], i.e., rewrite software from scratch
29   * [http://www.joelonsoftware.com/articles/Unicode.html The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)]
30  * [http://blogs.msdn.com/oldnewthing/ The Old New Thing], an engineer for MS who writes about stupid hacks in the name of backwards compatibility
31  * [http://www.jwz.org/doc/ Jamie Zawinski's] writings / rants. jwz developed Netscape 1-3, and played a role in the open sourcing of Netscape as Mozilla.