I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

Thoughts written at the beginning

2020 is a year of many disasters. For each of us, living healthy is more important than anything else. Affected by the epidemic, many companies have had a hard time, and layoffs are more common, so for most of them, it is good to keep their jobs, not to mention job-hopping.

But this year I seem to be luckier than many people. I came from a junior college and started from a very low starting point. I blazed a trail among the big factories that value academic qualifications. I joined Suning after two years of work, and I have been in Suning for 3 years, and now I am in Ali. Many people around me are curious, how did I do it? Let’s share with you how I have been promoted quickly over the years. I hope I can bring you some inspiration and help.

This article mainly shares 4 points, which can be read as needed:

  • Share1: Alibaba Java post interview questions
  • Share2: Suning has been developing for three years, how can I accumulate experience?
  • Share3: With 5 years of development experience, how do I switch to Ali?
  • Share4: How to improve the pass rate of Alibaba recruitment interviews?

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Share1: Alibaba Java post interview questions

(1) Zookeeper part

  • CAP theorem
  • ZAB agreement
  • Leader election algorithm and process

(2) Redis part

  • Application scenarios of Redis
  • Data types supported by Redis (required)
  • The data structure of zset jump table (required)
  • Redis data expiration strategy (required)
  • The specific implementation of Redis's LRU expiration strategy
  • How to solve the Redis cache avalanche and cache penetration problems
  • Redis persistence mechanism (required)
  • Redis pipeline

(3) Mysql part

  • Basic elements of business
  • Transaction isolation level
  • How to solve the problem of transaction concurrency (dirty read, phantom read)?
  • MVCC multi-version concurrency control?
  • What are binlog, redolog, and undolog, and what are their functions?
  • InnoDB row lock/table lock?
  • The difference between myisam and innodb, when to choose myisam?
  • Why choose B+ tree as the index structure?
  • What can be stored in the leaf nodes of the index B+ tree?
  • When does the query not go to the (expected) index?
  • How to optimize sql?
  • How does explain parse sql?
  • Principle of order by

(4) JVM part

  • Runtime data area (memory model)
  • Garbage collection mechanism
  • Garbage collection algorithm
  • Minor GC and Full GC trigger conditions
  • GC中Stop the world
  • The characteristics and differences of each garbage collector
  • Parental Delegation Model
  • Relationship between JDBC and Parental Delegation Model

(5) Java basic part

  • The difference between HashMap and ConcurrentHashMap
  • Data structure of ConcurrentHashMap
  • How does the high-concurrency HashMap ring come into being?
  • Volatile role
  • How does the Atomic class ensure atomicity (CAS operation)
  • The difference between synchronized and Lock
  • Why use thread pool?
  • Parameters of the core thread pool ThreadPoolExecutor
  • ThreadPoolExecutor workflow
  • How to control the priority of thread pool threads
  • How to communicate between threads
  • Boolean takes up a few bytes
  • What new features are added in jdk1.8/jdk1.7?
  • Exception和Error

(6) Spring part

  • Implementation of Spring's IOC/AOP
  • Realization of dynamic proxy
  • How does Spring solve circular dependencies (three-level cache)
  • Spring's post processor
  • How is Spring @Transactional implemented?
  • Spring's transaction propagation level
  • The connection and difference between BeanFactory and ApplicationContext

(7) Other parts

  • How to realize the current limit of high concurrent system?
  • The design of high concurrency spike system
  • How to design load balancing?
  • The following article, all mind maps refer to the notes content, interview questions and other information, can be shared for free, you only need: [thumbs up] + [Comment] forwarded the article, point [attention] Add VX: MXW5308 namely Available for free.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Share2: Suning has been developing for three years, how can I accumulate experience?

(1) Be good at using fragmented time and learning to improve yourself

From a junior programmer to a senior developer, there is no other shortcut. From beginning to end, I believe that progress depends on learning, and learning depends on time. Now the Internet industry is basically the 996 trend, and programmers working overtime are more obvious, so using fragmented time to learn is the most suitable way to improve yourself.

First calculate my personal study time account (for reference, for reference):

  1. After getting up every morning, about 30min (going to the toilet, eating breakfast, commuting, etc.)
  2. When going to work every day, use other people's time to search for some technical information and browse technical blogs for about 30 minutes.
  3. Commuting and eating in the evening (I usually take a break + entertainment to adjust my state at this stage, brush Weibo, Moments)
  4. When I get home at night, no matter how tired I am, I will spare 1 to 2 hours to study, read books + watch videos.

*Calculated in this way, the average day is about 2~3 hours, 5 days a week at least 10 hours, excluding weekends.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

(2) Accumulate experience in solving bugs (improve one's own optimization ability)

There is a popular saying on the forum: Most programmers accumulate experience through BUG, ​​and every BUG you solve is your experience.

In fact, this view does not emphasize the importance of bugs, but means that programmers can improve their optimization capabilities by modifying bugs, but this "reform" is very critical.

How to "reform"?

  1. During the development process, I will always encounter big and small problems. When I encounter a problem, I first consider solving it with my own ability. I will look at the relevant source code, or Google the relevant information or technology. Blog. If the problem is too big to be solved, you will consult the boss, and you won't be entangled, waste time without effect, and delay your project progress. Asking the boss is also particular, not to let him solve the problem directly for you, but to think on the basis of suggestions or ideas.
  2. Another meaning is that we need to take the initiative to improve our optimization capabilities. In the process of writing code, I will actively introduce object-oriented ideas and design patterns; I will consider performance optimization (how to make SQL statements faster and how to make virtual machine memory performance better); on the basis of the "stand-alone version" program Ask yourself, how to build a cluster? How to use existing cluster-oriented components? (For example, you can use Eureka to build a service management cluster, and use Ribbon for load balancing in the cluster)
  3. Finally, if you have too many skills, you have to learn some redis, message middleware, JVM tuning, MySQL optimization and Spring Cloud.

(3) Participate in open source projects

In fact, in many interview strategies and sharing, we can get a piece of information: interviewers who have participated in open source projects are often more popular and easier to get offers.

So, why are programmers who have participated in open source projects more popular and sought-after?

  1. Large-scale open source projects are almost all built by large teams and are very complex. From this, it can be inferred that your personal abilities and qualities are passable;
  2. The development of open source projects shows that personal comprehensive abilities have been greatly improved. These abilities include "written communication skills", "understanding how to choose and negotiate things to be handled", "improving Git process/GitLab process", "understanding language grammar", etc. Wait;
  3. Others: build online reputation, maintain motivation for personal progress, etc.

(4) Improve your soft power and make yourself more professional

According to my personal understanding, junior programmers are more like students, while senior programmers need to have the ability to "work on their own". This transition takes time and is one of the directions I have worked hard in the past two years.

Improve your soft power and become a more professional programmer:

  1. Learn to communicate proactively;
  2. Improve your ability to solve problems (bug) and accumulate experience in solving problems (bug);
  3. Coordination (wrangling) ability: actively coordinating departments at work;
  4. Learn to cooperate and complete a task or goal together.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Share3: How to change to Ali with 5 years of experience?

Step1: Know yourself and your opponent (understand job responsibilities, plan career growth path)

① Job responsibilities

When applying for a job, we often pay more attention to resumes, but ignore the keyword "job responsibilities". In fact, this often affects our interview results.

As the saying goes, "Know yourself and the enemy, you will never die in a hundred battles." Job responsibilities clearly indicate what should be done, how to do it, and what standards are done. For programmers, the level of technical mastery and subsequent development content must be understood clearly.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

Take any company you can find as an example, let alone BAT first-tier manufacturers

②Growth path

After the first formal work, I thought about my future development direction very carefully. In fact, the sooner the programmer's growth trajectory (promotion path) is determined, the better. The direction of programmers is roughly divided into technical post and management post, and the abilities that are valued in these two directions are still very different.

The growth path is as follows:

  • Management post: beginner → technical manager → technical director → vice president → president
  • Technical post: beginner → senior engineer → technical expert → domain expert → domain authority

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Step2: Formulate goals (set clear, measurable, achievable, time-limited goals)

In the workplace, you must set your own goals, so that you will inevitably be reduced to "salted fish". If you want to promote quickly, you must start with your goals. The goals need to meet the SMART principles:

  • Specific
  • Measurable
  • Attainable
  • Relevant
  • There is a clear deadline (Time-based)

To put it simply, my operation is to split my goals in stages, such as what stage do I need to reach in 1-3 years, and what stage should I reach in 3-5 years, and then continue to split in this stage. Establish a small goal, and then constitute a big goal, the overall goal, so that it will be much easier to achieve.

Step3: Good at thinking (cultivating reverse thinking, optimizing thinking)

If you don’t want mechanical coding, the way to promote quickly is to change your thinking first, start to adjust slowly, be good at thinking about some problems, and cultivate reverse thinking and optimization thinking.

The so-called reverse thinking is to ask yourself why? Such as:

  • Why is this data needed?
  • Why do these things?
  • Why sum up?
  • Why plan?
  • Why do code reviews?

Optimizing thinking is to do things better. Even if it is tedious, there is room for optimization, including efficiency and effect. Everything has room for optimization, but what is missing is the eye for discovery.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Share4: How to improve the pass rate of Alibaba recruitment interviews?

(1) Prepare resume

The interview will ask you questions based on your resume, especially for developers, after seeing your project experience, they will ask more or less related questions, and even first-line Internet companies will ask questions about the project, so be prepared This part of the resume is particularly important.

When preparing a resume, it must be true. Fake resume is a taboo in the workplace, so remember. Secondly, it is necessary to clearly distinguish the difference between the three words "understanding, familiarity, and proficiency". The degree of mastery of the technology stack is closely related to the difficulty of the interview questions.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Of course, in order to help you pass your resume smoothly, I have also prepared some template gift packages, including my own resume. You are welcome to refer to:

The following article, all mind maps refer to the notes content, interview questions and other information, can be shared for free, you only need: [thumbs up] + [Comment] forwarded the article, point [attention] Add VX: MXW5308 namely Available for free.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

(2) Try to find inward push

School recruitment is easy, but social recruitment is difficult. This is a common phenomenon in the first-line Internet. The requirements for fresh graduates are relatively loose, but for people with a certain working life, the technical requirements are relatively high. Therefore, many people who want to enter the first-line factory halfway through It is said that social recruitment is too difficult, and the resume is too difficult.

In fact, there are some "shortcuts" to take, and you can find some opportunities for internal promotion. Compared with direct social recruitment, the probability is greatly improved.

(3) To master a certain breadth and depth of technology

Since it is a technical post, companies have their own corresponding requirements for the breadth and depth of technology mastery, and academic qualifications are not that important in the face of technology, so striving to improve their technical level is the primary goal of programmers.

So, to what extent should the technology be mastered? I specially sorted out the technical route, as shown below:

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

How do I master some popular technical frameworks? In fact, I have a habit of recording learning experience and taking study notes, so I also have my own summary and experience of some technologies.

  • Java core growth notes:

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

  • SpringBoot core technical notes:

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

  • SpringMVC development core notes:

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

  • Deep analysis of Spring source code:

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

  • Redis learning summary

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

(4) What department does it face? What do you like to ask in an interview?

Before the interview, you must know in advance what department you are interviewing and do your homework. For example, in business units such as Alipay and Ant Financial, the projects are mostly related to finance, while Taobao and Pinduoduo are e-commerce. These differences will also affect the focus of the interview.

As for what the interviewer likes to ask, you need to rely on the usual brushing of questions to accumulate. Brushing and brushing the questions, to learn from one another, is still very helpful to the interview.

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

I have a college background, joined Suning in 2 years, and changed to Ali in 5 years. How did I get promoted quickly?

 

Proverbs written at the end of the article

read more, walk more. As a programmer, it is said that your career will end at the age of 35. In fact, you don’t have to believe in this kind of age anxiety. There are also many programmers at the age of 35. If you don’t want to be eliminated by the market, first of all, you are valuable, you don’t have In order to gain value, no matter what profession it is, it is eliminated by society.

Learning will never let you down. What you get from learning will always be your most precious wealth.

The above article, all the mind maps refer to the notes content, interview questions and other information, can be shared for free, you only need: [thumbs up] + [Comment] forwarded the article, point [attention] Add VX: MXW5308 namely Available for free.

Guess you like

Origin blog.csdn.net/weixin_45132238/article/details/112566580