Becoming A Better Programmer

My latest software development book is called Becoming a Better Programmer. Published by the wonderful folks at O'Reilly, it's a handbook for people who care about code. You can purchase it in printed form or as a digital version for your e-reader of choice.

You care about code. You're passionate about programming. You’re the kind of developer who likes to craft truly great software. And you want to do it even better. This book is for you.

It’s a catalogue of useful techniques and approaches to the art and craft of programming that will help you become better.

Find out more:

  • Find out more about the book from the official O'Reilly product page. You can view the full table of contents there.
  • Or head over to Amazon to purchase.
  • If you are a Safari subscriber, you can read it here.
  • Or grab your iBook here.

The cover image is a flying fish. I'll leave it to your imagination to work out the significance.

It's great to finally see this labour of love come to fruition, and I do hope that stands as a useful resource for programmers today.

What’s covered?

The topics covered in this book cover the whole gamut of the software developer’s life:

  • Code-level concerns that affect how you write individual lines of code, as well as how you design your software modules.
  • Practical techniques that will help you to work better.
  • Illustrations of the correct attitudes and approaches to adopt that will help you become both super-effective and well-grounded.
  • Procedural and organisational tricks and tips that will help you flourish whilst you are incarcerated in the software factory.

There’s no particular language or industry bias here.

The chapters

The book contents include:

  • Care About The Code
    • The right attitude and approach to write good code, and write it well
  • People Power
    • How to position yourself alongside excellent programmers
  • Speak Up!
    • Programming is about communication. How to communicate effectively as a programmer.
  • The Ethical Programmer
    • Issues of ethics in programming.
  • Relish The Challenge
    • How to find the right challenges to stay motivated and keep your skills sharp
  • Write Less Code!
    • Unnecessary code is a millstone; how to avoid the dangers
  • Coping With Complexity
    • Mechanisms to deal with the innate complexity in software development
  • It's The Thought That Accounts
    • How measures of accountability improve your work
  • It's Done When It's Done
    • Software timescale estimation: how, what, and why
  • Smarter Not Harder
    • Techniques for programming most effectively
  • Wallowing In Filth
    • How to cope with unpleasant, messy, or bad codebases
  • Expect the Unexpected
    • Avoiding nasty problems by considering all possible code paths, not just
  • This Time I've Got It
    • Looks at how to tackle coding problems with your eyes wide open, rather than rushing in wasting your time
  • Don't Ignore That Error
    • Investigates error handling and management
  • Navigating a Route
    • How to quickly learn a new codebase and start writing good code in it
  • Bug Hunting
    • Practical techniques for finding and fixing bugs
  • An Ode To Code
    • A poem leads us to think about working in a dysfunctional team.
  • Improve Code By Removing It
    • How to make you code better, by making your code smaller.
  • A Case for Code Reuse
    • What is the real deal with ``code reuse''?
  • Please Release Me
    • The art of making a reliable software release.
  • Many-festos
    • On the tribalism and factions in software development.
  • A Love For Languages
    • Cultivating a relationship with your programming language, and appreciating the languages out there.
  • This Software Stuff
    • What is software development? Art? Craft? Science? Gardening?

Also, there are chapters covering topics such as:

  • Working with test/QA teams
  • Code freeze
  • Keep it simple
  • Use your brain
  • Nothing is set in stone
  • Learning
  • Effective version control
  • Stagnation
  • The curse of good code

Who's it for?

If you're a software developer then this book is for you. Whether you have six months or six years of experience, you'll be encouraged to improve your skills.

Advance Praise

One of my favourite parts of the book is the "advance praise" at the front. Nestled amongst the luminaries and expert programmers who graciously contributed their honest thoughts on the book is another very honest opinion:

Kinda says it all...