Do you want to code without rules?

When you first learned to code you followed the rules you were taught. Hopefully they were good rules: always write tests, follow the coding standard, don’t trust unvalidated input. But as your skills grew the rules started to feel wrong sometimes; you started noticing their limitations and caveats. What comes next?

After following the rules the next step is breaking the rules. You’ll begin to sense the underlying patterns and principles: why the rules exist and when it’s OK to ignore them. Sometimes it’s OK to cross the street during a red light if there are no cars coming. Sometimes you don’t have to write tests.

Eventually you will go beyond rules: you will have internalized the principles and understand tradeoffs and options automatically. You won’t think about what to do, you’ll just know. Then it’s time for a new set of rules as you discover a higher-level set of problems and solutions.

Learning when to break the rules is hard on your own, let along going beyond rules: you have to discover the unstated underlying principles. Learning from experts can also be difficult. They often assume the principles that you can’t yet see, offering seemingly contradictory advice that you don’t know how to apply.

Do you want to code without rules? Then keep reading, as I try to show you when to break the rules, and more importantly why.

You shouldn't have to work evenings or weekends to succeed as a software engineer. Get to a better place by reading The Programmer's Guide to a Sane Workweek.

You might also enjoy: