preface

I am not majoring in planning in my junior year, so I chose to find a job instead of taking the postgraduate entrance exam, so I want to try my resume delivery in this holiday. I started Bytedance through internal promotion, and it took about a week to push from the internal promotion to the side. I clearly remember that it is 5 PM on December 15, 2019. One side before the beginning of nervous about all kinds of scratching his head, very not easy to endure to the beginning of the interview is also extremely nervous, speech are bald several times, one side of the foundation without a point project specific topic I will not say, the end of the face of the whole person are exhausted 😱 feel that their probability is no, But what was so surprising was that when I was ready to go out the next day, I received the notice of the second interview from HR, and I was so excited. The time was about 11 o ‘clock on December 17, 2019, and I finally got to the beginning of the interview. The second interview with the hand-torn code was very cool. When tearing the code by hand, I felt embarrassed like squeezing toothpaste. The interviewer prompted me to write a little bit. After an hour, it finally ended. But is suffocating, separated by less than ten minutes interview again come, I was a black mark, I have an appointment with a friend go to recover the (third friend told me the time beating deceive my feelings), narrowly missed three sides project and system design through to hr, talk to hr about ten minutes, the hr told me that the latest time can receive an offer for two days, It has been 3 months since I joined the company.

One side

  1. Git cache workspace
  2. Virtual DOM Diff for a spin?
  3. Return to redraw
  4. rem em
  5. React new features new hook HOOKS HOC
  6. Symmetric encryption Asymmetric encryption during the SSL handshake
  7. Deep copy
  8. Arrow function this
  9. Node event loop
  10. Database index
  11. Fs reads files to buffer
  12. Performance optimization of a variety of solutions
  13. HTTP cache
  14. The performance optimization of packaging packages services and dependencies separately, and the dependencies are cached
  15. The height of the container is twice the width
  16. Adaptive multiple methods
  17. React: The best thing about React source code

Inside most of the questions on the side of the problem is actually pretty basic but for his big mouth don’t ask me the source code related things, is to feel ask database index and data structure of the database index these have a little uncomfortable, because there is no understanding, there is another point is the interviewer care node part, Take a deep dive into node’s event loop and various package implementations.

Second interview

I mainly have four projects, one is the contest system developed by Next (similar to OJ), one is the IMPLEMENTATION of a CLI (NPM install SAC-CLI-g), and one is the patent search system. Q: How did I achieve this project? A: By defining the template and putting it in Git by executing Git Clone, Because I put a lot of templates, I will let the user make a choice when writing the script and clone the corresponding repository according to the user’s configuration. Q: How to solve the difficulties encountered A: Unable to determine the operating system and accurately execute the corresponding shell commands, the solution is to let users choose their own operating system, It is not able to determine by myself (the interview suggested me to check the source code of VUe-CLI 3 and then ask the source code of VUe-cli 2). Another is that the package version update needs to be manually updated by myself, and the warehouse also has a lot of cost. Through the custom dependency configuration and folder configuration and then according to the configuration to create a project. To reduce the update cost and modify cost, this method is not clone to achieve through the script. Q: Opened my Git and looked at my code and asked questions (one I can’t remember)

-----------------------------------------
async (err, projectName, tplName) => {
spinner1.stop();
console.log('√ File directory generated successfully ')
if (err) {
tip.fail('File name duplicate! '); process.exit(); } spinner2.start(); } -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - / / the above is my code error - first callback ABC ('close'Cb) completes a convert function objective: convert error-first style CB to the way that Promise is called. const abd = convert(abc); try { const param = await abd('close');
}
catch (err) {
// handle err
}


function convert() {
//...
}
Copy the code

A: The writing process was tortuous and strange. It took the interviewer many times to write it, and I felt completely confused

function convert(fn){
    if(! fn){return }
    return function(str){
        return new Promise((resolve,reject)=>{
            fn(str,(err,arg)=>{
                if(err){
                    reject(err)
                }else{
                    resolve(arg)
                }
            })

        })
    }
}
Copy the code

Q: Do you have any questions

A: no

To sum up, in the first half of the second interview, the interviewer still appreciated me. After I began to write code, I did not have any particularly brilliant performance. I finished the bonus points in front of me, but luckily I still passed.

On three sides

The three interviews are mainly for my project. First of all, I introduced the things I have done, and just mentioned what I have not introduced in my resume. Q: Look at your resume and tell me how you have done data visualization. A: Mainly through existing solutions. The more complicated part is to design the visualization part, how to display and transform data. Q: Transform the array object into the corresponding data format (flattening, serialization, etc.) and transform the array object into the corresponding data format (flattening, serialization, etc.). Q: When the magnitude increases, it will definitely slow down. How to solve A: First of all, the increase in magnitude must be the increase in data quantity, this can be done to local cache (such as localstorage), update frequency to HTTP cache. Apply colours to A drawing how to optimize I didn’t make up is simply say why the slower (trigger reflux or something), and how to solve reduce trigger reflux Q: you mentioned the browser’s rendering mechanism in detail before say A: simple speak for A moment from the url to the page rendering has experienced what network protocols that part simply skip the point in the rendering process, A: I have used create-react-app and VUe-CLI and found that there are too many things installed that I don’t need. The CLI I made by myself is relatively pure and only has some basic dependencies. Q: Designing an input component is similar to the Baidu input field. A: A few bits and pieces

  1. Default hot words (taken when the page is generated)
  2. Class drop – down prompt box, when focusing input can be used according to the arrow keys, up and down when focusing selected parts
  3. Do some browser caching of user search terms
  4. Throttling (tip word section
  5. Q: Why do you choose the front end? Q: Career planning

Although the interviewer seemed to be an emotionless killer, he was still quite nice and gave me a lot of ideas to solve problems and guided me to put forward solutions.

conclusion

Prepare your own projects

I think project is the key, a good foundation for me this interview is the key of a simple, more important is how to choose on the resume of several projects, in choosing a project had better choose different qualitative projects, for an introduction to the near the front is very easy to form a myth is my project is based on such and such a framework, so that caused

  1. React + react-router + Redux
  2. React + react-router + Redux A background management system
  3. Vue + Vuex + elementUI some H5

This is the same project for the interviewer, which is essentially the same. The three projects listed here only show that you use React more and also know Vue a little. This point is basically available for all the front end of the interview, so some eye-catching projects are needed to attract the attention of the interviewer. If not, take a closer look at the React source code to highlight your core competencies.

A solid foundation is important

Foundation is very important I think don’t need me to repeat again, because a lot of my classmates is hung on the basis that a piece of the above, too many things to learn for the front then during the interview basis can we learn how to be good, I think we can go to read it here three yuan bosses, I will not say.

luck

It’s a bit of a mystery, if you meet with a department that doesn’t need people. So before the interview, make sure you know the department and the situation of the interview

Something about me

I didn’t really have any interview experience, because I only met with one company, byte, and I got the offer within a week, so I didn’t interview again… In fact, it was also an accident. At that time, I did not prepare anything for the final exam, did not brush the questions, did not review the project, and only prepared for the next week’s exam. But my senior in byte suddenly told me that I was going to recruit people, so I decided to try, but I did not expect that I passed. Sometimes, it is important to dare to fight, the final exam and the interview at the same time is really uncomfortable, but the result is good, I hope you win