In this video I want to discuss the levels or programmers junior, middle, senior and how they are different from each other based on my programming, interviewing and teaching experience in a last 10 years.
I want to bring you more realistic vision at least to understand your own level and to be sure that you are evaluated correctly on the interview
So let's jump right into it.
So the main problem in this 3 levels is that there are no strict rules to understand the level of the programmer and to at least say what makes a programmer a junior, middle or senior. It is different in different companies and it is completely possible that in one company a programmer is working on the senior position and he does on interview in other company where they think that he is at the beginner of the middle level. Because the are no rules every company makes each own rules. Also there is no defined structure of all the knowledge that person needs to know for specific level.
So first let's talk about junior. Companies expectations start with zero knowledge because that understand that this is probably the first job and people might have no experience at all to asking the amount of knowledge this is needed for middle position. As always it depends on company.
My own opinion is that until becoming a middle developer person needs to have production experience. Which means that he needs to work on real production project with it's problems, clients, solutions and way to organise everything.
Normally person is considered junior 1-2 years of experience.
One more problem here is that a lot of offline courses are promising to skip junior position and find directly middle position after passing this courses. As you understand from my previous point it's simply not possible because this courses are lacking real production experience. Yes they can have some ticket system or servers project which are trying to be real but it's all isolated from the reality. So as always the best way to get production experience is to get a job in the company at whatever programming position they have. Because programming is not only about writing code, it is also about understanding how all things organized, communication with business, getting real production emergencies, real deadlines, responsibilities and much more. You simply can't emulate this.
Now I want to talk about seniors. Because it's easier to define a senior than a middle. So normally there is a list of hundreds things in each company which you need to know in order to become a senior and of course they are often really different better 2 random companies.
Here is my opinion that has nothing to do with technologies at all. Programming is just a tool to solve problems of the business. So let's look on this from business perspective. For business senior is a person that can successfully solve problems of the business alone without guidance and help. And this is enough to be a senior. It doesn't matter what you know and what not know. It's more about production knowledge than patterns, good code or hyped tech. If he can solve difficult issues and problems especially on production in the case of emergency than he is a senior.
Also the key of senior is to solve business problems and communicate with not tech people. He needs to say how we can improve or change the task to make it faster or better.
Here is an example: Business says that they need this feature and it is planned like this and that. Senior needs to fully understand what business wants to achieve, understand how much time it will take and how is it possible to solve the same problem faster or easier because he has experience and knowledge to do exactly this.
Also it's worth mentioning that programming is super popular now. And with more and more people all levels are getting lower and lower. So here I'm talking more about normal level and not 20 years seniors. Normally senior level is 4-5 years plus when person had enough time to learn a lot, make a lot of mistakes and see best or worst solutions to the problems.
And here we are coming to the middle level. Now you can better guess what is it about. So it's something in between junior and senior. Normally it's 2-3 years of experience. It is a person that has some experience and can write code but he can't do it without guidance or helps. It's also more about writing code than making architectural decisions or finding best ways.
So this where most realistic levels of programmers without 0 mentioning of any technologies. I hope that this point will help you to understand your level better or the level where you want to get.
Also if you want to improve your programming skill I have lots of full courses regarding different web technologies.