I graduated from a non-985/211 non-computer major in 2019 (wild programmer). I had an internship in Tencent for more than half a year before and worked in Tencent for one year after graduation. I have always been a front-end developer.

In the middle of this year, due to personal reasons, I decided to leave Tencent and take a look outside. I sent several resumes and finally interviewed bytedance, Xiapi, Kuaishou and Pinduoduo. Some happy and some sad, this article is a summary of this interview.

Well quickly

Quick hand is the earliest about the interview, in boss direct hire on the cast about a few days about. It was also the first company I interviewed with this time. It was 8pm on a weekday, and I snuck home early that day for an interview, which was conducted on Niuke

The main questions are as follows:

  • What life cycles have been added to React16, what are the effects, and why some of the 15 life cycles have been removed?

  • How about Fiber, how to implement asynchronous rendering (linked list/interruptible)

  • Differences and principles between Redux and Redux-Saga

  • What is the Saga-duck used in the project

  • UseEffect implementation (preact implementation)

  • The difference between asynchronous rendering and old diff

  • Babel transcoding process (lexical/grammatical analysis)

  • How to select the technology stack of the project (THIS question has been asked for several times, and I really don’t know how to answer it)

  • How much do you know about the basic implementation principle of applets (talking about dual-threaded model/preloaded WebView)

  • How to handle the abnormal exit of nodeJs application (pM2 /uncaughtException events, etc.) and how to report logs (output is redirected to files, elK service is uploaded to Kibana)

  • How to design graphic Schema? (I explained my understanding of the project, resource dimension, and felt that the answer was not good)

  • What are the cases of technology driving business? (I talked about the idea of this plug-in and some optimization of Webpack.)

Finally, we write an algorithm: maximal product subsequence, with positive and negative cases. It should correspond to this Leetcode title. I misunderstood the problem here by thinking that the sequence could be discontinuous, and I also misspelled the problem by using an implementation of o(n2). The interviewer then prompted the o(n), which still didn’t work out. In fact, I was able to solve this problem smoothly when I brushed the question before. It’s a pity that my on-the-spot code ability still needs to be strengthened

At last, the interviewer talked about the department. They are the front end team of Shenzhen Fast Film, which is still small in size and is actively recruiting. Finally, he asked me how TO view the current engineering construction of the department, and I said it was a good opportunity to challenge myself (HHH).

At that time, I had not had an interview for almost two years (the last interview was in August 2018), and I felt that I did not perform well in many places. Although the interviewer finally said that I was an excellent student, I was so confident that THERE would be a next round. After a week without any reply, I went to boss Zhipin and asked HR, who replied that the algorithm needed to be strengthened, and the first interview was cool

A lot of spelling

Pinduoduo is a department in Guangzhou, which seems to be a small program team, pushed by a classmate

47 minutes on one side. One night at 9 p.m

  • The redux concept (action Dispatch state, one-way data flow)

  • React-redux: connect (context, store, subscribe)

  • Differences, advantages and disadvantages of mixin Hoc inheritance

  • React Diff

  • React diff used depth first or breadth first. Why depth first, breadth first can be achieved (actually I think breadth can also be achieved, the interviewer asked what is wrong with breadth, I really don’t know..)

  • Diff time complexity? Why is that? (o (n). React optimizer o(n3)->o(n)

  • React-router Implementation (Hash/HTML5 History)

  • This section describes the differences and principles of client route hash/history

  • What are the common HTTP headers

  • Advantages and disadvantages of Websocket/polling (performance, compatibility)

  • Websocket handshake procedure (urgrade webSocket)

  • TCP handshake process

  • The difference between TCP/udp

  • How to design an application scenario where redux triggers several actions?

  • Implement the navigation layout of PDD app as much as possible (like 4 equal divs arranged side by side)

  • How to clear the float

  • BFC implementation principle

  • Open question: PDD home page assumes no optimization, think of as many optimization methods as possible (lazy loading, package optimization, Webpack speed, code compression, Sprite graphics, http2 Balabala….)

Second interview Sunday 2.30, 35 minutes

  • Content-box border-box CSS

  • How to implement animation (JS CSS)

  • React mixing Hoc Inherits hook

  • The process by which a browser renders a page

  • Vue/React technology selection

  • Project related, project refactoring how to develop in parallel balabala…

  • What are the engineering optimizations in the project

  • What aspects will be optimized in the project? (Webpack5 Module fedration)

  • Nodejs project performance optimization

  • Linux File Permissions (4 2 1)

  • How to implement front-end monitoring (data acquisition, reporting, display, etc.)

Three had an appointment to go to guangzhou site on Sunday, but the tickets were all bought. A few days ago, HR said that the department structure was adjusted and the post was temporarily closed. Cool ~ again

Pinduoduo interview time is very suitable, Sunday + 9 PM, basically can avoid the embarrassment of going to work (after all 11, 11, 6…) . Ask the right questions. But that’s not going to happen. Pinduoduo’s two rounds are the rare ones that don’t require handwritten code. They are both phone interviews.

Dried small shrimps

Shrimps push through a classmate, the face of the financial sector

Shrimps are qq video interview + Tencent document word to write code

One Tuesday morning

  • HTTP 302, 301, 307

  • 301 or 302 is better for SEO (301)

  • What is cross-domain and how can it be resolved

  • What are the disadvantages of JSONP

  • What are the advantages and disadvantages of base64 and outer chain application scenarios (Base64 reduces the number of requests, but adds extra volume)

  • HTTP caching mechanism

  • What is the HTTPS handshake process

  • The difference between the set/map

  • Limitations of Hook

  • Difference between setState and hook

  • @decorator -> decorator(target)…

  • What is the symbol for

  • What is CSRF and how to prevent it

  • What is SQL injection and how can I prevent it

  • What happens after react calls setState

  • Nodejs event loop mechanism

  • Pm2 principle, what are the modes (Cluster fork)

  • How much do you know about Docker and K8S?

  • How to implement and optimize dragging an element on the move side (throttling, changing position)

-for in/for of View the code output

  • A few look at the code output (forget the specific topic)

  • Describe how the inversion of linked lists is implemented and how complex is it

programming

  • implementationinstanceOf
  • Implement an object to befor oftraverse
  • Add and delete linked list. How complex is it

One side of the examination is some basic knowledge, the need for certain solid basic knowledge preparation just go

The afternoon after the second interview

  • The child can inherit from the parent

    function child(){}
    function parent(){}
    child.prototype.__proto__ = parent.prototype
    child.prototype = new parent()
    Copy the code
  • Some code to see the output of the topic. The function this points to the problem

  • How to listen for the failure of the HTML external link resource load? The interviewer said onerror is no good, I haven’t tried it yet.

  • Intersection Observer (Mutation Observer, Intersection Observer)

  • 127.0.0.1 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0.1 0.0.0.0 0.0.0.0.1 0.0.0.0 0.0.0.0.1 0.0.0.0 0.0.0.0.1 0.0.0.0 0.0.0.0 0.0.0.0.1 0.0.0.0 0.0.0.0 0.0.0.0.1

  • Use the Promise JS sleep function

  • What does the JSX transformation look like

  • What does the Redux compose function do? What about the middleware

  • What is Redux-saga and how is it different from Redux-thunk

  • Does DVA know anything about it

  • Has umi.js ever been useful

  • req.pipe(res)

  • How does Stream handle inconsistent rates of data consumption and data production

  • What the writeable stream drain event does (this is an event related to controlling read and write rates)

The second test is more detailed, asked a lot of questions to see the code to ask the output, but also asked some more detailed questions, some details of the place really did not contact.

byte

The bytes are extrapolated by a classmate. Byte is also one of my favorite companies. In order to prepare for the byte interview, I have brushed a lot of Leetcode. Although it seems that I did not pass the interview, AFTER brushing Leetcode during this period, I have to admit that I feel my code ability has improved to some extent

It’s 20 o ‘clock on a Sunday night

One side

  • Common HTTP status codes (101 200 204 301 302 304 307 400 404 500…)

  • The difference between 301 and 302 (permanent/temporary)

  • How to implement front-end routing (Hashchange event hack history.pushState)

  • 404 redirect to index.html such as nginx

  • How to design and implement a logon process from front end to back end (Session scheme, JWT)

  • What is cross-domain and how do you handle it

  • The difference between simple and complex requests

  • The browser cache policy

  • The domain property resolves cross-domains. Whether several domain Settings take effect across domains

  • What does TS generics do, and the infer keyword

The title

  • Implement typescript Paramters, ReturnType (look at infer keyword use)

  • Implement promise.all (Store each Promise resolve result in an array, return the array when the last Promise returns)

  • Implement a concurrent request control function to limit the number of concurrent requests

The second interview was immediately followed by the second

  • JWT principle (used before, easier to say)

  • What are XSS and CSRF and how to solve it

  • PureComponent/Component (shouldComponentUpdate default comparison props)

  • What problem does React Hoc Hook solve

  • React Hook useState useReducer useContext useState useReducer useContext

  • The project realizes the meaning of an intermediate layer (front-end full link logging)

  • SetState Synchronous or asynchronous

  • What is the difference between setState passing objects and functions? How to choose

  • What about synthetic events? What are the benefits

  • React is a synthetic event. Both events bubble and capture correspond to native events that bubble.

  • How to view overtime (HHH overtime is very normal, Tencent is also working overtime every day)

  • Why you chose to jump ship

The title

  • Center the CSS vertically and horizontally

  • Implement bind

  • Implement quicksort

Three faces three faces is the Leader face, on a Tuesday afternoon

  • Why didn’t I get the internship offer before/what are your expectations for the next job

  • Graphql vs. restful

  • Why redux-Saga was chosen as the solution (addressing asynchronous elegance/providing many utility functions). What are the asynchronous middleware solutions of Redux? Compare. Saga versus DVA?

  • Where is graphQL authentication done

  • What are coroutines (concurrency implemented at language level), how do Go/nodeJs implement coroutines (Go uses the Go keyword, Node can be implemented using Generator, I understand that asynchronous rendering of REact16 is also an implementation of coroutines)

  • How does react Fiber work

  • How do Nodes and Go handle deadlocks

  • How to implement concurrency in Go/ Node

  • What are the pros and cons of Node and Go

programming

  • To implement auseState

The interviewer asked a lot of questions about Node and Go. Then I first said that Go was just a simple learning, and then answered the questions about Node and Go according to my understanding. Luckily, I think it’s 7788

Because of some reasons, I chose to change departments after the first three offers, so there are four

  • This section describes the project difficulties

  • What optimizations have been made in the project

  • An AD page, how to count the stay time on different platforms

  • Why did you choose to change your job

Basically all around is to talk about the project, did not do the problem rarely. When we prepare for the interview, we must first sort out some difficulties of our own projects and so on, so the four process is relatively easy

Byte felt the overall difficulty of the four companies interview is the most difficult, write code is also the most, and I feel that the interview when writing code is really more debuff than usual, this is very test of psychological quality and code ability. Finally, I got an offer from Bytedance

Write in the last

This is the job interview experience summary. Advice everyone: the current environment is really bad, you should be careful to job-hopping, do not naked resignation ~

The code word is not easy, it is said that people who like can get the offer ~

At the end of the advertisement time, bytedance recruitment/school recruitment promotion is in progress. You can scan the QR code and send it. After sending it, you can contact [email protected] to check the progress and resume modification suggestions at any time



This article is formatted using MDNICE