In this series, we try to answer the question of how to be a professional programmer. There are many aspects to look at; therefore, we divided that topic into three perspectives. The first one relates to your personal development, and we discussed details of that in two previous posts regarding establishing goals and realizing them.
Today, we will discuss another perspective which is the business relationship with your employer and coworkers. Of course, there are many different forms of partnership, you may be a freelancer, startup associate, or running your own company, but most of the time, programmers work for a single employer. Thus, today’s topic circles around having a professional relationship with the company that employs you and the people you work with.
Your relation with the employer
How to be a professional programmer at your workplace? Well, it all starts with your mental state, your view of yourself, and your cooperation with the company you work for. Being professional requires independence and reliability, thus it is helpful to picture yourself as an autonomous entity that comes in with the ability to code and expects payment in return. Not really a classical employee-to-employer association, but rather a business-to-business one. This relationship works well when your employer needs the knowledge you have, and you appreciate the work environment with all its benefits.
There are two issues you have to take into consideration. The first one is to think about your employer’s needs and satisfy them as they change. You should pay attention to the dynamic work environment to remain a competent and reliable employee. Investing time in learning things you may use right away is the fastest method to gain new knowledge. That perspective is what makes you valuable in a business relationship.
Another issue are your future possibilities when the cooperation ends. You are your own investment, and invest well you should. Consider goals that define your development path and try to combine them with your day-to-day job.
It is your responsibility to balance two things — staying valuable to your employer and keeping up your way of improvement.
We discussed the idea of defining your goals earlier in the series, so now we will examine the intention to remain a treasured employee. You should consider many variables when determining what your employer expects of you and how you should adequately fulfill your contract. Those aspects differ significantly from place to place, thus you are the person who should figure out what matters the most in your environment. Nevertheless, there are some standard requirements that everyone appreciates.
As a professional specialist, you are usually responsible for three major elements in developing a programming solution. At the very beginning, you should help the business end of your company correctly figure out what is the best for them. Help with the technology choices and task definitions. Analyze the situation using your experience from their perspective, so the current and future benefits for the company are taken care of.
Then, provide a proper schedule for the assignment and estimate every step of it as well as you possibly can. Estimation is crucial for business because it tells how much time and money one needs to complete the job. It allows for proper task prioritization from the business and technological perspective.
Finally, get the job done. Be coherent in your expert assistance, your estimation, and the final realization. Plan properly and move step-by-step toward the complete implementation. In addition, doing all of that diligently helps derive valuable feedback from the completed task and improve in the future.
Your relation with people
When you work for a company, you usually have coworkers that you interact with. Quite often, they are part of your team, which works together toward completing a mutual assignment. In this context, being professional is more of a perception that others share about you. The principal influence you may have is to act appropriately to be perceived as a competent, responsible, and trustworthy companion.
Even in a very technical environment, interpersonal abilities play a significant role because when acquiring greater responsibility, there is more cooperation needed. The scalability of a single programmer is limited, and sooner or later, you will experience the necessity to combine forces with others. Being a good team player helps achieve bigger goals.
It seems pretty straightforward that being nice and helpful is beneficial to the team, but let’s consider this from an individual, pragmatic perspective. Is it better to be amazing and keep on coding on your own or to at least try sharing some of it with others?
I believe there are situations where a highly specialized one-man army plays well, but in general, it is more of a weakness because lacking experience in teamwork is a huge disadvantage for some companies.
Being a reliable colleague pays off immensely when you consider a repeated game. The people you work with will be there for quite some time, so it is easier to work with knowledgeable people who see you as a technology partner. They have as much time in life as you do, thus sooner or later, you will learn something from them too. You may become the center of technological attention if you only value reciprocity over alienation.
Furthermore, how people see you is significant long-term. You don’t know what the future holds, so you cannot exclude the possibility of future projects and people that will be around then. Even after the current job, you may find valuable business partners within people you helped one way or another.
Being professional in the eyes of others is also advantageous for you.
The business aspect is crucial in the life of a programmer. Being a reliable employee who understands the requirements and tries their best will greatly benefit the company. Still, remember about your personal goals and try to realize them in connection to your professional endeavor. Remain competent for the current and future employer.
The business end cares the most for three things: your expertise regarding future tasks, your detailed estimation of an assignment, and you getting the job done according to the previous statements.
Being helpful to your team members is great for business because it makes you a valuable part of a solution to a problem that requires more than a single programmer to tackle. That’s how you scale your knowledge and your impact.
From the individual perspective, being reciprocal toward others places you in the center of technology with others who can share. In a repeated game, it is the best strategy and brings the most satisfying results.
Professional and pragmatic are proper adjectives to describe the mentioned approach. Cheers!