What does it mean to be a professional programmer? Well, there are several traits related to this that are well described across the Internet. We may present some of them: competent, experienced, efficient, responsible, consistent, reliable, and so on. Still, even though those qualities certainly describe professionals of different fields, all of them have various priorities from the perspective of an individual programmer.
I believe we should start the discussion on the subject by asking how to find those features by ourselves, and how to arrange them properly. We do not need adjectives to express certain qualities because they hardly describe different aspects of the professional approach, and understanding their origin is what really matters. I also believe that the answers may differ quite a lot for individual readers.
Having that established, let’s dive in and try to answer the question for yourself. To make that easier, we can start by saying that being a professional programmer is all about…
Yes, it all starts with you and your perspective on being professional. First of all, you should define your goals and know why you are doing what you’re doing. That will help you understand which actions constitute professionalism in your situation. Those actions lead to traits we spoke about before.
Maybe you need to focus more on what you are currently working on during your full-time job, or perhaps you need to learn more specifics and ideas behind the present implementation. Conversely, you may want to focus more on some unfamiliar things. You can improve your code quality, code reviews, automatic tests, documentation, and mentoring abilities. There are many things you can prioritize to expand your knowledge in the right direction. Sometimes, there is an urgent need to do after-hours work, like learning new ideas, tools, languages, or conducting a new project. The necessity of those things depends on your intentions.
When you answer the question of what to do now, you may ask what you should do later, in five or ten years. Those are fundamental questions to answer. Describing your goals and making strategic decisions is what makes you a professional individual.
The one who pays you
Your point of view is very significant because you will use it to build your career throughout your life. Still, another aspect is the perspective of the employer, who enables you to do what you do and has requirements of their own.
This view is where words like competent, efficient, and reliable have the most common understanding. We usually use them to describe the collaboration between an employer and an employee as well as between team members. Being professional means you pay attention to the requirements of your employer. Most of the time, your personal goals and company goals converge because things like efficient workflow, clean design, and high-quality code are widely appreciated. However, there are always elements that stand in opposition to each other, and we need to address that.
It is crucial to look at things from the employer’s perspective and ask yourself whether a decision would be different if you were the employer yourself. The choice regarding an architecture, a framework, a library, or a code’s standard should consider the interests of the one who pays. You do not usually work for fun or to expand your portfolio; you work because you’ve agreed to do this properly under a contract. Making that beneficial for both sides is your responsibility.
The struggle between solution predictability and innovation is challenging. Still, you should see things this way and be able to support your decisions with the display of current or future gains for the employer. That is what makes you a professional associate.
Finally, we need to put both perspectives, yours and your employer’s, into the context of time. It is easy to play nicely short term, but things tend to become complicated as time goes by.
Right now, you should know what is essential for yourself and for the one who hired you. You should see the goals and proper direction. The last question to ponder is how to make that work incrementally through time?
The professional approach is to constantly validate and maintain balance. It is looking at things from a broader perspective and understanding that the problem is a complex one. Things change all the time, and they need continuous attention.
You should consider your side, including things like health and work-life balance, so you can maintain being at the top of your game as long as possible. You should also consider the business side, know its strengths and weaknesses, help when possible, sometimes outside of the programming duties. When things go south for you or your employer, the professional should keep up and work their way up to success.
Answering the question of how to be a professional programmer should start with understanding the various viewpoints that define the worthy qualities. It is less about knowing specific characteristics and more about finding them in your personal, professional approach. You are the one who is responsible for that, and you should define them.
Look at things from your perspective, find aspects most valuable to you.
Look at things from your employer’s perspective, find and understand what is relevant.
Try to put that into a broader context and sustain it through time. It is crucial if you want to maintain a professional position.
Being professional means different things to different programmers. Define your own path! We will be back with more insights. See you!