If you make your living programming, “The Pragmatic Programmer, From Journeyman to master” is for you. It’s fun and it will help you become a better programmer. It’s written by Andrew Hunt and David Thomas, two experts who helped to create the agile manifesto.
G’day! Welcome my friend to WTK, the “What to know” show. I’m your host Peter, Whelan. I’ve hired, trained and managed dozens of programmers.
A pragmatic programmer is sensible and practical. This is one of the few books that I recommend every programmer read.
In fact, if you read only one book related to your career then, not to be impolite, but don’t ready any.
Professionals read more than one book. As you know, if you’re planning on a career in programming, you’re planning on learning. You didn’t get into this field to be mediocre.
This was written in 1999, the last century. Technology has improved a lot in the last 20 years. So why do I still recommend this? People haven’t changed.
Some of the details are outdated, but the principles captured in here had been around for years before this was published.
I predict we’ll be using them 20 years from now. For example, work WITH a user to think like a user. That’s timeless! At the back of the book is a quick reference guide. I’ll include a link to it in the show notes so that you can get the gist of it.
My favourite line is about documentation “If it’s on the web, the programmers may even read it”
The sample code is written in perl, python and ruby. It’s easy to understand which means that you’ll learn quickly. It’s the kind of book to keep handy. You can read one tip at a time in no particular order.
The success of this book spawned dozens of good titles on “The pragmatic bookshelf” imprint. It was in “The pragmatic programmer” that I learned the acronym DRY – Don’t Repeat Yourself. This “what to know show” puts DRY into action. Instead of repeatedly telling programmers what books I’ve found useful, I publish my recommendations. That means that you get a list of books curated by someone with over 30 years of experience.
Don’t repeat yourself, DRY neatly sums up the value of having one place to update things.
As opposed to WET, We Enjoy Typing. A “copy and paste” coder takes that approach.
Then there’s DAMP, which sounds like it would be halfway between WET and DRY but it has nothing to do with either.
DAMP is my favourite
It stands for Descriptive And Meaningful Phrases which is THE way to name everything. NAME things what they are.
There’s a comedy routine from the 30s, “Who’s on first” by Abbot and Costello, that’s a fun way to remember the DAMP tip.
I know what you’re thinking! What can a couple of jokers from the thirties teach me about programming today? That’s before I was born! Heck, it’s before I was born
Watch “Who’s on first” and you’ll always remember the importance of DAMP. I’ll include a link to it in the show notes
As you know, we spend 10 times more hours reading code than writing it, so make it readable. Renaming objects to reflect what they are is the most common example of refactoring.
It’s simple, but it’s not easy. How often do you see generic names like manager, portal or service?
Use descriptive and meaningful phrases to reduce your code review WTF per minute rate.
For example, you see a variable named STD.It’s not obvious what STD is. Is it an abbreviation for ShortTermDisability, ShortTermDebt or Standard Deviation? Your guess is as good as mine. STD could stand for dozens of things. A DAMP name would be better.
We now have tools to make it easier than ever to use these tips.
I graduated from a computer science program, but I don’t call myself a scientist.
A programming isn’t exactly a science.
Years ago my job title was software engineer, but I don’t call myself an engineer.
Programming isn’t engineering, it’s a kind of craft.
Which brings us to the first tip “Care about your craft”
Why am I telling you this?
If you’re a programmer, be a good one. You didn’t get into this field to be mediocre. You watched this far, you’re curious, you’re learning, you’re one of the good ones.
Be the best you can be If you want to
Read the Pragmatic Programmer.
Some of the ideas in here continued to develop into their own disciplines, such as test driven development.
What’s that? There’s a new edition coming out? Oh! When? October 2019?
Well, I’ll have to read the beta. I’ll be back.
Ok, I’ve read the 20th anniversary edition in beta. It now has 100 tips and includes more languages and technologies. It’s chapter based than this one. If you haven’t bought this yet, then for sure get the 20th anniversary edition of the Pragmatic Programmer.
They’ve added content that lines up with my shows on what to know about passwords and multi factor authentication.
My favorite line from the 20th anniversary edition is “now we’re faced with a generation of OO developers who use inheritance for one of two reasons: they don’t like types, they like types. I laughed out loud at that one.
Reading this will only get you so far. Discuss this book online or teach the tips to a coworker.The more you do that, the better you’ll understand it.