This interview is for the frontend internship position in the Industry Innovation Business Department of the ACG Baidu Intelligent Cloud Division. Back then, it was Haize, a senior colleague, who was looking for people in the group, so I sent in my resume to see if I could intern during the winter break.
The first round was scheduled for 15:00 on 2020.11.10
. The interviewer, a young lady, was quite pretty, haha. But I was still nervous, I mean, it had been so long since I last interacted with an interviewer. The interview lasted for about 50 minutes. The interviewer's computer ran out of battery, and I had to send her the last curried programming question I had solved. Man, I was so nervous that my typing went all wonky. However, I think I did alright. Despite being a bit nervous and stumbling over my words, I managed to answer most of the questions. Once I was done with the first round, Haize told me that the second round would be scheduled in a few days. These are the questions I could recall from the interview. There might be some that I can't remember, but I have basically covered them in my blog. However, the explanations in my blog are quite lengthy, so you may want to take a look at it. Additionally, make sure to frequently read my blog because I tend to forget what I have written before.
- Implement a three-column layout using
flex
,position
, andfloat
, and share the code on the screen. - The difference between
fixed
andabsolute
in positioning. - Basic data types in JavaScript.
- The role of the
Symbol
data type in JavaScript. - Differences between
let
,const
, andvar
in ES6. - The purpose of the
Promise
object and the role ofasync
andawait
. - Ways to implement inheritance in ES5 and ES6 in JavaScript, and write the code.
- Understanding of the scope, prototype chain, and closures in JavaScript.
- Methods to determine data types in JavaScript and their differences.
- Characteristics of the HTTP2.0 protocol.
- The purpose of
options
in HTTP requests, simple requests and complex requests, and cross-origin issues. - Browser caching mechanisms, the request headers used to control them, the values of the
Cache-Control
property, and the distinction between strong caching and conditional caching. - The principles of
XSS
andCSRF
attacks and how to avoid them. - Understanding of the
MVVM
pattern. - The lifecycle of Vue and when they are triggered.
- The purpose of the
key
attribute in Vue loops. I probably shouldn't have mentioned thediff
algorithm because I didn't thoroughly study it, and I ended up digging a hole for myself. - The
diff
algorithm in Vue: breadth-first search or depth-first search. - Methods for parent-child component communication in Vue.
- How data two-way binding is achieved in Vue and the differences between
2.0
and3.0
. - How Vue-Router implements routing and the differences between
Hash
mode andHistory
mode. - Programming: Write a program to flatten an array, remove duplicate elements, and obtain a non-repeating ascending array.
- Programming: Implement
plus(1)(2)(3)(4)
to equal8
.
The second round was scheduled for 2020-11-16
, but it turned out that there was actually no second round. They call it the "second round", but in reality, there wasn't one. Let's just call it a "vermicelli" round. Initially, there was supposed to be a second round, but they changed their minds. Then Haize told me that they were looking for someone who could receive an offer, to be more precise, someone who could receive a formal offer upon graduation next year. Well, I'm a first-year postgraduate, so I'm clearly not qualified. It seems like they are actually looking for autumn recruitment, but they don't want someone like me for an internship. So, my self-esteem took a hit, haha.
When the first round ended, they told me to wait for a second round, and then this happened - I was taken aback.
Also, I casually asked about the number of frontend resumes received as compared to backend, and Haize mentioned that in terms of future promotion, front-end roles might not have a significant advantage. However, after spending so much time learning frontend development, switching to backend might not be suitable for me. Who knows, maybe I'll end up doing C++
in the end.
It's really tough to get into a Big Tech company. Back when I applied for an internship at Alibaba, I didn't make it through. Now, Baidu has turned me down for an internship too. I'm really having a hard time.