bud

I did not study computer in university, but mechanical engineering. I only had access to assembly language and a little C language. At that time, I had a little computer programming foundation, but I didn’t like this major at all.

Mechanical this major I not only do not like, but also completely can not see the future, like a pool of stagnant water, oneself like a frog in warm water, gradually die. Fortunately, the moment before I died, I finally figured it out. Change careers! In any case, I also want to lose the “professional” this heavy burden, with the sinkhole professional said never see again.

Gradually, I will not go to mediocrity and compromise to spend the young years, life should be to pursue the true self from the heart, rather than be satisfied with the status quo, tend to mediocrity and compromise.

Remember just turned it, because his is still very weak, the base of the wall everywhere, the better life trough after graduation, when I find a willing to take me to start a small company, and the small company is young, comparing technology is front, have no history of baggage, I from the beginning his career in contact with the micro service architecture related project, So that in the later work to the enlightenment of the thought, in this Thanksgiving.

As a result of his low starting point, how to walk out of this trough?

In my spare time, I never stopped learning, always adhering to the “best performance today, is the lowest requirements of tomorrow” to strict requirements of myself, I have always believed in myself, believe that as long as you work hard, the previous lost will certainly come back.

During the period of amateur study, I also understand from making it a lot of good open source project, including ali had more open source projects, and felt that ali’s technology really cow force, so I also began to slowly get to know the company, ali dream from then began to sprout, I set a goal for himself, the future must be in ali.

process

After having a goal, only the process remains. In the process of achieving the goal, I have always insisted on doing the following things.

1, learn to summarize

Writing technical blog is very helpful for a programmer in his growth path, especially for a programmer who just started his career. Therefore, I set up my own blog through GitHub Pages at the beginning of 2017, and recorded my study and working practice in one article. The habit of writing blog makes me develop the habit of summarizing, deepen the depth of understanding of each knowledge point, and strengthen my memory of each knowledge point. So far, every time I touch a new knowledge point, I will use a complete article to record it, otherwise I feel like I have not learned the same.

, or you will forget what is called good, blogging is a way of taking notes, and programmers need to contact a lot of new knowledge every day, when you look back, basic can’t try to recall all knowledge points are very full, you through your own blog, this time will be able to help you find it quickly.

2, snooping source code

In this process, I kept the habit of reading the framework source code, a lot of times I would with a purpose to find out, sometimes in order to solve a Bug, sometimes with study objective to try to understand their internal structure and design principle, and reference to the work, I work at ordinary times used in a lot of good design, a lot of time to draw lessons from relevant excellent framework design.

Reading source code is also able to “know why” the best way, I this person is a characteristic, as long as I used some of the technology, will try to understand its underlying principle is how to achieve, through with the purpose of constantly bottom search, I have a more profound understanding of some of the underlying technology.

3. Meet the challenge

“When it’s hard for you, it’s time to grow.”

I am in the process, I constantly received a lot of challenges, in the process of meet these challenges, I got a huge growth, remember the first time design unified payment platform, I have used design patterns, succeeded in many third-party payment platform interface is unified, and has good expansibility, the level of coding to me had a huge promotion; In the process of implementing automatic deployment operation and maintenance, I tried to design a set of automatic deployment system based on Jenkins Pipeline and Docker, which enabled me to have a systematic understanding of container arrangement and automatic operation and maintenance. I learned Kafka from 0 to 1 and was responsible for the maintenance and technical support of hundreds of billions of Kafka message clusters, which improved my ability to solve problems in this process. I customized a set of cache service platform based on Netty and K8s Operator, which improved my ability of architecture design in this process. When I received the request to use K8s Operator as the underlying technical support of the cache platform, I was completely confused. I had no idea what it was at that time, and there was not much information on the Internet, so I had to find some relevant open source projects on GitHub and understand their implementation. Through continuous practice, finally realized this demand. Therefore, don’t flinch when we meet difficulties, learn how to solve it, when you solve it, you will get great growth.

The interview

Next, I will outline the interview process based on memory. Each candidate’s interview is different, just for reference, we can see the story.

1, one side,

Before the Spring Festival holiday, I received an interview invitation from a big man. At that time, I was not ready for the interview, because I had experienced many twists and turns before, and I needed a precipitation stage. But knowing what the big guy’s team was doing, I decided to give it a try, so I set up an interview.

After introducing myself, the interviewer first told me about what their team did and the position of the project the team was responsible for in the company structure. I think the interviewer of Ali did this very well, give me a thumbs up.

Went on to do the project given by the interviewer asked me, I put the project in zhongtong done with the interviewer introduces in detail again, including project background, architecture design, technical implementation details, meet the challenge of how to solve of, then the interviewer project a certain technology for deep excavation, the purpose is to from the project to find your technical depth and breadth, If you don’t have a deep understanding of the technology, or have memorized it in advance, the interviewer will easily find out. Therefore, in your daily work, you need to have a thorough understanding of the techniques used in your projects.

In the project of weaving after asking the question, will give you some scene design, the scene design problem is usually team encounter practical problems, this is very test a person’s work, the accumulation of at ordinary times in this part, also mixed with some common solutions to let you to think, Lock, a distributed transaction, such as distributed power flow processing, cache invalidation strategies, such as peak clipping, and so on, from this part of the interviewer can see how much your technical barriers, and the evaluation of this part for a proportion is very high, because ali’s interview is very the attention from the actual ability to solve the problem in the scene.

Finally, I will examine your knowledge, Java JUC and package delivery is particularly important, so this part of the content needs to focus on sorting, such as CAS and AQS principle, AQS based on various locking mechanism (fair, unfair), threads, thread pool operation principle and so on; The JVM will ask about more practical tuning scenarios, as well as the mechanics of common garbage collectors and their pros and cons. There are also some general back-end frameworks to familiarize yourself with, such as databases, Spring, and so on. This part mainly tests how well you have mastered the basics.

From the above interview content, ali interviewers pay great attention to inspect a person’s ability from the practical point of view, and the scope of investigation is very wide, each candidate’s emphasis may be different, from my interview experience only to give you a reference.

2, 2 face

Shortly after the first interview, I received the first notice, which was very fast, and the second interview with the interviewer was scheduled for the next day. Two in front of a night of insomnia, because too nervous, the journey of the dream every step will touch my nerve.

Noon ready early, before the interview took a few deep breath, calm yourself don’t panic, soon received a video interview, the interviewer after introducing myself to finish, the interviewer let me from career began to introduce themselves in studying and working situation of each company, because of my early career experience very bumpy and twists and turns, through a few small companies. This part I spent some time with the interviewer describes in detail the course of my current career, including my highlights in each company to get the growth situation, including the work content, met the challenge and is how to solve of, on the technology of sedimentation, because my career is in constant learning, so this part is very good answer, Just tell me your own experience once. In this part of the interview, the interviewer is mainly looking at how each company has grown. Although the interviewer is concerned about changing jobs frequently, they are more concerned about how you have accumulated skills in the process.

Key then the interviewer asked me a relatively good at project, he will be from the aspects of the project background, project architecture design to dig, compared to this part of one side will be more widely, will catch every detail project to ask, when the project is designed by me from 0 to 1, so I was able to answer the contents of this part to the interviewer wants to answer. This is where you need to have a deep familiarity with both the macro architecture and the micro technical details of your specialty project.

Then the interviewer give me a few high concurrency scenarios to solve the problem, this part with a slightly different, these scenes in general will be more wide, usually in the industry already has the relevant solutions, this chapter focuses on you for the technical aspects of breadth, depth, and face the ability to solve the problem, at the same time also can see you at ordinary times the study of technology.

3, on three sides

Soon after the second interview, I received the notice of the second interview (I this process is relatively fast).

Before the interview, I was already at home, and I kept taking deep breaths in the room. I knew that once this was over, I was very, very close to Ali. The closer to my dream, the more nervous I was.

After introducing myself, the interviewer simply asked me some basic information about myself, including school and major. Because my school is a private independent college, the interviewer may not have heard of it, and I am not a major, so I have a little understanding of this aspect.

Then they asked me about my experience and growth at each company, which reinforces the point that the interviewer is very concerned about your past experience, but also about how you have grown in your past experience. In this regard, my answer is basically the same as the second interview. Since I have a little more past experience, the interviewer also added what I want to gain if I enter Ali, and what reason I will leave Ali in the future. Each person’s situation will have different answers.

Then he asked me why Ali had failed in previous interviews and how you had overcome those problems. For this question, if you have interviewed With Ali before, the previous interview evaluation will also be reflected in the internal recruitment system. Since I was interviewed long ago, the interviewer mainly wants to know what I have done to improve in the past.

Then I will ask about my project, which is basically the same as the second interview, but I will examine you from a higher and broader perspective, such as the type of your project. There are many similar solutions for open source projects. Why do YOU need to write a new one? What are the metrics to measure the success of your project? What problems will be encountered during the promotion of the project, and how do you solve them? How do you coordinate and communicate in the process of cross-department cooperation? In this regard, the interviewer is more interested in your soft skills in moving the project forward.

Finally, the interviewer will ask about your weaknesses and strengths and weaknesses to get a sense of what kind of person you are.

I was already at home when the three sides were passed. That night, I received the news that the three sides were passed. At that time, I just wanted to have dinner.

4, HR

The HR meeting was after the Spring Festival. Similarly, BEFORE the HR meeting, I kept taking deep breaths. I knew that as soon as I passed this side, I would almost step into Ali.

After introducing myself, HR also asked me about my past experience, which was basically the same as the previous ones.

Since I had participated in the construction of Seata open source community before, HR asked me about my participation in open source projects, how I participated in open source projects, and what aspects OF growth I gained in the process. In this aspect, the HR mainly wants to know some of your outstanding experience on the resume.

HR will talk to you then project problems, yes, you read that right, HR little sister can chat with my project, he asked me in the location of the project, have any person, feel very difficult to place in the process, I have to start from the project, put yourself along the way some of the difficulties and solutions in detail said again, He also talked about how he worked across departments to make projects run more smoothly. Although they are all about project details, they are different from the technical questions. HR mainly evaluates your thinking ability, communication and collaboration ability, and how to solve problems through your description of the project.

5, About ali pen test

A somewhat special my interview process, generally pen test will be arranged in one side or two side, I didn’t do this interview questions, so I fill in HR after a round pen test questions, questions from ali internal question bank, generally the two topics, one is to implement a function, an algorithm is, what is the specific topic don’t share it, Through the experience of this written test, I think Ali’s written test will pay more attention to the actual scene, instead of transferring one of the original leetcode questions to you.

The above is the general content of my interview, maybe there will be some forgotten points, but in general is the content of the above.

Ali’s interview content is very practical, so if you want to have a better chance in the interview with Ali, you need to constantly settle in the usual work and study, and it is easy to be seen through by the interviewer by cramming.

feeling

Here are some of my personal reflections on the interview experience.

1. Pay attention to basic and deep digging projects

Ali’s interview is very practical and basic, which can be seen from one side, so we need to pay attention to the summary of knowledge points and learn to record. Meanwhile, in the process of doing projects, we need to think more and look at the logic behind each function from the perspective of macro structure and micro technology implementation.

Keep learning every day

The best performance yesterday is the minimum requirement today, and that is what I have asked of myself since the beginning of my career, always reminding myself to improve every day.

The process is beautiful, the moment to achieve the goal is precious

The process of struggle is often the best, and the most enjoyable is the process of getting closer and closer to your dream. Cherish the excitement of achieving your goal at that moment, because this moment is always short, because the road of life is always full of rugged and challenges. When you achieve a goal, you can not be complacent. You need to work harder than ever to meet new challenges in the future.

4. Expression is very important

Presentation skills are very important in the interview process. If you are good at it, how can you put the best out of yourself in just an hour? I’ve seen a lot of people who have great skills but lack presentation skills, which can hurt you in an interview.

5. Look up to the best

In my career, I have met many wonderful people who are my role models and I will continue to learn their strengths from them.

6. Keep loving

From my college days to now, as you can tell, I love programming. Keep doing everything you love.

When you feel difficult, it is time to grow

So far in my career, I’ve faced a lot of challenges, don’t hold back, learn how to deal with it, and when you deal with it, you grow tremendously.

Write in the last

Wx: 295502545, welcome to contact me!

Author’s brief introduction

The author Zhang Chenghui, good at messaging middleware skills, responsible for the company’s millions of TPS level Kafka cluster maintenance, maintenance of the public number “back-end advanced” irregularly share Kafka, RocketMQ series does not speak of the concept of direct combat summary and details of the source code analysis; At the same time, the author is also a Seata Contributor, an Ali open source distributed transaction framework, so he will share his knowledge about Seata. Of course, the public account will also share WEB related knowledge such as Spring bucket. The content may not be exhaustive, but it must make you feel that the author’s pursuit of technology is serious!

Public number: back-end advanced

Tech blog: objcoding.com/

GitHub:github.com/objcoding/