preface

Recently, when chatting with the leader, WE talked about some ideas about programming, which benefited me a lot. One question in particular stuck out to me. And I’ve been asked this question several times in past interviews. I repeated what I thought was a good answer. Who knows the leadership listened to, actually laughed, this really let me feel a little less than the head.

What level of programmer are you?

For this question, I believe you in the past interview, should have been asked it. This is obviously an open question with no standard answer. Here’s my answer:

I think I’m an intermediate programmer. Why do you say that? Actually, my definition of elementary is being able to work. I can finish the assigned tasks smoothly and solve some bugs. But what about technology? May stay in the use of the level, did not know and know why.

At the moment, it’s no problem for me to finish my daily work. I also have some deep understanding of certain technologies and can design some architectures, so I think I am an intermediate programmer. As a senior programmer, it is necessary to have a deeper understanding of technology and a strong ability of architecture design to deal with a test of business in different scenarios.

leadership

From what you’ve said, it’s clear that your division is more technical. As you say, it’s like being CRUD and using tools such as Redis, RabbitMq is a beginner programmer. Then you learn the other components and understand some of the principles, and you become an intermediate programmer. When you learn more, you become an advanced programmer.

Well, if that’s what you’re saying, let me make a list of everything I need to learn. One by one, you become a senior programmer. If so, there should be many senior programmers. It’s clear that advanced programmers are in the minority in our field. What you think of as a senior programmer is probably just a qualified programmer in my case. Not exactly a senior programmer.

Leader: SpringBoot is an excellent framework, right?

Me: Yes, blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.

Leader: Is the programmer who developed the SpringBoot framework a senior programmer?

Me: Yes.

Leader: Then why is he a senior programmer?

Me: Uh uh uh uh!

Leadership:

A qualified software is not achieved overnight. In terms of what we do, we build it line by line as a team. When I assign tasks, I will rank them in order of complexity, and then assign them according to your ability. For example, give some simple work to interns to do. And then hand over the more complicated ones to the more experienced ones. When there are personnel changes, others can take over quickly.

Leader: Then the problem is, how to get someone else to take over quickly?

Me: Well…

Leader: It’s very simple. If everyone writes the same code, looking at everyone else’s code is like looking at your own. Doesn’t that solve the problem?

Me: Yes.

Leader: So how do you make everyone write the same code?

Me: We can use the plugin of IDEA developed by Alibaba to scan the code, formulate the corresponding code specification and implement it.

Leader: How many of our rules have you followed?

Me: COMPLY with a part, a part did not comply with.

Leader: Don’t you think it’s broken, making the code style inconsistent?

Me: Well, that’s true.

Leader: No matter the plug-ins of Alibaba or the development specifications of the company, only a small number of constraints can be implemented, and there is no way to achieve strong constraints. You can choose to follow or not follow. And ask why they don’t. You can give a lot of reasons, like a tight project, short time.

Me: Ha ha ha.

Leader: Is there any way to achieve strong constraints?

Me: Well… I think so.

Leader: What is it?

Me: Uh uh uh! I don’t know, embarrassed smile.

Leader: This thing is the framework.

A framework is a frame, which refers to its constraint, and a frame, which refers to its support. A basic conceptual structure used to solve or deal with complex problems.

Leader: Why do you say so? In the sense that you write code, there should be no forgetting to write; This one instead.

I: This is definitely not possible, IDEA will remind, and compilation can not pass.

Leader: This is right, do not write in accordance with the rules, directly report to you wrong. If we encapsulate the various custom development specifications into a framework that you can use to form strong constraints. So you can write the same code. This is why we encapsulate the framework. You can add whatever you want. Open source frameworks, after all, are for the vast majority of people and cannot be all things to all people.

Me: Oh so so, learned learned.

Me: So how do you rank programmers?

Leadership: Entry-level programmers can work with their skills, whereas intermediate programmers can get things done and get others to take over quickly. Advanced programmers turn beginner to intermediate.

conclusion

Entry-level programmers can do the job based on their skills. In addition to getting the job done, intermediate programmers have the ability to get others to take over their work quickly. That means writing code that is readable, and making it readable requires a lot of effort. For example, proper naming, corresponding abstractions, module division, etc. Advanced programmers turn beginner to intermediate.

It’s easy to say, but difficult to implement, and encapsulating frameworks is just one way to do it. If you ask me what else I can do, I don’t know, because I’m not a senior programmer. According to my current knowledge, if I want to become a senior programmer, I should not only consider problems from the technical direction, but also consider problems from the perspective of people.

At the end

Thank you for seeing this to the end, so what level of programmer are you?

If you feel helpful to you, you can comment more, more like oh, you can also go to my home page to have a look, maybe there is an article you like, you can also click a concern oh, thank you.