Skip navigation.

The Fine Art of Programming

Here's a list of excellent online programming guides that i am compiling. I will add more links as time permits. The best guides also outline how to deal with people outside the cloistered priesthood of programmers.

  • How to be a Programmer: A Short, Comprehensive, and Personal Summary, Robert L Read
    Not short, but excellent distillation of one man's programming wisdom. Covers handling difficult colleagues, management, coding, optimizing and the difficult task of debugging.

  • The Art of Unix Programming, Eric Raymond
    More than just a programming guide, an exposition of a design philosophy -- the Unix way. Encyclopaedic in ambition and scope.

  • Producing Open Source Software, Karl Fogel
    A guide on how to run a successful open source software project. I like his introduction: "Most free software projects fail. We tend not to hear very much about the failures. Only successful projects attract attention, and there are so many free software projects in total that even though only a small percentage succeed, the result is still a lot of visible projects. We also don't hear about the failures because failure is not an event. There is no single moment when a project ceases to be viable; people just sort of drift away and stop working on it.".

  • Worse is Better, Richard Gabriel
    Still provocative and topical. The concept known as "worse is better" holds that in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed. Further debates on "worse is better".

  • Being A Better Programmer, Danny Burbol
    Advice written from a game programmers perspective. I don't quite agree with his opinions on documentation (I think you need to think of documentation as teaching, not making notes; in a large project, there should be some programming overviews and tutorials so people can kickstart without bugging you), but overall it's good advice.

  • Little Nybbles of Development Wisdom, Terence Parr
    What one man learnt over the course of a 3 year software odyssey - a bit too preachy for me (some of the advice seems specific to his project) but still interesting.

  • How To Write Unmaintainable Code, Roedy Green
    Roedy is a dangerous man :)

  • The archives of Joel On Software are a good read.

  • Alan Cox, Linux coding master, on writing better software.

Software Methodologies

A methodology provides a framework for software development. That's all. Never forget that within the framework, you have to keep everyone working towards a common goal, get the people motivated, the work coordinated, the participants properly briefed, and the bugs minimized.

Don't be fooled, the methodologies freely steal from each other, often doing similar things under a different guise; the key thing is listen to what is being offered by each methodology, then use common sense. Also methodologies only work on fertile soil -- make sure it suits the scope and scale of the project, and the natural working style of the key participants.

Some of the programming articles could have been placed under software methodologies too.

Software Economics