I love programming and I love codinghorror.com. Jeff Atwood is a good writer and with each post I learn about programming, the industry and life itself. So it only made sense for me to buy his "greatest hits" collection - a book called Effective Programming: More than writing code. Turned out the book has some major formatting errors (quotes weren't distinguishable from normal text) and while the online posts get updated sometimes, the book does not. So I've decided to take the table-of-contents and produce a table-of-links by reverse-engineering so I could read the up-to-date version of the book in it's original form.

I've got reason to believe he's okay with this, but I tweeted him anyway, and he is.


So You Want to Be a Programmer
The Eight Levels of Programmers
How to Write Without Writing

The Art of Getting Shit Done

The Vast and Endless Sea
Sharpening the Saw
Go That Way, Really Fast
The Multi-Tasking Myth

Principles of Good Programming

The First Rule of Programming: It's Always Your Fault
The Best Code is No Code At All
Learn to Read the Source, Luke
Rubber Duck Problem Solving
Cultivate Teams, Not Ideas
Can Your Team Pass the Elevator Test?
Performance is a Feature
Coding without Comments

Hiring Programmers the Right Way

Why Can't Programmers.. Program?
How to Hire a Programmer
Getting the Interview Phone Screen Right
The Years of Experience Myth
On Interviewing Programmers
Hardest Interview Puzzle Question Ever

Getting Your Team to Work Together

No Matter What They Tell You, It's a People Problem
Leading By Example
Vampires Programmers versus Werewolves Sysadmins
Pair Programming versus Code Review
Meetings: Where Work Goes to Die
Dealing With Bad Apples
The Bad Apple: Group Poison
On Working Remotely

Your Batcave: Effective Workspaces for Programmers

The Programmer's Bill of Rights
Computer Workstation Ergonomics
Does More Than One Monitor Improve Productivity?
Investing in a Quality Programming Chair
Bias Lighting

Designing With the User in Mind

You'll Never Have Enough Cheese
This is All Your App is: A Collection of Tiny Details
The User Interface is the Application
UI-First Software Development
The End of Pagination
Treating User Myopia
Revisiting The Fold
Fitts' Law and Infinite Width
The Ultimate Unit Test Failure
Version 1 Sucks, But Ship it Anyway

Security Basics: Protecting Your Users' Data

Should All Web Traffic Be Encrypted?
Dictionary Attacks 101
Speed Hashing
The Dirty Truth About Web Passwords

Testing Your Code, So it Doesn't Suck More Than it Has To

Sharing the Customer's Pain
Working With the Chaos Monkey
Code Reviews: Just Do It
Testing With The Force
I Pity the Fool Who Doesn't Write Unit Tests
Unit Testing versus Beta Testing
Low-Fi Usability Testing
What's Worse Than Crashing?

Building, Managing and Benefiting from a Community

Listen To Your Community, But Don't Let Them Tell You What to Do
I Repeat: Do Not Listen to Your Users
The Gamification
Suspension, Ban or Hellban?

Marketing Weasels and How Not to Be One

9 Ways Marketing Weasels Will Try to Manipulate You
How Not to Advertise on the Internet
Groundhog Day, or, the Problem With A/B Testing
If it Looks Corporate, Change It
Software Pricing: Are We Doing it Wrong?

Keeping Your Priorities Straight

Buying Happiness
Lived Fast, Died Young, Left a Tired Corpse