Work experience is not the only standard.

The Translation Bureau is a compilation team that focuses on technology, business, workplace, life and other fields, focusing on foreign new technologies, new ideas, and new trends.

Editor’s note: Where is the difference between programmers? What criteria are used to distinguish between junior, intermediate, and advanced developers? The author of this article, Daan, believes that working hours are not a yardstick for distinguishing between people. Advanced developers have a unique way of thinking, no longer stuck to complete daily tasks, but more inclined to find problems and solve problems. The junior developers, due to their inexperience, can only follow the instructions step by step, and the operation on the code is generally more fancy, rarely considering the needs of other programmers. So, what do you need to experience from beginner to advanced? This article was translated from Medium.com, originally titled “The Differences Between a Junior, Mid-Level, and Senior Developer.”

What is the difference between junior, intermediate, and advanced programmers?

Image source: https://www.pexels.com

As a developer, whether you are in the beginner, intermediate or advanced stage depends not only on the length of time you participate in programming, but also on the technical differences between people, sometimes even junior developers are even more advanced. Developers are older. However, this does not mean that advanced developers must be full-stack experts, but advanced developers are certainly far more skilled and flexible than junior and intermediate developers.

However, this technical difference does not just refer to coding skills, so what is the difference between them?

Knowledge

First of all, advanced developers are more knowledgeable than junior and intermediate developers, and are familiar with design patterns, architecture, automated testing, performance, security, and more. The knowledge system is also relatively comprehensive. As a junior developer, getting the gap between knowledge and intermediate and advanced developers is the best way to start.

Although understanding the operating procedures of software development is a very important technology, just knowing these things does not make you a senior developer. It can be seen that the knowledge reserve is not a developer.The biggest difference between it is that it is just one of the factors.

Programming ability

In fact, programming is not just communication and interaction with a computer, but a communication with people and guiding the computer. Finally, the code in programming is compiled to 0 and 1.

The code should be legible and must be easy for other developers who use it to understand and get started right, that is, a new team that has never seen this code before should be able to run it directly and handle it. , add some new features, or fix bugs. From this perspective, this is the difference between junior developers and advanced developers. After all, everything is the same. It is easy to make yourself understand. It is difficult to let others understand.

In the comparison of this project, we will not consider the situation of intermediate developers, because the intermediate developers are in the gray area of ​​programming, they are between the primary and the advanced, and may be more advanced. However, this is mainly related to experience, because intermediate developers may have experienced at least one complete development cycle, they have made many simple mistakes, and learned from them, so it seems that the experience is more abundant.

How do you identify junior developers?

The junior developer lacks experience. Many juniors have just graduated and just started working on their first full-time job. Their mindset is usually: as long as the code can run. The software that works fine and the good software are almost the same in their view.

In programming, it’s not easy to write clean and concise code. This is precisely the ability that junior developers can’t. The code written by juniors usually has a fancy component. Therefore, you can identify junior developers by judging whether a line of code is concise or embarrassing, whether it is direct or abstract. Some junior developers tend to show off their skills in this way, trying to get other developers to know how well they code, but the truth is always the opposite.

So how do you identify a senior developer?

When looking at the advanced developer code, you might think: Is this all? What about the rest of the code? How is the content less than I thought? The style of writing code for advanced developers is more concise, and even seems to be “pediatrics”, but don’t underestimate this part. This is one of the most important qualities developers can have in programming, namely: Advanced Developers follow the KISS principle: keep it simple, stupid.

This is because the way senior developers and junior developers think about code is different. Senior developers will consider when writing codeIts maintainability and scalability, junior developers are more concerned about the present; senior developers are thinking about how many people use the code, what features they need, and junior developers may just consider letting the code work on the computer. Only.

What is the difference besides programming differences?

In addition to coding skills, there are other factors that help us determine what type of programmer a person is.

Generally speaking, junior developers perform the simplest tasks or smaller tasks, they don’t do any architectural design, and intermediate developers don’t reach the stage of designing solutions. They just perform the tasks that are issued. . However, the difference with junior developers is that they can generally be done independently as long as they are assigned to relatively routine tasks. And advanced developers are no longer just semi-mechanically following the instructions, they can completely develop their own applications.

Of course, this does not mean that senior developers will not have any problems along the way, the problem is inevitable, and no one can change this, as is the case for advanced developers.

The difference is that advanced developers know how to ask the right questions and how to deal with them. Intermediate developers can ask the right questions in relatively routine tasks, but they need the help of others in more complex tasks.

Although in general, senior developers don’t get lost in their operations, they know how to follow up with the right actions, but that doesn’t mean they won’t ask other developers for help. Sometimes it is best to ask for help from other developers with more experience in the field.

Of course, mid-level developers should be able to ask the right questions, as long as they are not assigned to highly complex tasks that require in-depth knowledge, and are generally handy.

To be honest, we don’t have to expect junior developers to ask the right questions directly and fix them. Because junior developers lack experience, they need guidance from more experienced people. Therefore, junior developers need to get the necessary resources or be guided to move in the right direction step by step.

Go to a higher level

Everyone wants to surpass themselves and become a better developer. But how do you act to take it to the next level?

  • Beginner to Intermediate

Because of the lack of experience of junior developers, it is important to go through several complete development cycles. In the process, you will fall into many traps and gradually learn how to avoid them.

On the programming sideIn the first place, junior developers should learn how to write simple code. Think about the next person who wants to deal with this code. If you see some embarrassing statements, it should be a headache, so the language that is as concise as possible is the embodiment of programming ability. Also, as a developer, you should also learn how to debug, as this will give you a better idea of ​​what happens during the running of the program.

In addition, you should be familiar with practical knowledge, understanding architecture, performance, security and other projects to reduce the knowledge gap required to reach the intermediate level.

  • Intermediate to Advanced

From intermediate to advanced can be quite difficult, and some developers may stay at the intermediate level throughout their careers.

Unlike the intermediate level, senior developers know what can and should not be done, and these are the lessons that have been accumulated in the past.

If you want to advance to advanced development, you must be prepared for tasks that no one knows how to solve. At the same time, you know more than you need to do.

As a senior developer, part of your job is to help less experienced developers. When other developers don’t know how to do something, you are their backup force.

Advanced developers must have their own technology stack, not just coding skills. You need to know all the tools and applications you use in your company.

What is the difference between beginner, intermediate, and advanced programmers?

Image source: https://www.pexels.com

Conclusion

The distinction between junior developers, intermediate developers, and advanced developers does not depend on the specific years of work. In work, the length of time does not represent one’s ability. Of course, it’s safe to say that advanced developers are more proficient than junior and intermediate developers, although knowledge is not the most important factor.

Compared with junior developers, advanced developers write code that is more concise and has a different way of thinking. But the difference is not just coding skills, but also the importance of asking questions and solving problems, and having the creativity to think independently. Only experienced senior developers can know how to open in any situation.Send a job.

As a junior developer, if you want to grow, you should focus on writing simple code and going through multiple complete development cycles; if you want to move from mid-level developer to advanced developer, it’s best to focus on learning, not just Just complete a fixed daily task. You should also take the initiative to take on the most difficult tasks and become the head of the technical team. After all, the senior developer’s other responsibility is to help the inexperienced developers.

Finally, ending with a sentence from Martin Fowler (now Chief Scientist of ThoughtWorks): “Any fool can write code that can be understood by computers, and good programmers can write code that humans can understand.” Code that a computer can understand. Good programmers write code that humans can understand).”

Translator: Xiaozhuo