SoftwareDevelopmentBooks

From Ohmpedia

Jump to: navigation, search

Contents

Non-language specific books

Design Patterns in software

  • Gang of Four (GoF) book - Amazon, at wikipedia

    The classic book. Quite dry, straightfoward; reference style, with some intro chapters at start.

  • Head-first design patterns - Amazon

    Much more conversational book than GoF. Also covers some issues surrounding design patterns (e.g. see discussion of Singleton in Java with threading issues etc.)

  • Anti-patterns: Refactoring Software, Architecture and Projects in Crisis amazon

    Patterns describing what usually goes wrong! How to avoid these scenarios, or mitigate things when it's already happened.

Patterns info: Wikipedia page, Hillside.net patterns site, a pattern wiki

Design Patterns in software are inspired by the architectural design patterns of Christopher Alexander (wikipedia).


Other

  • The Pragmatic Programmer - amazon

    Highly recommended

  • Refactoring - by Fowler - amazon
  • The Tao of Programming - read on the web
  • Programming Pearls - amazon
    Collected columns from the ACM journal about various programming tips and tricks, including optimisation, memory usage, algorithm design, et cetera. The columns were written up to twenty years ago, but are still very relevant.
  • The Art of Computer Programming
    Volumes 1-3 of this enormous collection, along with the many addenda and fascicles by Donald Knuth are supposed to be indispensable for serious programmers, I have never owned a copy, and it has done me no harm, although I am often tempted to get a good reference on algorithms and data structures, just in case. With modern languages, the runtime libraries generally already have implementations of trees, hashes, linked lists and so on, so the modern programmer rarely has to design their own from scratch. I think this would be more useful to an actual Computer Scientist in academia than a practical or pragmatic programmer.
  • Joel on Software - amazon
    Based on the articles from Joel's site. Covers some diverse topics from the small (e.g. what exactly is Unicode) to the large (like how to increase productivity and pointing out the false economies prevalent in software development today). He has a likeable, accessible writing style.

Language specific books

Java

  • Effective Java - amazon, java.sun.com info

    Very useful book on ins and outs of Java by Bloch (one of the maintainers/developers of Java).

  • Elements of Java style - amazon
  • Beyond Java - amazon
    All about the limitations of Java, and asks if it is time to move on. This book is sometimes accused of being a little aggressive, but why not? There's so much pro-Java material around, perhaps a little devil's advocate is for the good.
    slashdot review
    the register
    Discussion at The Server Side
    interwingly.net discussion
  • Bitter Java - amazon
    Recognising problems in Java projects, and refactoring them away safely.
  • Hardcore Java - amazon
    A good overview of some of the more complex and less well understood parts of the Java language, including nested classes, the 'final' keyword, reflection and exception handling.

Technology specific books

J2EE

  • J2EE Design and Development, Expert one-on-one - amazon

    I very much like the angle of this book. Rather than obsession over every API and the details of certain J2EE design patterns etc., the author concentrates on how to get your requirements met, and how not to go into over-kill. This sort of thing is a bit lacking in current J2EE literature!

  • J2EE without EJB, Expert one-on-one - amazon
  • Better, Faster, Lighter Java - amazon
    A guide to building enterprise web applications with other frameworks, such as Spring and Hibernate, instead of bulky and complex J2EE with EJBs.

Struts

Struts is a great framework for building web applications.It implements the controller part of an MVC (see DesignPatterns) design, leaving you to add the model and view. The struts home page has lonks to the current version (1.2.8) as well as the new frameworks (Action and Shale) that are being developed as part of struts 2.0 with Sun JSF. The O'Reilly books have been the best references for m:

  • Programming Jakarta Struts - amazon
    A good tutorial and reference, with plenty of examples and details, although it is not completely up to date, and sometimes recommends obsolete Struts 1.1 techniques.
  • Jakarta Struts Cookbook - amazon
    Collected recipies that shoiw how to apply struts to a variety of situations. Useful for seeing how a particular API feature is used in practice, before adapting to your application.
  • Jakarta Struts Pocket Reference - amazon
    An invaluable pocket guide. I use these pocket guides a lot, because they provide a quick reference for the whole API and are good for jogging your memory when you don't want to wade through pages of examples, but just need the parameters to a function or the syntax for a config file.
  • The Struts Framework: Practical Guide for Java Programmers - amazon
    A simple walk-through of building a struts application.

Java EE

(Java EE is the new name for J2EE technologies)

  • Beginning Java EE 5: From Novice to Professional - amazon
    Not read this all yet, but it's one of the few books out currently about Java EE 5.
    Note: for updated instructions on installing JBoss, go to the book webpage and click the Corrections link.

Personal tools