preface

I’ve been hiring for the last few months, reading resumes almost every day and interviewing people week after week. During this period, I found that many people have made mistakes in technology learning and application, so I specially write this article to talk about this matter. Some of the viewpoints and contents mentioned in the article have also been mentioned to my friends in the morning meeting for many times. Read this article if you want to make a name for yourself in the tech world.

What does mastery mean?

When it comes to resume writing, it’s common to boast a few “mastered” skills, but what does that mean? The basic definition of mastery is: to understand deeply and to master proficiently. By comparison, does the technology stack on your resume reach this level?

In my case, there are almost no interview questions prepared. The interview questions come from what is on your resume. For example, if it says “master Spring Cloud microservices”, it will have an in-depth discussion based on the knowledge of microservices. As far as I know, most interviewers do the same thing.

The benefits of this are obvious: you don’t get bogged down in meaningless questions and answers because the candidate hasn’t used the technology. What’s the point of interviewing for this when no one else has? But had used, still understand not thoroughly, that can reflect a few problems.

What will the interview ask?

What questions are asked about the tech stack of mastery? Using Spring Cloud microservices as an example, imagine seeing a bunch of components on your resume, such as Nacos (or Eureka), Consul, Ribbon, Feign, Hystrix, Zuul, etc. Three types of questions are commonly asked:

  • Technology selection: For example, why did you consider using microservices for your project? That is, why use microservices, and what are the benefits of using microservices?
  • Technical rationale: For example, if Nacos (or another stack) is used in a project, can you tell us what it does in the project and how it works?
  • Technical details: For example, when using Nacos, did you encounter XXX problems, and how did you solve them?

The above three questions, isn’t that what we do when we use a technology in practice? When using a technology, compare the selection first to see whether it conforms to the current business scenario; Then, understand its implementation principle and mechanism, so as to better use; Finally, there are a lot of problems when it comes to actual practice, whether they can be sensed and how to solve them…

Don’t just use it

Through numerous interviews and observations, it is found that most people’s pursuit of technology only stops at the level of “knowing how to use”. System to use a certain technology, and then online search for an article “how to quickly integrate XXX”, according to the steps of the article, copy code into the project, running up no error, this is done…

What is Search Engine oriented programming? This is typical of search engine oriented programming.

During the interview, ask candidates to explain how a stack works, and many candidates start talking about how to configure it. And these are people who have been working for five to eight years, which is really a shame. Do not understand the working mechanism, how to troubleshoot problems?

Is mastery for interviews?

Interviews have been mentioned above, but is mastering a technology really just for the interview? To be honest, I am not ready for an interview now, but I am trying to master most of the technology stacks used in the project. I don’t write much code anymore, but at the work level, only if I am proficient can I help the team. In fact, it is more important to have fun, find other people’s excellent design ideas, clever code implementation.

Mastery brings personal branding

There’s another very, very important motivator, and that’s personal branding. For example, when you’ve been in the software industry for years, how do you make yourself instantly recognizable and memorable? Write a stack of technology? Definitely not.

It is only when you mention a field, a technology stack, that people immediately think of you; Only when others have problems that they can’t solve and can only turn to you; That’s how you build your personal brand.

So how do you achieve this effect? It has to be a real mastery of a particular stack in a particular domain, not just one I’ve used.

So, how to achieve mastery?

Everyone has their own rhythm and style of learning, so here are just some of my own “dumb ways”. When I am exposed to a new technology stack and want to learn more about it, I generally follow the following steps:

First, search out a large number of relevant articles, basically dozens of articles, according to these articles to write demo practice. Each article is written by a different author, who will have different perspectives, opinions, and introduction methods. Basically, 70-80% of the knowledge points can be understood (or understood) through these articles. This level focuses on breadth.

Second, videos or books. After the first step, you know what the framework does, what its strengths and weaknesses are, and how much knowledge it covers. At this point, you need to string them together through a series of videos or books. Compared to writing articles, videos and books take more time to write, and the content is better quality and systematic. This level is about depth.

Third, practice + output. If you can do it in production, that’s great, but if you can’t do it in production, write a Demo. Then, the most important thing is to export, whether it’s sharing internally, writing articles, recording videos, etc., to export what you’ve learned. Practice is the sole criterion for testing truth. You will see at once if you have mastered it. This level is also at the heart of Feynman’s learning method, where output is learning.

Fourth, read the source code and communication. We’re technical people, and the good thing about reading source code is that it not only gives you an idea of how to implement it, but it also helps you understand how to implement it with good code. In this process, many people will have no idea what to learn, do not know what to watch, which requires communication. Talk to other people who have also used the technique, and they will share their potholes in their practice, and you can research why there is a pothole and how to avoid it, which is another dimension of learning.

Everyone talks about the 10,000-hour rule, but it really doesn’t take that long to master a stack. Repeat the steps, and you’ll find yourself mastering the framework in weeks, if not months.

summary

Factitious what can be anxious? That’s because you don’t exist. No one needs or cares about you. Why do people have no sense of existence? That’s because you’re worthless. Why do people have no value? It’s what you do that other people can do, even better, and it’s fungible. So how do you enhance irreplaceability? It is necessary to do in a certain field others can not or temporarily can not touch the level, encounter problems can only think of you or find you to solve, only this one basic enough.

About the blogger: Author of the technology book SpringBoot Inside Technology, loves to delve into technology and writes technical articles.

Public account: “program new vision”, the blogger’s public account, welcome to follow ~

Technical exchange: Please contact the weibo user at Zhuan2quan