The Professional Programmer
What is a professional programmer?
The single most important trait of a professional programmer is personal responsibility. If you are a professional, then you are responsible for your own career. You are responsible to read and learn. You are responsible to stay up-to-date with the industry and the technology.
Too many programmers feel that it is their employers job to train them. Sorry, this is just dead wrong. Do you think Doctors behave that way? Do you think Lawyers behave that way? No, they train themselves on their own time, and their own nickel. They spend much of their off-hours reading journals and decisions. They keep themselves up-to-date. And so must we.
The pragmatic programmers wrote: "Learn a new language every year." You should not expect your employer to send you to a training class to achieve this goal. You should do this on your own time, with your own resources.
Professionals take responsibility for the code they write. They do not release code unless they know it works. Think about that for a minute. How can you possibly consider yourself a professional if you are willing to release code that you are not sure of? A professional programmer expects QA to find nothing because the professional only releases the code when he's done everything reasonably possible to achieve that goal. Of course QA will find some problems, because none of us are perfect. But our attitude must be that we expect QA to find nothing.
Professionals do not tolerate big bug lists. A huge bug list is sloppy. Systems with thousands of issues in the issue tracking database are tragedies of carelessness. Indeed, the very need for an issue tracking system is evidence of carelessness because even the biggest systems should have bug lists that number in the dozens.
Professionals do not make a mess. They take pride in their workmanship. They keep their code clean, well structured, and easy to read. They follow agreed upon standards and best practices. They never, ever, rush.
Professionals are responsible. They take responsibility for their own careers. They take responsibility for making sure their code works properly. They take responsibility for the quality of their workmanship.
by Uncle Bob
This work is licensed under a Creative Commons Attribution 3
Back to 97 Things Every Programmer Should Know home page