The difference between “June”, “Middle” and “Senior”. And what to do to go up one level





The level of the developer is not necessarily determined by many years of programming experience: “June” may well be older than the “senior,” it all comes down to professional skills. This does not mean that the senior developer should be a specialist in everything, but it can be said with confidence that his skills are much more developed than among the junior and intermediate level developers.



But developers of various levels are distinguished by something more than the ability to actually program. So what exactly are the differences?



Translated to Alconost



Knowledge



Obviously, the senior developer has much more extensive knowledge. For a junior developer, learning design patterns, architecture, testing automation, methods for improving productivity and ensuring security, etc. is a great way to bridge this knowledge gap.



It is important to know how the software should be created. But just knowing all this does not mean being a higher level developer. Knowledge is not a key difference, but only one of the factors.





Photos - Clem Onojeghuo , Unsplash



Programming



Despite the opinion of most ordinary people, programming is not talking to a computer. Programming means communicating with people and giving instructions to computers. After all, the code eventually compiles and turns into zeros and ones.



The code should make sense for those who will work with it in the future. The team that picked up the project for someone else should be able to open its source code and start working on new features or fixing bugs. And here there is a significant difference between the “June” and the “Senior”.



I will not take into account mid-level developers in this comparison, as far as programming skills are concerned, they represent a kind of transitional area - rather closer to the level of senior developer. Basically, the "intermediate" position is determined by experience, because usually the "middle" manages to go through the entire development cycle at least once, as well as make many simple mistakes and learn from them.



How to calculate "June"



Younger developers are inexperienced: sometimes they are graduates who are just starting to work full time. In their head, the main task is to make the code work. If the application works, then it is good.



Writing simple code is a difficult task. And the younger developers are not able to do this: usually their code is quite peculiar. You can recognize them by bizarre one-liners and excessively complex abstractions - this is how the "jones" strive to show themselves and try to make others understand how well they can program. But this is the wrong approach.



Junior developers focus on the “computer” part of the code, overlooking the “human” part.



How to write the code "seniors"



Looking at the code of a senior developer, you might think: is that all? Where is the rest? A fairly experienced developer writes simple, understandable, and, perhaps, sometimes even too straightforward code - and this is one of the most important qualities when it comes to programming. "Senior" follows the KISS principle, which states that the code should be simple and clear: "Keep it simple, stupid"



Therefore, the senior developer has a completely different approach to writing code: it takes into account the convenience of further support and scalability. This is completely different from the thinking of the junior developer: the "senior" thinks about those who will work with the code, and the "June" is important in the first place to make the code work.



Not programming one



In addition to programming skills, there are other factors that can tell what kind of developer is in front of you.



Junior developers, as a rule, perform the simplest and most important tasks; they do not develop architecture. Mid-level developers also do not develop solutions, but simply perform tasks, but they are less controlled - if the task is quite typical. But the "seniors" can develop the application completely independently.



This does not mean that the senior developer does not have questions along the way: any of us has a lot of questions every day, and the "seniors" are no exception.



The difference is that the latter know how to ask the right questions and what to do with the answers received. Less experienced developers can ask the right questions when it comes to their usual tasks, but in more complex cases they have to seek help.



A senior developer is never lost and knows how to act correctly, having received an answer to a question. This does not mean that he will not ask others for advice - sometimes the best solution is to seek help from those who have more experience in this field.



A mid-level developer should also be able to ask the right questions, unless these are very difficult tasks requiring a deep level of knowledge.



But in the case of the "June" should not be expected that they will be able to ask the right questions: they have not enough practice, so they should be led by more experienced colleagues. The junior developer should be provided with the necessary resources or a good push in the right direction.



Go to the next level



We all want to improve, including professionally. But what steps can be taken to move to the next level?



From June to Middle



Novice developers do not have rich experience, so it is important to go through the entire development cycle at least a couple of times - this way you can meet many traps on your way and learn to avoid them.



As for programming, you should learn how to write simple code: imagine that another person will work on the project after you. In addition, you will have to learn how to debug - this will deepen your understanding of what happens during the program.



You also need to familiarize yourself with the best practices and learn more about architecture, performance, security, etc. Close the knowledge gap that separates you from the middle level.



From the "middle" - to the "senior"



Mid-level developers can be tricky to get higher: some stay at that level all their careers.



The senior developer knows in which cases a compromise can be made, and when this cannot be done in any case - because he managed to test it on his own bitter experience.



To go to the level of "senior", you need to be prepared to perform tasks for which no one has a clue how to take. You need to know and be able to do more than just do your job.



In addition, as a senior developer, you should help the less experienced: you for the rest are a lifeline that you can grab when you don't know how to do something.



In light of this, it is not surprising that the "seniors" fully own their technical stack. You need not only to be able to program, but to know all the tools and applications that are used in the company that hired you.



Conclusion



The difference between “June”, “Middle” and “Senior” is not only in many years of experience. Yes, it is safe to say that the latter has much more developed skills than junior and intermediate developers. But knowledge is not the most important factor.



Experienced developers write simpler code and approach it differently. But in addition to being able to program, it is also very important to know what questions to ask and what to do with the answers received. It is the senior developer - that person whose rich experience allows not to get confused and find a solution in any situation.



“June”, to grow further, you need to try to learn how to write simple code and go through several complete development cycles. To rise above the average, you need to focus on learning something more than just the routine tasks of fixing errors. You should be ready to take on the most complex tasks and fully master your technical stack. Another responsibility of a senior developer is to help out the less experienced.



To quote Martin Fowler:



“Any fool can write code that a computer understands. A good programmer writes code that people can understand ”


About the translator



The article was translated by Alconost.



Alconost localizes games , applications and sites in 70 languages. Native translators, linguistic testing, cloud platform with API, continuous localization, project managers 24/7, any format of string resources.



We also make advertising and educational videos - for sites that sell, image, advertising, educational, teasers, expliner, trailers for Google Play and the App Store.



Read more



All Articles