One of the main advantages of being a professor in the university and in the vocational training centers for more than 12 years is that I have been able to witness the professional maturity of my former students.
To this day, the first of my students are architects, project managers and, of course, senior developers. The close relationships we have kept since the beginning, allows me to have confidence with them to talk about their professional maturity and to be able to extract signs and professional attitudes that make them senior developers.
In this article, I will try to summarize my personal experience about the different signs that I have detected in all of them when they stopped being junior developer to become senior developers.
If you want to become a senior developer you must follow the next natural cycle of software development
Learn from mistakes.
Share mistakes with colleagues.
Return to point 1.
You should to think that this life cycle of mistakes will allow you to gain professional experience, and this experience is what will allow you to prevent them from happening again; and even more, it will allow you to warn and teach Junior developers that these errors are there.
The experience will make you a senior developer.
The passage of time is not what will make you a senior programmer, do not wait to have +2 or +5 years of experience in a technology to call yourself a senior developer. It’s the number of times you go around the life cycle of mistakes what makes you gain experience.
We will now analyze the qualities that develop in this cycle of acquiring valuable experience.
Research is a fundamental requirement to be a senior developer because, thanks to research you will end up testing solutions to hard problems. That is when you will get experience. Therefore, the fact of researching will lead you to learn more about a specific topic without being a mandatory task due to your labor issues.
Another side effect caused by researching is that new tools, concepts or patterns are tested in your personal experience. The fact of testing a specific technology allows you to analyze the pros and cons in a more real way since the pros and cons are being “touchable” with their own examples.
Therefore, senior developers are not always doing the same task but are constantly researching and testing to reinforce their learning.
Senior developers never accept “it has always been done that way” or “because I say so” in response. Good developers are constantly wondering why issues are solved in one way and not another. This allows us to reflect on the processes and improve them with the passage of experience. This is where a developer’s time is really treasured, by the amount of “Why” he has managed to solve.
Not only do they try to solve the “Why” of others, but also their own ones. At the moment they have a code or system that works and they don’t know the reason they have to find out what is going on. If you think about it, they are really looking for a possible bug or learning a concept that they had mistaken and hence their “Why” question.
A turning point in the career as a developer is when you start mentoring other programmers younger (in the profession) than you. It is a great mistake to consider someone a great developer if he is unable to work in a team, unable to communicate properly with their peers and especially if they are unable to mentor another fellow professional.
At the moment you start mentoring a junior developer, synergies begin both ways. The junior developer will begin to listen to the “war stories” of his partner, and if he is curious (point 1) he will begin to investigate to chart his own path towards being a senior developer.
But, not only does the junior developer benefit from mentoring in this case, the senior developer will reinforce his soft skills as well since he will have to communicate with someone who has less work experience and therefore will have to look for adapted metaphors or examples. Teaching another person strengthens your knowledge exponentially. In addition, the transmission of knowledge is not unidirectional from the senior developer to the junior developer since the junior developer (if it is curious) probably introduces fresh air to the senior developer reinforcing him about the knowledge of the latest trend that, due to lack of time, could not be reached by the senior developer.
It is very popular the quote in which it is said that the three most difficult words to say for the human being are not “I love you” but are “I don’t know” (Freakonomics Bestseller).
It is hard for people to admit that we don’t know something since we may seem ignorant, inferior or worse than other people. This is further aggravated when our role in the work context is assumed to have experience such as senior developer.
However, the great senior developers are the ones who quickly admit when they do not know, have not gone through or are not sure. This fact will allow them to learn it. This feature in a senior developer fits perfectly with the previous points in which we described that senior developers try to find the “Why” to problems and that they are people who “investigate.”
Therefore, and burn it on your mind:
Being a senior developer does not imply knowing everything but you have the ability to find solutions to problems.
Of course, these solutions do not have to be optimal the first time you find a solution. In the constant process of learning and improvement, you can improve the solution provided to your problem.
In this post, we have presented the personal qualities that a developer must have in order to become a great developer and over time reach the position known as senior developer.
The developers do not become a senior developer overnight simply with the passage of time but it is an inherent process to the person and therefore, soon you can detect those people who will end up being great professionals in the sector.
In any case, any of the points analyzed in this article will make you a better professional and are good practices for your day to day as a developer.
Originally published at https://www.carloscaballero.io on September 27, 2019.