Professional programmer

Who can be considered a professional programmer? The most important trait of a professional programmer is personal responsibility. Professional programmers are responsible for their careers, their evaluations, their deadlines, their mistakes, and their expertise. A professional programmer does not shift this responsibility onto others.

  • A professional is responsible for their own career. Reading and learning are your responsibilities. Staying up-to-date with the latest industry advancements and technologies is your responsibility. Too often, programmers believe that their education is the employer’s job. Sorry, that is completely incorrect. Do you think doctors believe that too? Lawyers? No, they study in their free time and at their own expense. They spend a significant amount of their free time reading journals and court rulings. They maintain their professional level. We should do the same. The relationship between you and your employer is well described in your contract. In short, the employer promises to pay you, and you promise to work well.

  • A professional takes responsibility for the code they write. They do not release code unless they are confident it works. Think about it for a moment. How can you consider yourself a professional if you are willing to release code you are not confident in? Professional programmers expect the quality assurance department to find nothing in their code because they do not release it until it has been thoroughly tested. Of course, the quality assurance team will find something because there are no perfect people. But as professionals, we should strive for the quality assurance team to find nothing.

  • A professional is a team player. They are responsible for the entire team’s result, not just their own work. Professionals help each other, teach each other, learn from each other, and even cover for each other when necessary. When one team member stumbles, others step in to support them, knowing that one day they themselves will need support.

  • A professional does not accept long defect lists. A huge defect list is a sign of sloppy work. Systems where the defect management system contains thousands of records are a tragedy of negligence. Moreover, in most projects, the very need for an automated defect management system is a symptom of negligence. Only very large systems can have such a large number of errors that automation is required to manage them.

  • A professional maintains order. He takes pride in his craft. His code is clear, well-structured, and easy to read. Professionals adhere to agreed standards and best practices. They never, under any circumstances, work in haste. Imagine being able to leave your own body and watch a doctor perform open-heart surgery on you. This doctor has a strict (literally) deadline to complete the work. He must finish the operation before the artificial heart machine damages too many blood cells in your body. How do you think he should behave? Would you want him to act like a typical programmer, writing code in haste and chaos? Would you want to hear him say, “I’ll fix it later”? Or should he meticulously adhere to the rules of his science, calculate the time, and ensure that the approach he chooses is the best available to him? What do you want—chaos or professionalism?

Professionals have a sense of responsibility. They are accountable for their own careers. They are responsible for the proper functioning of their code. They are accountable for the level of their mastery. They do not abandon their principles when deadlines press them. In fact, when the pressure increases, professionals hold even tighter to the order they believe is right.