Baidu Autumn Campus Recruitment Front-End Interview

The autumn campus recruitment for the 23rd batch has officially started. This year's recruitment is almost nonexistent in terms of hiring, making it extremely difficult and challenging. The situation is quite tough as there are only 80 headcounts for front-end positions in Baidu's Beijing office, leaving it to fate. I submitted my resume in the evening around 9:00 PM on July 14, 2022, and Hu Ge directly provided a referral to Baidu's internal network drive.

First Interview

The first interview of the autumn recruitment was quite nerve-wracking. I was so nervous that I almost couldn't speak properly, and my thoughts were a bit unclear. Mainly because I have been busy with my internship and didn't have time to focus on algorithmic problem-solving. With only 80 headcounts available this autumn, it's practically impossible to compete. The interview was scheduled for 16:00 on July 25, 2021, with a duration of 45 minutes.

  • Have you encountered any difficulties in these recent projects? How did you resolve them?
  • Why did you choose Slate over Quill as the rich text editor?
  • Comparison of features and drawbacks between the rich text editors Slate and Quill.
  • Solutions for mini-program development and cross-platform frameworks.
  • Common methods for cross-origin resource sharing.
  • Advantages and disadvantages of JSONP compared to CORS.
  • Explanation of preflight requests and the differences between simple and complex requests.
  • How to refresh the view when data changes.
  • Will changing the length of an array trigger view changes in Vue?
  • Why doesn't Vue implement data change monitoring for arrays?
  • How to monitor arrays in Vue.
  • Purpose of the set method in Vue.
  • Various values for position and how to use them.
  • Positioning of child elements with absolute when the parent element div is absolute.
  • Understanding and resolving margin collapse issues.
  • Common data types in JavaScript, and examples of primitive data types.
  • Use cases of Symbol and the difference between Symbol and Symbol.for.
  • Other reference data types besides Object.
  • Understanding of micro frontends and familiarity with related frameworks.
  • Understanding of shallow and deep copying and the approach to design a deep copy.
  • Limitations of using JSON.stringify and JSON.parse for deep copying.
  • Knowledge of 301, 405, and 413 HTTP status codes.
  • Whether both negotiated caching and strong caching will trigger 301 redirects.
  • Preference for strong caching or negotiated caching for JavaScript resources.
  • Fields for negotiated caching and strong caching.
  • Advantages and disadvantages of last-modified and etag.
  • Explanation of CDN and the meaning of origin fetch.
  • Difference between webpack loaders and plugins.
  • Difference between required and import statements.
  • Brief explanation of tree-shaking in relation to required and import.
  • Vue's diff algorithm.
  • The necessity of virtual DOM in Vue.

In the feedback session, I asked the interviewer about the business they are involved in and where I need to improve personally. The business is built around Baidu's network drive and includes various derivative products like mini-programs. Personally, I need to deepen my technical understanding as I have a general understanding but lack depth. The interviewer was quite amicable, but it felt awkward without them turning on the camera.

Second Interview

The second interview was surprisingly prompt. Shortly after completing the first interview, I received a call to schedule the second interview. It was supposed to be within three days, but the second interview was arranged much quicker. Unfortunately, I couldn't solve the last easy problem, and I felt quite embarrassed about my lack of solid foundational knowledge. The first interviewer scheduled the session for 19:00 on July 27, 2021, for a duration of 30 minutes. It seems that the first interviewer had some urgent matters and was replaced by another interviewer, who made me wait for ten minutes.

  • Reasons for studying front-end development.
  • Approach to learning front-end development on a regular basis.
  • How was your previous internship experience?
  • What were your academic achievements during your graduate studies?
  • Research focus during your graduate studies and any significant accomplishments.
  • How were your academic achievements during your undergraduate studies?
  • A comparison of features and drawbacks between the rich text editors Slate and Quill.
  • Description of the final version of the rich text editor.
  • Brief introduction of recent projects.
  • Principles behind mini-program cross-platform functionality.
  • Why did you choose to develop mini-programs instead of H5?
  • Familiarity with NodeJS and understanding of backend languages.
  • Preorder traversal of a binary tree.

During the feedback session, I inquired about areas for improvement, and the interviewer provided several suggestions, emphasizing the need to strengthen my fundamentals (especially as I struggled with the easy question) and deepen my technical knowledge. The interviewer's advice was indeed reasonable, and my confusion over the easy question was a bit embarrassing. Interestingly, the second interviewer also chose not to turn on the camera, which seemed to be a tradition within their team.

Follow-up

On the evening of July 28, 2021, I discussed with Hu Ge and learned that they had already sent out the result. To be honest, I had mentally prepared myself for this outcome quite early on, so I didn't feel any strong emotions. Upon analysis, it's clear that the major subjective reason was my poor performance on the easy question, which was entirely within my control. However, during the second interview, the interviewer initially made me wait and then switched to a different interviewer, even asking for my resume midway through the interview. I also admit that I failed to showcase my strengths during the interview, but the interviewer also didn't provide me with enough opportunities and time to do so. Overall, there were both subjective and objective factors influencing the outcome. I'll need to continue striving, especially considering how challenging this year is.