Status and Background
Personal background
I graduated in 2017. I started to learn front-end during the summer vacation when I was a junior and a senior. Had been working in a small company before that; I’ve been at four different companies (counting the ones I joined next), so I’ve been hopping around a lot (small companies tend to fail). If other people’s experience is a plus, my experience is about minus infinity.
In this context, I have worked from the end of 2019 to the end of March 2020; Fundamentals of shenzhen over most large companies and some small companies; This article is mainly about personal resume preparation, interview preparation and mentality experience.
The interview situation
- Tencent – offer
- Jingdong Attong Laboratory – Salary negotiation
- Bytedance – Salary negotiations
- Futu Securities – Offer
- Coding. – No pay deal
- Sf Express – written test + one side (the salary interviewer said he couldn’t give it, so he didn’t continue)
- There are also some companies that failed in the middle of the process (Ant, Ali International, DJI, Wezhong)
You may think the interview is good, but in fact, I received the offer from the big factory around March 2020, and failed the interview at the end of 2019. I was caught between self-doubt and collapse. Let’s talk about the whole process of the individual’s mind.
Purpose of writing this paper
The purpose of writing this article is not only to express some of my feelings from the recent interview, but also to provide some practical experience for the technical students who have technical strength but lack background. For the background excellent students actually reference value is not big (flying dragon riding face also can lose? .
Interview preparation
Technology base
A solid technical foundation is the premise of the interview
- JavaScript Basics (ES6+)
- Browser basics (Dom Api, Bom Api, operation mechanism, rendering principles, etc.)
- Algorithm-based (application of common data structures (stack, queue, tree, linked list), DFS, BFS, simple DP)
- Networking basics (HTTPS, HTTP, HTTP2, DNS, TCP, and so on)
The above basic knowledge is the basic requirements, and most of the daily accumulation, the best basic problems should also answer specific application scenarios and solve what problems.
Example:
- Stack applications: implement breadline or routing components, is a typical stack.
- DFS: The strategy adopted during vue diff is DFS, with the advantage of ****.
- What problem does HTTP2 solve? Solve HTTP large request blocking and so on.
The other is the principle of the topic to answer carefully enough:
- Browser load/parse process
- How browsers render
- How event Loop works
It’s best to take a look at HTML Standard.
These questions if stay in the technical articles, if you encounter in-depth questions will be asked meng.
If you’re confident in your skills, you can scan the interview questions and fill in the gaps (really, you can only fill in the gaps).
In addition, do not look down on some basic technology, think that use to check on the line, we often ignore the basis:
- Regular expressions (I missed them at first and died miserably)
- Implicit conversion (I missed it at first, it’s a terrible death)
Other students may also have a variety of usually do not feel the use of technology, the root of the technology, feel that there is no need to see. But when it comes to real questions, it gets cold, so I think the more you watch, the higher the success rate.
On the framework level, react and Vue don’t have many problems, basically understand the implementation principle, read the core source code, understand the design concept is not a problem.
Engineering Project Foundation
I also posted a boiling point to ridicule my project for not being excellent enough. To be honest, the daily business of most front-end students is to write background management interface and cutting diagram. There is no complexity in the business, and even if there is complexity, it may not be a good match for the position.
Personally, I work in financial business. Although there is a certain complexity, my business is so professional that the interviewer cannot understand what I do. I started by talking about the business I’d written, and the interviewer was stunned, and then hung up.
Therefore, the following project is related to the project, and I mainly say that everyone can understand the direction:
- Performance optimization (memory, initialization)
- Front-end monitoring (user track burying point, error monitoring)
If the project is not good enough, consider talking about this practice.
When talking about project practice, we need to pay attention to the depth of the problem. In the context of small companies, engineering practice is often very shallow.
For example, the answer to initial optimization is: DLL subcontracting, loading on demand, base64 images, gzip compression.
In the process of answering engineering practice, I personally think that the following questions need to be clarified:
- Why do you want to do this?
- What is the implementation process like? What are the difficulties encountered and how to solve them? (Make sure you’re engaged)
- What results have been achieved (preferably with actual data)?
- Expansion: In a large number of users (data) environment, what kind of problems will be encountered?
- For example: monitor how to write massive logs (small companies do not have massive logs, so need to expand their own thinking)
These questions should be in the interview before, oneself think clearly in advance, play on the spot often not satisfactory.
Skills in the interview process
In addition to writing programming questions and asking basic questions during the interview; The rest of the time is mostly just talking, so the point is to get the conversation going. Chat happy also passed; The conversation is stuck, let the interviewer frequently look at the resume to ask questions, basic cold.
So it’s really important to have a set of technical directions that you can talk about in depth. Imagine a series of questions that you can ask yourself and answer. Guide the interviewer in a prepared direction during the interview.
State of mind
I have to say that the attitude is very important, the interview is a process of mutual selection, the final result is affected by many factors:
For interviewees: solid skills + luck = Offer
After all, different companies, different departments and different interviewers have different interview preferences. In order to get a suitable offer, not only skills are important, but luck is also important.
In my personal experience, on the one hand, the interviewer praised my solid technical foundation, and on the other hand, the interviewer directly said that I did not have a solid technical foundation.
In today’s relatively introverted environment, interviews are more about performing better than others than meeting a certain standard; So straighten out the attitude or pretty important, not met also does not represent their own technology is not good.
The other thing is to make a good goal, plan what you want to move to, which company? For the platform or the money, or just for a change of scenery.
As far as I am concerned, at the beginning of the target is locked Tencent, confused for a period of time to consider whether to go to small and medium-sized companies; Later, I felt that job-hopping to a small company was not my goal, so I finally got the offer from Tencent after persevering. (It can be seen that my salary negotiations in some companies failed, partly because I deliberately offered a high salary.)
Resume preparation
The best course is to prepare a separate resume for each job. However, as for myself, I am not sure that I will receive an interview invitation (the background is not hard enough), so the cost of preparation time is too high, so I only prepare one resume here.
For the resume, I think there are about three aspects: what can I do, what have I done, what can I do
Project description comply with STAR principle; Rather than just listing what you’ve done, I think the best test is, if I’m an interviewer, what questions can I ask from this resume, are they enough to get me into a big company?
Another minefield is not to exaggerate your resume and be asked questions you can’t handle.
Example:
- Initial: I wrote the implementation of http2 (in a small business environment to change the basic configuration, do some testing); Changing application layer transport protocols in a large corporate environment involves a huge difference in effort and technical evaluation.
- Follow-up improvement: in front of the qualifier, the company’s internal project promotion landing HTTP2; This limits the scope of the network environment to a relatively simple environment, but also indicates that you actually use HTTP2.
During the interview process, you should constantly modify your resume, highlight your good questions on the resume, attract the interviewer to ask questions; Marginalize poorly answered questions from your resume.
The following is a screenshot of my resume. I was invited for an interview because of this part.
The interview style of various companies
Interview styles vary from plant to plant, and even from department to department; Targeted preparation with different companies can improve the chances of success. Let me share with you some personal insights from experience.
Toutiao Feishu, Futu Securities (solid algorithm is preferred)
I put these two together because they both like to write algorithms.
There were three rounds of technical interviews in Futu Securities, and basically there were more than two programming questions or probability questions in each round. The project was not asked in the whole process. Only the front-end basic questions were passed in the first round of interview, and the follow-up basic writing questions were finished. Feedback is very fast, and you’ll know the outcome of the interview probably the next day.
In addition to fixed programming questions, each round of interviewers seems to have a clear question direction; The first round focuses on the front-end foundation, the second round focuses on project design, and the third round focuses on digging in a certain direction and getting a sense of pressure surface.
Another good thing is that the record of each interview is more detailed, and there will be no repeated questions between two rounds of interviews. The feedback of the headlines is also very fast, basically the second day after the meeting there is feedback.
They basically have to have some confidence in their algorithm to try it out, because it’s a huge part of the interview.
Jingdong Attong Laboratory (suitable for complex engineering and NodeJS direction)
Jingdong also had three rounds of technical interviews. Jingdong was the only big factory I met without programming questions.
The three rounds of technical interviews are basically macro, and less details fall into a specific point; Was the only one who asked about Webpack (I didn’t mention webpack in my resume); Jingdong is Concave-Convex Laboratory, which is the core scene (responsible for 618 and jd PC home page), and uses NodeJS for its internal platform. Members are basically full-stack development.
Focus on nodeJS engineering scheme, deployment operation and maintenance (memory management, monitoring scheme); The internal principle of Webpack and the application of small programs; Interviewers are interested in small programs, multi-end solutions, and front-end microservices.
In addition, according to the feedback, the merchant platform often hangs (NodeJS), so the students who have this kind of experience are basically stable. Very few basic questions.
Ali and the Ants
Both of them died, and honestly don’t know why they died; Before the second interview there will be a programming question is not difficult, but can not debug, to the time will be automatically submitted; And we don’t know the results.
The overall interview style is pragmatic, one side is basic, the other side will ask questions according to the development of the project;
Personal advice, face Ali or choose hangzhou post more reliable.
Tencent (more comprehensive, but not difficult)
Tencent has many rounds of interviews and a slow process. If you are determined to enter Tencent like me, you should be prepared for a long-term battle. Personal interview with Tencent has gone through five rounds of technical aspects, one round of GM and one round of HR, altogether seven rounds; For more than a month.
Tencent because of more technical aspects, so the overall question will be more comprehensive, programming problems, front-end foundation, projects, design will be involved;
Personal experience: the team members are responsible for the basic interview, the leader will ask questions based on the project, the director (not the front end) will talk about technical vision, and the interview committee will be difficult, such as the three headlines, GM talk about life; The following interview of the leader will basically ask about professional norms and reasons for job-hopping; These interviews are interspersed with programming questions.
Generally speaking, Tencent interview difficulty is not high, but the error tolerance rate is low, some questions did not answer to the point will hang; Because there are many rounds, the interview with Tencent is very challenging. The interval between the two interviews is very random, maybe every other day, maybe every other week. So the interview Tencent mentality is the most important.
Some interview questions
Programming problem
- Realize the Promise
- XSS – filter
- Achieve re to get url params
- Merge n ordered linked lists
- Render a long list to reuse DOM nodes
- Random7 implementation random10
- Implement regular shard in thousandths (10000 => 10,000)
- Achieve regular segmentation of the bank card number (like a physical card four Spaces)
- To realize the json
- Check whether an ipv4 address exists in the existing 10 million ipv4 addresses (bitmap)
- Bind, new
- Can take one or two steps at a time, n stairs how many ways to go
- Implement minesweeping (2d array, randomly distributed mine coordinates)
- Calculate progressive tax rates
- Find the element in an array that is larger than both the left and right elements (On)
- Implement bidirectional binding
- Realize the InputNumber
The above is basically a personal six months encountered most of the programming problems, there are some difficult to describe; There are also some closure related programming problems are relatively common problems.
Network and Security
- HTTPS Principle (Handshake process)
- What’s the difference between HTTP1 and HTTP2
- HTTP Common return codes and their meanings
- HTTP cache control, which negotiates the priority relationship between several cache-related headers
- What is CORS? Why cORS?
- What is XSS? How to prevent? For example, how does JSONP prevent XSS?
- What does a cookie do? What’s the problem? How to solve it? How does CRSF prevent it?
- DNS addressing process? This section describes the CDN principle
Other Brief Questions
- Discuss the difference between VUE and React
- React Hook
- A little bit about typescript
- What are the advantages and disadvantages of front-end microservices
- Understanding the Serverless architecture
- React Fiber
- The process after the browser enters the URL is as detailed as possible
- Front-end adaptation
- Talk about the differences and choices between Mobx and Redux
- If you were asked to lead a project from scratch, describe the overall thinking, front end, back end, development to deployment
- If let you build a set of front-end monitoring scheme, specific ideas
- How do I locate memory leaks
In addition to these general questions, most people will talk more about the specific content of the project; Because the interview is a little long, the subject can only recall about so many questions, in fact, far more than so many questions; In fact, it can be found that the brief essay is closely related to the resume I write, so in fact, in addition to the basic interview questions can read a following by; These questions should only be used as a guide.
Did not indicate the specific company is to consider that there may be some companies are not allowed to send; If you are interested in a particular company, please leave a message.
conclusion
During the epidemic, the overall market is still only the head of the company in recruitment, the main topic of small companies are last year; The head company post is still more adequate, but the competition is also more intense; In fact, we can see that some job subjects have already met WITH HR, but they still refuse to send the offer. They may also be thrown into the spare pool for comparison.
So the general advice is to enrich yourself and be prepared; Don’t waste your interview.
Finally, I wish you all get the desired offer.