We have nowadays many IT professionals, but let us think for a second what being an IT professional actually means. Is it only about being very good at programming? Is it about taking care of your code every night and day? Or maybe it is about wearing a suit and taking part in all possible IT events? In fact, being very good at programming is not enough to call yourself a professional developer. Professionalism needs something more than that. It is not only about being very good. Being a professional involves having great skills, but I dare to sat that not only skills are important here.
Professionalism is in fact always your choice. Sometimes it is even better, or perhaps easier, to be a non-professional - work may not be so demanding and still you will earn good money. The life of professionals is not a bed of roses and you should know that from the beginning. Professionals take responsibility for their work. They do not blame others for their own mistakes. When they create a bug, they do not let everyone around pay for their mistakes. Being a professional developer is about facing consequences when you do something wrong. It is not only about doing your job well, not about your position or having ten, twenty or thirty years of experience. It is about learning from mistakes and not making the same errors over and over again. So, if you want to be a real professional, think about it twice because, believe me, it is not an easy thing to do.
Always take responsibility for your software. Professional developers try neither to do harm to its function nor structure. Before they release software they make sure it will work. They do not execute the code when they are not certain about it. To be professional you have to know that your code is not faulty before you make it public. How to know that? By tests, by thousands of tests. Test your code as many times as it is possible. Create unit tests. Automate your tests. Do everything what you can to make your code perfect or just close to perfection. Why close to perfection? Because bugs always occur and professionals are aware of that. And that is also the essence of professionalism - to take responsibility for your imperfection. To work on the imperfection of your code, you have to create such a structure that will be flexible enough to make some changes. Every time you read the code adjust the structure. Professionals do that. Software for them is the same as the clay for sculptors. They shape it all the time.
Being a professional developer is not, however, only about improving your code. It is about improving yourself. Professionals develop continuously, learn new things systematically, practice to keep up with the current trends. It is extremely significant not to lag behind in this domain. And they do it because they want, not because an employer tells them so. A professional is the only person who is responsible for their career, not their boss, colleague, friend or wife. Still wish to be a professional developer? Read books, go to conferences, teach others, collaborate. Do everything that may help you be better and better. Can you describe 24 patterns in the GOF book? Do you know SOLID principles? Do you understand how Scrum, Kanban or Structure Analysis work? Do you practice Pair Programming, Continuous Integration or TDD? If the answer is NO, start because professionals do know all this stuff. They do not let the industry pass them by.
Leave your comfort zone. If you write software for the banking company, you should understand the field you work in. No one demands from you to be an expert, but you ought to know some basics. In other case you will not be able to recognise what you are doing wrong. Identify with your customers and employers to comprehend their needs better. Professionals ask questions. They are not afraid of learning new things. They are not afraid of asking questions.
And one thing more that is worth mentioning. Professionals do not pretend to be humble. They are creators. They are proud of what they are doing and it is good. It should be like that. But professionals do not lack self-criticism and in situation when an error occurs they come with humility and will be the first who take the blame and laugh at their own imperfection. And then… create, correct and enhance their code again.
Bibliography: The Clean Coder. A Code of Conduct for Professional Programmers, Robert C. Martin, Prentice Hall: 2011.