基本信息

  • 公司:字节跳动
  • 岗位:客户端工程师
  • 面试形式:线上
  • 轮次:一面 → 二面

时间线

  • 11 月 26 日(周三)晚:接到 HR 电话,通知简历通过并加微信;约定第二天下午 16:00 一面。
  • 11 月 27 日(周四)上午:仍有项目对接,直到 14:00 才开始准备;14:00~15:00 快速过自己的项目。
  • 11 月 27 日(周四)16:00:进行一面,包含项目问答、八股、代码题(链表);面试官整体很温柔,体验不错。
  • 11 月 27 日(周五)下午:HR 微信通知一面通过,准备二面;因周末不排面试,约周一二面。
  • 12 月 1 日(周一):进行二面,属于压力面风格,打断自我介绍,快速进入八股与笔试。
  • 12 月 2 日(周二):联系 HR 未回,暂时等待结果,主观感受偏“凉”。

一面回顾

  • 简历背景:以“前后端开发”为主,涉及 Rust / Go,并发场景较多,本质偏后端。
  • 提问方向:
    • 项目细节与实现路径(并发、服务端设计、接口协作)。
    • 八股基础(数据结构、网络、并发常识等)。
    • 代码题:链表相关,因久未手写且 Rust 使用较多,当场以伪代码完成,过程略生疏。
  • 表现感受:
    • 面试官态度温和,互动顺畅。
    • 有些简单问题未答上来(复盘后觉得本可更好)。

二面回顾(压力面)

  • 风格:节奏快、强干扰,直接切入八股与笔试。
  • 过程:
    • 自我介绍被打断,立即进入问答;
    • 八股覆盖面广,关注基础掌握;
    • 完成笔试题后迅速收尾。
  • 主观感受:面试官“急、很忙、不耐烦”的状态影响了表达节奏,心理压力较高。

感受

夜风绕过窗沿,像一封迟到的信。十一月的尾声,我在实验室的灯下接到一个电话——简历通过,邀约明日下午四点面试。语音的尽头是一位 HR 的温柔,微信的叮咚像一枚小小的准入章,落在尚未准备好的心口上。

仓促,是这场旅程最先写下的注脚。白天还有项目等待对接,我在两点才从奔忙的清单中抽身,翻开自己的履历:Rust 的所有权与借用,Go 的并发与协程,服务端的接口与稳定性,像一块块熟悉的石砖,拼成一道偏后端的墙。三点之后,我用一个小时把这些砖头重新擦亮,然后在四点敲响了那道门。

一面的面试官很温柔。他先从项目问起,沿着我搭过的桥走到并发的河面上,问到水流的速度、河床的稳定与两岸的通信。后来聊到八股,它们像被反复抄写的经文,有些句子我能背出节拍,有些却在仓促的气息里忽然落空。笔试题是链表——一条须得用指针耐心牵引的细线。我久不手写,便用伪代码把路径铺开,像在沙地上描一条卑微却诚实的路。

面试结束的空气很安静。我以为自己可能止步于此,然而傍晚,HR 的微信说我过了。我是在校园的路灯下读完那条消息,冬天的风把喜悦吹得清醒。周末不安排面试——我才知道“996”的传说也有松弛的缝隙,于是把二面约到了周一。

周一的面试官不同,他的时间像燃尽的火柴,点燃与熄灭都来得很快。自我介绍被轻轻打断,问题从四面八方涌来,像要测试一条河能否立刻改道去海。八股在这里不是经文,而是清单,答案需要被迅速而准确地安置。笔试题仍旧要写,我的手心有汗,字迹在光标里有点颤抖。结束的时候,我还握着那根链表的尾巴,心里却已知道,这一回我讲述得并不够从容。

周二的下午,我给 HR 发了消息,还没有回复。风从走廊的尽头回来,带着一种凉意——不是拒绝的凉,而是等待的凉。它让我想起这一路的匆忙,也让我想起自己为什么来:研一,履历里是服务端的脚印,而我正试着在客户端的路面上迈出第一步。

我开始复盘。时间应该被善待,至少留半天给准备,而不是把仓促当作勇气的替代;自我介绍需要两个版本——三十秒的提纲,和两三分钟的叙事,它们像两枚刻度,在不同的对话里给我节奏;手写要重新练起,把链表、栈、树与哈希变成手背上的常识,把复杂度写进每一次转身;还要学会把后端的并发与性能翻译成客户端能读懂的叙事:内存的秩序、锁的礼仪、事件循环的夜行与 UI 的光。

我也开始记录。把题目和追问写到语雀,用自问自答把思路磨开;每一个问题都准备一个标准答案,再留一扇延展的窗;当下一次遇见压力面,我要先确认边界,然后把核心思路像一盏灯一样先点亮,再慢慢把房间布置得更好。

如果消息终究没有回,我也会把这篇记录收好:把未写完的答案交还给时间,把未按下的键交还给练习。我知道,面试并不是一条单向的河,它也在教我如何与自己对话,如何在仓促里仍旧安稳,如何在压力里仍旧温柔。

冬天已深,路灯在雪白的页面上再度点亮。我收拾好纸笔与代码,把等待当作准备的一部分,把焦虑当作提醒的铃铛。我仍旧要敲那道门——不因为我有把握,而因为我愿意在每一次敲门之间,成为更好的自己。