84
头图

Job-hopping cycle span

When did you think

Around November last year, the business line I was in charge of had not been able to achieve results. Moreover, the front-end technical facilities of the entire company were built by me. If I stay in the company, there is no room for growth, so I want to change jobs. During this period, I considered several possibilities:

  1. to work abroad: The source of this idea is mainly to see the experience sharing of a netizen who went abroad to Singapore to work for two months, Shopee 162356a68018c5. I thought it was very interesting, and I wanted to try it. , it is estimated that it is a card degree, so I gave up, and I will think about the possibility of making up for foreign languages later.
  2. Entering a big factory: Many big factories have an academic qualification. Even if it is an internal referral, they will be admitted to the interview process. I was interviewed by Xiaohongshu, JD.com, Tencent, Meituan, Pinduoduo, Shopee, Ctrip, Himalayan and the interview process. , so there are very few big factories to choose from, and finally joined station B

Which companies have you met?

  1. Warm-up phase (late November - mid-December)

    • Caiyun Technology, offer
    • Tianyuan Intelligence, offer
    • One-on-one, offer
    • Ingenuity, offer
    • Galloping Technology, offer
    • Nut cloud, hanging on two sides
    • Leyan Technology, two-sided hanging
  2. Formal stage (late December - late February)

    • Weimeng (overseas e-commerce), one side hanging
    • Bytes (advertising commercialization), one side hanging
    • Bytes (clues in the middle), two-sided
    • Byte (Douyin Life Service), two-faced
    • NetEase (strictly selected), all sides are finished, the final review hangs
    • Qiniuyun (low-code platform), three-sided, no follow-up feedback
    • Station B, offer
    • ZTO Express, offer

How long did it take to review and prepare for the war, how long did it take from interview to entry?

From November to February, I have been preparing successively for 3 months, mainly preparing to review, review, and brush the algorithm
It took almost 3 months from the beginning of the interview to the entry

what preparations did

The following aspects are mainly prepared:

  1. Resume, carefully combing through recent work experience, what you have done on the project, and what technologies are used
  2. Written test, mainly algorithm and programming questions
  3. Technical knowledge point check and fill vacancies

What content did you review and what questions did you brush?

  1. Eight-legged essay
  2. Programming questions, handwriting various methods
  3. algorithm problem
  4. React/Mobx/Vite && Webpack
  5. own blog

Eight-legged essay

There is not much to say about this. I read some articles that are often shared by the great gods in the major communities, and then I made some summaries for basic computer knowledge and network basic knowledge. I probably read the following articles:

  1. browser working principle and
  2. Illustration V8
  3. from multithreading to Event Loop
  4. Front-end interview questions after the year, 80% will go directly to the big factory copy

programming

After brushing the interview questions that are basically handwritten and summarizing the handwriting questions encountered during the interview process, they are basically fine

algorithm

Algorithms are not my forte, I haven't touched them at all. I mainly brushed the LeetCode hot question HOT 100 and Easy difficulty. For the algorithm questions frequently asked by big manufacturers, if you don't understand them, just memorize the answers, such as the classic ones. Reverse binary tree, sum of any two numbers equal to Target, reverse singly linked list, etc.

Later, according to some face-to-face and documents, such as: front-end interview questions after the year, 80% will go directly to the copy of the big factory, and do some targeted exercises and consolidation

frame

The React part reviewed the principle of setState, the principle of diff, and the principle of hooks and fibers. Of course, the depth here is not to read the source code, because the time is too late, but to refer to more articles:

  1. React technology revealed
  2. React Advanced Practice Guide
  3. Vite
  4. Front-end interview questions after the year, 80% will go directly to the big factory copy

Since I use Mobx a lot on a daily basis, I have also been asked in depth by the interviewer. I have built the front-end scaffolding myself and read an article about Mobx in the React Advanced Practice Guide. Mainly understand the main logic of the framework, the principle of responsiveness, and the implementation of dependency collection
In addition, the characteristics of Redux and Mobx are also summarized, because the interviewer will probably ask: What is the difference between Redux and Mobx?

blog

Since I often write podcasts, this is a very big plus point when submitting my resume. I have accounts with the same name in multiple technical communities, and I often publish some articles, which will be favored by interviewers. My recent interview, I have been mentioned by the interviewer, your blog is well written, and the interviewer will ask you questions from your blog, I was asked the following questions:

  • How does Webpack implement hot updates?
  • Choice of React and Vue?
  • Difference between Redux and Mobx?

I have recorded all these questions on my blog, so they are all at my fingertips

What capabilities and shortcomings have you focused on?

  1. Technical part: Algorithms, programming questions, detailed thinking about the framework (not just at the usage level)
  2. Business Part: Summarize your own understanding and thinking about business
  3. Management Section: Induction and Refinement

What questions were exposed in the interview and how to deal with them

Continuity of thinking and expression

During the warm-up in the early stage, the structure of the prepared content was insufficient, and some problems that were not prepared were encountered. Thinking and organizing on the spot, or expressing and thinking again and again, resulted in poor structure and continuity of expression, and the performance was lack of focus and long-winded. , can't answer

Solution: Sort out the overall mind map for several major types of problems. When expressing, follow up the interviewer's focus and select key points for structure.
expression

Insufficient consideration of past experiences

When the interviewer talked about past shortcomings or low experience, the initial answer was a bit superficial, and there were some evasive answers, which were questioned by the interviewer

Solution: Seriously and objectively reorganized the corresponding questions, and reorganized the language to answer from the subjective and objective levels

impressive thing

The feelings of each company

  • Bytes: My own intention is ByteDance, I have faced three departments in a row, followed by ByteDance with two departments, and then picked up by other departments. After facing the back, I am getting more and more emboldened. On the one hand, my own The technical depth is not enough. On the other hand, I feel that the interviewers are very young and will not guide you in terms of your strengths (inexperience in interviewing). In some departments, the interview is OK, but they all hang up, which is very annoying.
  • NetEase Yanxuan: NetEase Yanxuan has the longest process. I have been interviewing for more than a month. After ByteDance hangs, NetEase Yanxuan is my most interested department. The technology stack and business direction match. Some of the things I have to do are also in line with my career development. However, after the four rounds, I was hung up. Unfortunately, it is estimated that other candidates gave me the PK down.
  • Qiniuyun: On the one hand, I asked the eight-part essay, handwritten code, such as implementing a call/apply method, etc. On the other hand, it was very conventional, and asked about the resume. On the third hand, the head of the department came for an interview (product manager). Let me add WeChat, but the subsequent process has not been promoted. I have asked HR many times. The feedback from HR is that I have a good impression on me. I hope to keep in touch, but the subsequent process cannot be promoted. no reply
  • Station B: The whole conversation is okay, it's relatively smooth
  • Nut Cloud: The most impressive thing is the two sides. To start the second front, HR contacted me first, saying that it was an open-ended topic, and I was asked to choose one of the two. A lot of back-end knowledge and server-side knowledge, but the interviewer only asked about the front-end knowledge, and the communication was not very smooth. Overall, I felt that there were problems in the understanding of both parties.

What experiences made me difficult

I didn't get any of the offers from Byte and Qiniuyun

The feeling of the byte surface is okay, but it hangs up the next day, it is very uncomfortable, and the mentality is a bit jumpy
After the three interviews with Qiniuyun, I waited for about a week and didn't give me any feedback. I kept pushing forward, including contacting the interviewers on the three sides and asking for the results, but no feedback was given, and no feedback was given when I hung up.

final choice

At that time, there was only one-to-one offer from the head, and the head was one-to-one. HR was urging me to join the job. The B station and Netease Yanxuan had not finished meeting, so I couldn’t refuse, and it was very tangled. The door is one-to-one. When Zhongtong contacted me, I met another Zhongtong, got an offer from Zhongtong, and then waited for the process of station B and Yanxuan. I was very interested in Yanxuan. However, it was a headache when the Yanxuan was hung up after the final interview. During the Yanxuan process, the official offer was made at station B, and station B was the only choice.

How to overcome difficulties in the process

  1. Set a good strategy, stabilize your mentality
    The process of job-hopping is not to come to a company to meet a company, but to step by step according to your own situation. Like me, when there were relatively few offers in the future, although I was in a panic, I still prepared some bottom-up strategies. This is very important, and when I am a naked resigner, I have been facing for a long time, and my mentality must be stable. live, especially during the Internet winter
  2. Communicate with people, develop ideas
    I will communicate with seniors, reliable colleagues, and reliable headhunters. On the one hand, I can see my shortcomings from their perspective, and on the other hand, I can get help and ideas from them.

Other experiences and experiences

The 4 steps of the interview: resume preparation - delivery strategy - interview and review - offer negotiation and selection

  1. resume preparation
    Resume preparation is not only prepared when you want to change jobs, but you should always make summaries in your daily work. Before you change jobs, you should sort out and summarize these summaries and refine them into resumes.
  2. delivery strategy
    There may be different strategies for job-hopping at each stage of your career. The conventional and useful strategy is to find a few companies to warm up first, and then start to deliver your target company. In the delivery process, the time node also needs to have a certain amount of time. focus on
  3. interview and review

    • The interview can be done through trial and error by some companies. At the same time, in the interview, you must quickly capture the points that the interviewer wants to tap, and express it in concise words to respond to the interviewer. If the interviewer does not find your strengths, you also need to consider guiding the interviewer to show your strengths
    • In terms of expression, if the direct expression is not structured and clear enough, you can use notes or mind maps to sort out first, and then rehearse yourself.
    • Reviewing is very important. Try to make the mistakes you have made not to make a second time, and the content of the review can be accumulated for a long time.
  4. offer negotiation and selection

    • First of all, it is necessary to have a general understanding of your own market price (for large factories, you need to know your own grading, and for small and medium-sized factories, you need to follow the market level). Although this is difficult, it is still possible.
    • If you know your own market price, then in terms of expected salary, you can report more confidently, and it is easier to get a higher increase.
    • It is relatively easy to get more offers and let manufacturers compete with each other through skills. Although each company has its own salary system, recruitment is essentially a market behavior, and manufacturers must follow objective laws.

Summarize

Job-hopping is a mental, physical, and mental activity that must be online

Data reference and sharing

finally

Welcome everyone to join station B, I am waiting for you at station B, feel free to exchange interview experience with me

You are also welcome to pay attention to my blog

High-frequency interview questions

CSS

  1. How to understand css redraw and reflow
  2. What is the width and height of the bottom
    <style>
        .box {
            width: 100px;
            height: 100px;
            padding: 10px;
            margin: 10px;
            background-color: #f00;
            box-sizing: content-box;
        }
    </style>
    <body>
        <div class="box">12312312</div>
    </body>
  1. What is the offset of the span tag in the browser
    <style>
        .test {
            margin: 20px;
        }
    </style>
    <body>
        <div>
            <span class="test"></span>
        </div>
    </body>
  1. Why can't marign 0 auto be centered vertically
  2. What are the rules for controlling z-index
  3. Do you understand the concept of element replacement?
  4. How to solve the 1px pixel on the mobile side?
  5. How many ways can an element be hidden?
  6. Talk about BFC
  7. css selector
  8. What properties does display have
  9. How to implement a three-column layout
  10. css grid layout
  11. Meaning of flex: 0 1 auto
  12. How to implement a square box (with the parent element) adaptive in css

JS

  1. What are the basic data types of js
  2. Tell me what a closure is?
  3. The difference between var, let, and const
  4. How does es5 implement inheritance

    • Prototypal inheritance (pay attention here, it is very likely that you will be handwritten)
    • Parasitic composition inheritance
    • Class syntactic sugar extended to es6
  5. What's new in es6
  6. The difference between map and waekMap
  7. this points to in js
  8. Talk about the difference between setTimeout and setInterval
  9. Have you used function throttling and anti-shake?
  10. Difference between localStorage, sessionStorage, Cookies
  11. What is the output below?
    var count = 100;
    var obj = {
        count: 200,
        getCount: function() {
            console.log(this.count);
        }
    }

    const c = obj.getCount;
    obj.getCount();
    c();
  1. What is the output below?
    var obj1 = { a: 100 };
    var obj2 = Object.assign({}, obj1);
    var obj3 = obj2;
    obj3.a = 200;
    console.log(obj1);
    console.log(obj2);
  1. What is the print result below
    var p1 = new Promise((resolve) => {
        resolve(1);
    });
    var p2 = new Promise((resolve) => {
        setTimeout(() => {
            resolve(2);
        }, 0);
    });
    var p3 = new Promise((resolve) => {
        resolve(3);
    });
    Promise.all([p1, p2, p3]).then((res) => {
        console.log(res);
    });
  1. What is the print result below
    async function promise2() {
        function p1() {
            return new Promise((resolve) => {
                resolve(1);
            });
        }

        function p2() {
            return new Promise((resolve, reject) => {
                reject(2);
            });
        }

        function p3() {
            return new Promise((resolve, reject) => {
                resolve(3);
            });
        }

        try {
            var p11 = await p1();
            var p22 = await p2();
            var p33 = await p3();
            console.log(p11);
            console.log(p22);
            console.log(p33);
        } catch(e) {};
    }
  1. Please describe the execution principle of new
  2. Why Object.prototype.toString.call can determine the variable, but not through Object.toString.call?
  3. Talk about the principle of gc
  4. How does js solve numerical precision problems
  5. Talk about the event loop

browser

  1. Browser caching principle
  2. How can a single page application improve loading speed?

React

  1. Talk about fiber architecture
  2. Talk about your understanding of diff
  3. Talk about your understanding of hooks
  4. Talk about the class life cycle
  5. The principle of setState
  6. Why do some rules use conditions for hooks?
  7. Talk about the principle of react event mechanism
  8. Talk about the difference between useCallBack and useMemo
  9. Talk about the difference between useRef and ref
  10. What are the ways for react components to pass state?

state management

  1. mobx principle
  2. redux principle
  3. The difference between mobx and redux
  4. Features of functional components, different from hoc
  5. Talk about redux middleware

WeChat applet

  1. How is the taro source code implemented?
  2. What is the biggest difference between taro 2.x and taro 3?
  3. What is the principle of WeChat Mini Program?

packaging tool

  1. Talk about the difference between vite and webpack
  2. Do you know about modularization? Tell me about the difference between import and require?
  3. The principle of webpack
  4. Talk about the concept of tree shaking
  5. The principle of webpack hot update mechanism
  6. What is the principle of vite?

Design Patterns

  1. What is the difference between subscribe-publish and observer patterns and what to implement a subscribe-publisher pattern

programming questions

  1. How to implement a deep copy
  2. implement a new
  3. Implementation of Currie Function
  4. Implement a function calc
function calc() {

}
  • For any parameter, realize the accumulation function
  • For the same parameter twice, the result is cached, such as (1, 2, 3), (3, 1, 2)
  • Optimize for cache
  1. implement an apply
  2. For deep copy, variant topics
  3. implement an ajax
function ajax(options) { }
  • On the basis of the implemented ajax, all requests are called, and the results are returned after all the request results are successful.
  • On the basis of the implemented ajax, the request sequence call is implemented. After the first call is successful, the second one is called, and so on.
  1. Implement a repeat function to output log according to the incoming parameters, interval time, and number of prints

repeat(func, inteval, times){ … }

const r = repeat(repeatPrint, 10, 10);
  1. Use the most refined code to achieve the index index of the non-zero and non-negative minimum value of the array
// 例如:[10,21,0,-7,35,7,9,23,18] 输出索引 5, 数值 7 最小
function getIndex(arr) {
    let index = null;
    ...
    return index;
}
  1. What is the output of this code?
const list = [1, 2, 5]
const square = num => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(num * num)
        }, 1000)
    })
}

function test() {
    list.forEach(async x => {
        const res = await square(x)
        console.log(res)
    })
}
test()
  1. Handwriting a unique array conversion tree node
var array = [
    {pid: 4, id: 6617, name: "a",subNode:[]},
    {pid: 5, id: 666, name: "a",subNode:[]},
    {pid: 4, id: 6616, name: "a",subNode:[]},
    {pid: 6616, id: 66161, name: "a",subNode:[]},
    {pid: -1, id: 0, name: "a",subNode:[]},
    {pid: 0, id: 4, name: "a",subNode:[]},
    {pid: 0, id: 5, name: "a",subNode:[]},
    {pid: 4, id: 10, name: "a",subNode:[]},
    {pid: 10, id: 451, name: "a",subNode:[]},
    {pid: 0, id: 98, name: "a",subNode:[]},
    {pid: 98, id: 23, name: "a",subNode:[]},
    {pid: 98, id: 523, name: "a",subNode:[]}
];

var toTree = function(tarArray) { }

toTree(array);

algorithm problem

  1. Implement an inverted binary tree
  2. A maze, shortest path generation
  3. Implement singly linked list reversal
  4. Actual scene algorithm questions
  5. twoSum gets the sum of two numbers equal to target

other

  1. talk about business
  2. Talk about how the most complex business is handled
  3. How to do performance optimization
  4. Talk about front-end scaffolding
  5. What are the difficulties in leading a team
  6. Talk about iterative process
  7. How Git overwrites a commit
  8. Long list scrolling, how do you optimize it
  9. The most impressive thing

This article participated in the SegmentFault Sifu essay "How to "anti-kill" the interviewer?" , you are welcome to join.


野生程序猿江辰
902 声望2.4k 粉丝

前网易高级前端开发工程师 | 矩阵创始人 | 独立开发者