首页 > 聊聊字节的校招面试
头像
雪人少校
编辑于 2020-07-03 20:50
+ 关注

聊聊字节的校招面试


网上的字节面试面试题内参已经很多了,各类编码题按难度罗列的齐齐整整,不得不佩服整理这些的同学

不过今天,我们不说具体题目的解法,而会从整体上盘点一下面试考察的素质

现在校招季,就说校招吧,对于刚刚从学校毕业的同学,重点考察什么呢?


首先肯定不是经验

所以经常有同学问,我没有客户端经验,我可以来做客户端吗?


可以的,因为你做啥(不只是客户端)都有学习的过程,这毕竟是商业系统,不是毕设,二者在实践上的差别非常大


一般而言,对于校招的职位,会重点考察如下几个方面


  • 实践:it毕竟是实践科学,你在学校里做过什么,到了什么程度,是否对整体过程有宏观的了解(而不是只了解自己做的那一小块);
    • 自己扮演的角色是否足够solid,而不是把别人的事情说成自己的事情;或许有的时候确实不那么容易区别边界,所以判断solid的标准可能是,这事可以不是你做的,但问你细节,都清楚吗?换你来能搞定吗?能,就好
      • 或许有的时候确实不那么容易区别边界,所以判断solid的标准可能是,这事可以不是你做的,但问你细节,都清楚吗?换你来能搞定吗?能,就好
  • 基础知识:无论你来什么公司做什么职位,都会面临学习的过程;基础知识是否足够全面,足够扎实,决定了你的学习速度和潜力;而这二者决定了你是脱颖而出还是冥然于众人;那基础知识要怎么界定?
    • 基本超不出计算机组成原理,操作系统,网络的范畴简单的描述是可以用来解释“从系统加电启动,直到看到界面开始响应用户操作的路径上,发生的关键事件”的所有相关知识;这么说还是有点抽象,举个🌰
      • 简单的描述是可以用来解释“从系统加电启动,直到看到界面开始响应用户操作的路径上,发生的关键事件”的所有相关知识;这么说还是有点抽象,举个🌰
        1. cpu从实模式怎么进入了保护模式?
        2. 操作系统内核建立的内存管理,哪些是分段的,分页的?
        3. 硬件是怎么驱动的?为啥有些硬件需要驱动程序,有些不用?比如现在的硬盘?
        4. 显示器上的文字,是怎么出来的?
        5. 从console状态进入图形状态,显示卡做了什么?
        6. 操作系统怎么协同的?不处理事件的时候,线程休眠了没有?有事件来的时候操作系统怎么知道唤醒谁?能不能抢占当前任务?

这只是随便发散一下,换其他人思考会有不同的结果,这里的关键是要有整体融通的思路;计算机的本质是个大玩具,这里的枝枝叶叶真的和玩一个复杂的变形金刚有那么大的区别吗?很多时候问题是只见树木不见森林,只看到一个逻辑,一个局部,互相联系不起来,自然谈不上基础好;说了这么多,基础好的定义在这里可以是:


你能自洽地描述一个具体系统行为背后的原理和合理性

  • 语言:语言的知识图谱,高于基础原理(操作系统,网络这些),低于业务应用;属于比较能挖掘深度的一个领域;比如:
    • 堆栈上各类变量的生命周期;
    • gc的细致行为
    • 各种锁的类型和效率;
    • 一些高级语法的使用,等等

稍微再发散一些,提出这些的背景考虑?语言本身的核心思想(比如,python 和 c++的哲学都有哪些不同),进而衍生到行业/领域标准制定上各方的角色,他们中有能力超群的独立开发者,也有相对灵活的开源组织,还有有组织成建制的商业力量,他们是如何博弈 & 共识的,折射出什么样的行业格局和现状?


  • 编码:这一块就比较灵活了,但并不是leet code前多少道题刷一下就解决问题了,而且刷题这个行为,我们中性看待,是一个快速的提升手段不假,不过话讲回来,你真的能刷到大神级别,那也算真才实学;
    • 虽然外面传了很多手撕xx的传说,我们就事论事地说,直接拿一个成熟算法让对方默写一遍未必是一个好的考察方式,现在越来越对的面试官都有这样的共识;


编码是工程能力的体现,不应该脱离工程;那这个领域的学习思路又如何呢?既然我们谈论算法,我们不妨用上下限的思路来分析一下


这件事的时间投入上限是什么?

看到一些同学在简历里写了【精通算法】,顿时让我肃然起敬,但是实际面试下来,又让人大失所望


  • 我们先量化一些东西,书本(比如本科的数据结构和算法教材)里常用算法/数据结构,40种以内,以红黑树这种比较复杂的为例,花2小时没有看懂,不要紧花4小时,4个小时足够在脑中充分演算,且写出代码来实际观测,如果还没弄的非常清楚,再加两小时,6小时,认真的话,看一个算法无论天资如何,应该都通透了;
  • 按上限计算,40种常用算法共耗时240小时,如果一天只能抽出来1小时,那么按一个月30个小时计算,8个月,各种琐事打断,一年足以


嗯?还不够吗?

好的,我们再加点料:
  • 二维/三维动归
  • 布隆过滤器
  • Trie树
  • 并查集
  • backtracking
  • 线段树
每个算法抽典型的三道题,彻底理解吸收,按一题投入6小时计算,再加120小时,按上面的算法,再多4个月而已;

零零总总加在一起一年四个月,而且还是比较宽松的估计;好了,认真投入一年半,写【精通算法】算谨慎乐观了;但算法导论的作者敢不敢说自己精通算法我不知道,我们这些晚辈做事说话要敬天爱人

那么下限呢?
这就比较灵活了,看很多方面,比如有的同学天资确实不错,别人觉得晦涩的东西,他很快就能理解,而且写出来行云流水;

不过这些都可遇不可求,但我更相信一点——世界上没有天才,你看到的只是那些非常努力以致于看起来毫不费力的人;

但这里非常关键的一点是,有些人看起来非常轻车熟路,不要轻易归咎于对方走了捷径,其实没有那么多捷径可以走,带着这样的思维考虑问题,很容易让你发现不了问题的本质,处处觉得自己不如人


  • 沟通:沟通是一个人非常的软素质,研发其实很多时候需要对接很多非技术同学,能不能把一个事情抽象的比较好,用浅显的道理同步给对方其实是非常关键的能力;具体表现可能是
    • 是不是可以脱离具体的术语直接阐述问题的本质?
    • 表述一个问题是否一次性能传递完整图景,而不是先说一半,然后一直补充?
    • 说话是否简明扼要,没有过多冗余的陈述?
    • 讲一个问题的时候有没有自顾自地说,完全不管对方能否听懂?



讲了这么多,我们再换一个角度看,所有这些能力

  • 知识记忆偏右脑
  • 逻辑分析偏左脑
  • 沟通能力偏综合


如果是一个只依赖天资的同学,一定会在某些点偏被发现有短板(首先老天不会制造完美),每个人都应该努力发现自己的不足并且加以弥补,这是“文化”二字的真实含义——在自身质地的基础上加上一些后天的东西(就像给器物纹上花纹一样),并且潜移默化地影响自己的心智

所以,结合上面说的,面试考察的这些点,其实只是海面上冰山的一角——面试时间有限,只能从现象上考察,有经验的面试官会通过现象来复原被折射出来的本质

真正的能力是海面下的冰山,一件非常需要长期积累,高投入的事情;但是一旦完成原始积累收益也极大,这将成为你和大部分人的分水岭,能够保高质量的职业生涯

最后,不要浮躁,不要短视,把能力提升这件事规划成在整个职业发展中有稳定投入的事情;无论你去哪个公司,一旦有这样的思路和可靠的执行力,必然会超越大部分人,只是时间问题


相关职位


社招职位

抖音音乐方向,iOS工程师

https://taou.cn/jqJLe

抖音音乐方向,Android工程师

https://job.toutiao.com/s/JL4yrub


2021校招提前批职位

所有校招职位都可以填写的我内推码:3UMFC7W

客户端工程师


前端工程师


2021校招提前批其他方向

后端工程师

上海:https://job.bytedance.com/campus/position/detail/6835619069605972237

杭州:https://job.bytedance.com/campus/position/detail/6835620228647356686

测试工程师

测试开发工程师

平台研发工程师(质量保障方向)

C++客户端开发工程师(音视频方向)

多媒体视频算法研发工程师

多媒体客户端研发工程师

高性能计算研发工程师

技术美术(特效技术方向)

C++桌面端研发工程师

渲染引擎研发工程师

AR特效开发工程师

多媒体图形/图像研发工程师

另,北京/杭州/深圳/成都区域可通过https://job.bytedance.com/campus/position?keywords=%e6%8a%96%e9%9f%b3&type=2投递。



字节内推所有研发职位(不分地点,不分社招校招)

https://job.toutiao.com/s/JL46bDV







全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐