If it’s not tested, it’s broken.
Most programming languages contain good parts and bad parts. I discovered that I could be better programmer by using only the good parts and avoiding the bad parts.
As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow.
Being open source means anyone can independently review the code. If it was closed source, nobody could verify the security. I think it’s essential for a program of this nature to be open source.
Set your sights higher. Don’t think of yourself as a programmer at a specific company – after all, it’s not likely that you’ll be at the same place forever – but as a participating member of an industry. You are a craftsperson or an artist. You have something to share beyond the expense-reporting application you’re developing for your human resources department or the bugs you’ve got stacked up in your company’s issue-tracking system.
Programming isn’t about what you know; it’s about what you can figure out.
When a computer creates art, who is the artist – the computer or the programmer?
Coding, like poetry, should be short and concise.
Tests are stories we tell the next generation of programmers on a project.
Programmers tend to be divided into tribes by the languages they use. More even than by the kinds of programs they write.
We programmers are weird creatures. We love writing code. But when it comes to reading it we usually shy away. After all, writing code is so much more fun, and reading code is hard – sometimes almost impossible.
Good programming is not born from mere technical competence. I’ve seen highly intellectual programmers who can produce intense and impressive algorithms, who know their language standard by heart, but who write the most awful code.
A non-programmer friend once remarked that code looks like poetry. I get that feeling from really good code, that everything in the text has a purpose and that it’s there to help me understand the idea. Unfortunately, writing code doesn’t have the same romantic image as writing poetry.
It is not the language that makes programs appear simple. It is the programmer that makes the language appear simple!
Clean code always looks like it was written by someone who cares.
Good architecture makes the system easy to understand, easy to develop, easy to maintain, and easy to deploy. The ultimate goal is to minimize the lifetime cost of the system and to maximize programmer productivity.
It is not enough for code to work. Code that works is often badly broken. Programmers who satisfy themselves with merely working code are behaving unprofessionally. They may fear that they don’t have time to improve the structure and design of their code, but I disagree. Nothing has a more profound and long-term degrading effect upon a development project than bad code.
One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand.
There are only two kinds of languages: the ones people complain about and the ones nobody uses.
We build our computers the way we build our cities – over time, without a plan, on top of ruins.