Mark Damon Hughes The Books That Changed My Life [Parental Advisory: Explicit Lyrics] [about]
  1. The Tao of Programming, by Geoffrey James.

    The Little Red Book always has something useful to say about any software development situation. "When you have learned to snatch the error code from the trap frame, it will be time for you to leave."

  2. The Tao of Objects, by Gary Entsminger.

    IMO, this is still the best introduction to OOP for non-OOP programmers. His later books are not as good as the original, but they're still quite decent.

  3. Computer Graphics: Principles and Practice, by Foley, van Dam, Feiner, and Hughes.

    All of the answers you ever wanted to your graphics-programming questions. Yes, it's very thick and very hard reading. It's still worth it. EVERYTHING is in here.

  4. Design Patterns, by Gamma, Helm, Johnson, and Vlissides.

    Don't read DP until you've been doing OOP for some years; the book won't mean anything until you recognize patterns that you've done several times yourself. Then, the light goes on and this becomes useful.

  5. The Timeless Way of Building, by Christopher Alexander.

    Chris Alexander's books really are applicable to software development, though you won't see how until you've read DP.

  6. Concurrent Programming in Java, by Douglas Lea.

    A design pattern-based approach to building concurrent programs. This just completely blew me away. It uses Java, but it's not really specific to Java - the principles can be applied to any multithreaded program.

  7. The Practice of Programming, by Brian W. Kernighan and Rob Pike.

    This didn't actually change my life, because it came out too late for me. But if I'd been starting programming when it came out, it would have. Give this book to all of the novice programmers you know.

  8. Thinking in Java, by Bruce Eckel.

    Another that didn't change my life, but should have. You can get a free electronic version at Bruce's web page, or give him more money so he can keep writing books like Thinking in Patterns.

  9. Extreme Programming Explained: Embrace Change, by Kent Beck.

    It's become clear that traditional software development produces crap software that doesn't meet the needs of the customer, even in the 10% of projects that actually produce any working software at all. Maybe XP isn't the only solution, but it works. Seriously, try it just for one project iteration with your team. Or adapt whatever techniques you can from it for your environment.

  10. Refactoring: Improving the Design of Existing Code, by Martin Fowler.

    How to make small, reliable changes to your code. In combination with test-first design, this makes it almost impossible to produce bugs.

  11. JavaSpaces: Principles, Patterns, and Practice, by Freeman, Hupfer, and Arnold.

    How to make an incredibly powerful distributed object system with just a handful of commands. Even if you never program with Jini/JavaSpaces, this is the best (and one of the only) explanation of the TupleSpace concept I've ever seen. On a side note, this is why I hate academics, even or especially when they come up with great ideas. This concept had been HIDDEN from us for years, because they weren't interested in making it commercial. What good is an idea that nobody knows about?!?

Last modified: 2000Oct30
Added

Links:


+-Mark Damon Hughes: Software Gallery
+-Mark Damon Hughes: Software Gallery Blog
+-@mdhughes on Twitter
+-
iPhone Games:

+-Perilar: Role-playing game for the iPhone.
+-Castles: Strategy wargame for the iPhone.
+-DungeonDice: Tabletop RPG dice roller for the iPhone.
+-Nexus Worlds: Multiplayer Online Adventure Game for the iPhone.
+-
Computer Games:

+-Java Perilar: Adventures in the Dragon Kingdoms.
+-Hephaestus: Computer RPG construction kit.
+-GameScroll: Simple interactive fiction authoring.
+-Aiee!: "An Interactive Environment Engine" text adventure system.
+-Umbra: Post-apocalpytic computer RPG.
+-
Utilities:

+-JICB: Portable ICB client written in Java.
+-ThoughtPad: A tiny note-taking utility.

Site Pages:


+-Audio
+-Blank page
+-Camera
+-Cyberpunk
+-Game Design
+-Hacker
    +-Java
    +-NetRexx
    +-Python
+-Hello Kitty
+-Quotes
+-Religion
+-RPG
    +-The Bomb
    +-DUDE
    +-G.P.A.
    +-Phobos
    +-SIX WORD RPG!
    +-Weapons
    +-What's Wrong
  With AD&D?

+-Text
    +-H.Beam Piper
    +-Snow Crash
+-Universal Search
+-Video
+-Videogames
+-Virus Warning

Blog Archive
Blog Topics:


+-News
+-Cocoa
+-Mac
+-Media
+-Personal
+-Quotes
+-Religion
+-Roleplaying
+-Science
+-SecondLife
+-Society
+-Software
+-Toys
+-Web

Feedback  | Key: ] =local file, * =off-site link  | Copyright © 2003-2005 by Mark Damon Hughes | Subscribe with RSS 2.0
This site was created with Vim :wq