preface

Some time ago, due to learning algorithms, preparing for the interview, then formally delivering the resume, then officially interviewing, and now all the dust has settled, I found that I haven’t discovered the article for three months. Fortunately, the interview result of this wave of big factories was ideal. I received the offer from Ant Group after the National Day and successfully landed. In this article, I not only want to share some of my experience in the interview process and interview questions, but also want to make a review and summary of my own learning process in the past few years, hoping to be helpful to the students who want to enter dachang.

The old me

My first company was in Ningbo. I worked in this company for 4 years from my graduation in 2016 to my departure from Ningbo to Hangzhou in 2012. This company belongs to an outsourcing company, mainly doing some government internal or related systems or software. I started to work on Java full stack from the beginning, and then turned to be in charge of cutting diagrams at the front end, and then began to take charge of developing company projects with the development mode of separating the front and back ends. All kinds of new technologies need to rely on self-study, but the company’s requirements for the front end are not high, with the framework of the document and Baidu is basically enough. Because the Internet environment in Ningbo at that time was not good, the upper limit was very low, and there were very few companies with good technology, I didn’t have any goals, and I didn’t know what to learn. I spent a few years working overtime and being the head of some projects at the company level, but the technology was really bad at that time. It can be said that these years have been abandoned years, the framework is not in-depth, front-end tools are not enough to understand, the foundation is not to mention, even js how many kinds of data types the most basic questions are not very good answer complete.

Began to change

I think it was in my fourth year of work that I met a girlfriend, who is now my wife. Because she is from Hangzhou, this gives me a chance to go to Hangzhou to develop, of course, if I go to Hangzhou, I need to bear a lot of economic pressure. For the future, I began to work hard silently, I set a small goal for myself, to reach the intermediate front end. I added several technical wechat groups and began to learn some articles written by several well-known bloggers in Nuggets. My foundation is poor, so I start from the foundation of the system up, from scratch to learn data types, variables, prototypes, functions and so on. For the framework, I follow Huang Yi teacher VUE source code analysis in-depth study of the vUE implementation principle. Other various network protocols, browser related knowledge, Webpack also began to slowly learn. After half a year’s study and preparation, I resigned and prepared to go to Hangzhou.

After coming to Hangzhou

After coming to Hangzhou, I have a clear position on myself, that is, intermediate front-end engineer of benchmark.Because I know I still have many shortcomings, I only considered some small and medium-sized companies in my resume, and finally joined a react technology stack company in Binjiang. After entering the company, I set another goal for myself, hoping to be able to run a wave of big factories in one year. In other words, I hope to reach the technical level of senior front-end engineer in one year. However, what I need to learn this time is actually very clear. In addition to constantly refining the existing technology stack, I also need to master React, algorithm and some other content other than business development, such as error, performance monitoring, infrastructure and so on. In order to achieve this goal, I have paid a lot. The company usually gets off work after 8 o ‘clock, and in addition to the spare time for work, it is almost midnight on weekdays. I also began to write digs, on the one hand, to share some of my recent learning content, on the other hand, to consolidate my memory. In one year, from the intermediate front end, to the previous period of time, I can freely respond to all kinds of questions from the big factory interviewers, and then to the successful landing. Recalling the harvest of this year, my efforts have also been rewarded.

About the future

I as a half of the wild front, after a few years of rowing water determined these years, I actually have been very envious of many online, or group peers. Their grade is very small, some may just graduate, some work for only 1-2 years, they have enough ability to work in large factories, often output some in-depth, thoughtful articles. I sometimes wonder, if I could have had this state of learning right after graduation, where would I be now? However, the old days cannot be recalled. For me, I am no longer the mediocre person I was a few years ago. I take these jealously as my motivation, and I have updated my short-term goals and long-term goals. I hope we come on together, I can grow up this old dish chicken, let alone the young you.

Some learning experiences and learning methods

There are no specific knowledge points here. If you want to know what specific skills are required for intermediate or advanced skills, you can search the nuggets. There are many excellent articles written, I have seen those before and followed them. Here I only share some of my own learning experience and methods, hoping to help you better to learn.

Learn more

This requires us to be able to get to the bottom of the attitude. In fact, the interview is also a good thing to fill in the gaps, before the interview, everyone will brush, but you can not just memorize the current question, you should get the result, think about whether there are still unclear place.

A few examples:

Q: how to deduplicate the JS array? A: bySetDe-weight and passArrayThe. From or extension operator restores to an array.// Here is a simple interview question. I'm sure you all know the answer, but you can learn more about it.Deep q1:ArrayWhat data can be processed from? A: Array-like objects or traversable objects// Go furtherDeep q2What are the characteristics of array-like objects? Answer:...Copy the code
Q:for inandObjectWhat's the difference between keys? A:for inIterates through enumerable keys on the object's own and prototype chains,Object.keys will only iterate over the enumerable keys of the object itself// Ask further questionsWhat attributes are enumerable keys? A: An object property is either enumerable or unenumerable, which is determined by the object property descriptor Enumerable.// Go furtherFurther question: what about object property descriptors? Answer:...Copy the code

Of course, not only js foundation, other aspects are the same, in the encounter do not understand not clear knowledge points need in-depth study, a lot of big companies interview questions are actually a lot of slowly in-depth, is to inspect you in the end to master the firm.

Systematize the knowledge

Some technologies we have learned, such as JS, React and Vue, are actually not separated from each other. You need to classify the whole piece of knowledge and treat it as a whole system. When you learn something new later, you can put this point in the appropriate category. Perhaps this new knowledge will connect with something you’ve already learned to help you understand it better.

Record and review

Many students may not have the habit of taking notes when learning. In fact, technology is the same as what we learned in school. It is easy to forget some things that are not commonly used, so we need to constantly review and deepen our memory. In the process of learning, I met some not content, all will be classified knowledge, annotations, and then recorded, some will be written to share. Even so, AFTER a while, I often forget the points I’ve written about and have to go back and relearn them. I built a Github warehouse and annotated very detailed problem-solving ideas and processes for each problem I had solved. However, for me, some problems may not be similar for several weeks, so my memory of the details of some specific problem-solving ideas will be biased.

Face the

The companies I delivered to this time are mainly large Internet companies in Hangzhou, including Ali, netease, Byte, Didi, Kuaishou, Youzan and so on. Kuaishou has no HC for the time being. Other companies have gone through the interview process. Since the interview was not long ago, there will be no specific department information in this paper.

Have a great

One side is divided into two parts, one is the interview, eight-part essay more, one is the written test (algorithm), in an online coding platform he provided.

  • Js basic data types? Are bigint and symbol actually used?
  • Es5 inheritance? What is the difference between ES5 and ES6 inheritance?
  • What is the role of super in ES6 inheritance?
  • Prototype chain?
  • How does promise work? Features of Race and All?
  • Has the generator ever been used? What does a generator do?
  • Has Flex ever been used? What are the attributes?
  • What’s the difference between Vue and React?
  • React Fiber?
  • HTTPS and HTTP?
  • Written test: 1. Convert Chinese numerals into Arabic numerals? 2. What is the longest common subsequence? (Dynamic programming)

In fact, Youzan is the last company I invest in, but the response is the fastest, is the first company I interview. However, the overall interview experience was not very good. I think the accuracy of the answers was good, but the communication with the interviewer was not smooth. The last two penned questions were not too difficult, but I was only given half an hour to answer the second question and half of the first. I got a message a few days later.

Ali.

Ali’s interview was one of the best I’ve ever had. They don’t ask you questions mechanically.

One side

  • Setting width difference between IE box model and W3C box model?
  • Padding – top: 100%?
  • Three items of the Flex property?
  • Scope to bind twice?
  • React hooks are different from classes.
  • React hooks implementation?
  • How do hooks emulate componentDidMount?
  • Is babel-polyfill different from babel-Runtime? How to configure it?
  • Let, const is compiled to what by Babel?
  • Front end across domains? The options request?
  • A cookie?
  • The most fulfilling project you have ever worked on?

Second interview

The second interview was in ali’s Bole system, online to do a few coding questions, but also asked some questions.

The written test:

  • Asynchronous request synchronous running problem?
  • Go through the tree, get the data, okay? (DFS and BFS)
  • Shallow copy of specified path data?
  • Sum of two numbers? (lookup table)
  • Climb the stairs? (Dynamic programming)
  • Recent common ancestor of binary tree? (Binary tree)

Interview:

  • Splitchunk related questions?
  • Have you written webpack loaders and plugins? What are the implementation details?
  • What’s the difference between arrays and lists?
  • Eventloop?
  • Vue vs. React?
  • The react redux?
  • Small program implementation principle? Why is that?
  • Front-end security?
  • Questions about projects you have worked on?

On three sides

  • Climb the stairs? (I don’t know why I ask again)
  • What happens from entering a URL to displaying the page? Some places go further and ask?
  • Ask the project?
  • Talk about your career, what you want to do?

Ali’s interview went well on the whole, and I would get a response a few days after each interview, basically once a week. However, it has been almost two months since I submitted my resume to the follow-up HR interview, passed the physical examination, and sent the e-offer, which is really a long time span.

netease

The interview of netease was rather bumpy. At the beginning of the interview, one department failed in three areas, and then was picked up by another department, which was also in three areas, because at that time, I had already got the offer from Ali, and the salary required was much higher. I don’t know if it was a salary issue or personal reasons. Finally, I replied that I wanted to hire a more senior developer, so I hung up.

The first department of the interview to tell the truth a little water, there is no content, I will not write.

One side

The written test:

  • A function that limits the number of simultaneous requests to n?
  • Promise, async, await related print order?
  • Implement an hooks that displays the previous value?

Interview :(first interviewer)

  • Padding – top: 100%?
  • What are the methods for implementing a three-column layout?
  • Three arguments to the Flex property?
  • NPM ^ and ~?
  • What if NPM templates have different versions of template dependencies?
  • How does esM handle circular references in CommonJS?
  • Is babel-polyfill different from babel-Runtime?
  • React hooks are different from class.
  • How does redux trigger react updates?

Interview :(second interviewer)

  • What’s the difference between VUe2 and VUe3?
  • The responsivity principle of VUe2, VUe3?
  • Vue3 ref?
  • How does keep-alive work?
  • How to use Webpack to better optimize resource loading?

Second interview

The first interviewer:

  • The most fulfilling project?
  • Scenario: In charge of a project, internal references are all other people’s components, there are some other people’s cross-domain requests, how to deal with unified?
  • Event proxy, Target and currentTarget?
  • CSS grid?
  • Front-end security?
  • HTTPS?
  • What happens from entering a URL to displaying the page?
  • The react fiber?
  • How do hooks emulate componentDidMount?
  • UseEffect and useLayoutEffect?
  • Algorithm: How to sort an array with only 0 and 1, putting 0 to the left and 1 to the right?

Second interviewer:

  • What about printing content, variables, and variable promotion of immediately executing functions?
  • What is the printing order of macro tasks and micro tasks?
  • eventloop?
  • What’s the difference between vue and React?
  • How to realize front-end error monitoring?
  • React Router Implementation?
  • React hooks and Classes

On three sides

There is no technology related content on the three sides, so I won’t go into details.

At the end

I hope you can also come on, develop the habit of independent study, find the target and method, and go ashore as early as possible.

Thank you

If this article helped you, please give it a thumbs up. Thanks!