总结一下最近面试的经历

最近去尝试了一把腾讯和阿里的校招,虽然结果并不是非常美好,但是也总结出了一些问题,特此分享出来。

截至到目前为止,走腾讯的提前批,简历已经被捞起来两次了,第一次铁定是挂了,第二次应该也是挂了,暂且不抱希望了,后续还有阿里的笔试,或许可能还会再参加一次面试。

可惜么

我觉得,知识疏漏带来的遗憾,不可惜,因为确实存在遗憾,不可避免。但是第一次的面试经验存在不足带来的遗憾,觉得很可惜。不过从第一次几乎完全被动,到第二次的涛涛不绝,我觉得总结之后这个成长的情况还是很客观的。至少我学到了东西——如何面试

同时,通过面试也逐渐发现了再细化后喜欢的方向——还是网络,没错。只不过接下来会开始往更高的地方去,好比DPDK。去深入学习DPDK,来解决IA架构下SDN转发平面的性能瓶颈

感觉如何

那么对这几次的面试总结一下,发现,基础这东西,急不得。为什么这么说,因为在众多平台上看到的对于算法的目的——锻炼人的思维,短期刷题,好像没有多少卵用,毕竟也无法面面俱到,纯属碰运气。碰运气这种事很可惜我向来就没看好过,所以决定放弃了这种急躁的方式,打算回归正常的生活,即该写项目写项目,该上课上课,该出去玩出去玩,只不过每天多了一个活动是——手搓一个算法,并且尽可能做延展优化。代码后续会慢慢更新到GitHub,可能不会一天一推

毕竟,博主我更喜欢稳中有进的方式,即一边保持正常的生活秩序,一边还像以往一样稳着来学东西。

博主我有这么两句佛性的座右铭——“注重过程,水到渠成”“做过的最好的打算,就是没有打算”

前者是对这么多年来学技术的一个过程性的总结,很少去冲着一个目标死磕,大多数情况下,过程中所能延展的点,几乎都查过资料了解过,这也带来了一个很大的现象是——了解的东西还挺多,但是不精,过程持续周期很长,但是好处也有——知识关联度相当高,即很容易相互连结起来去发现其适用场景和推出其他实现的原理。

后者是对面试后再回顾的一个总结,学技术这么多年来从来没有做过任何打算,只是凭着爱好去学,仅此而已。没有了任何功利性的打算,觉得可能是做过的最好的打算了。

简历总结

自己总结

就简历而言,总结一下近期的感受。

  1. 重点要突出,让看简历的人一眼能看到,你最擅长什么
  2. 简历上的侧重点(即所表现出来的重点)要是自己纵向深度足够的东西,因为这是交流的重点
  3. 简历短一些,太长会劝退面试官,而且也容易让自己找不到重点

引用总结

在牛客上看到了一位阿里的技术专家发的做面试官的感受,觉得还是很有参考价值的,贴过来分享一下

简历是面试官对你的第一印象,一定要将重要的信息突出。我看过无数流水账式的简历,只是简单把信息进行罗列。比如什么时间参加了什么项目。一般而言面试官对写在简历上的项目会非常感兴趣,一定是会重点交流的。如果这个项目自身参与不多,对细节不太了解,就不应该写上去。反之,对于自己参与度比较多的项目,也要尽量提供更多信息。要遵循 STAR 原则,如果没不了解的同学可以学习一下。也就是需要讲项目的背景,你的理解,你的方法和结果很好的交代清楚。这个实际也反应出了候选人对问题的思维模式,我建议所有同学都应该在面试之前问一下自己这几个问题。

详见文末引用1

面试总结

自己总结

  1. 会有一个自我介绍,在网上也看过一些面经,一般在介绍完基本信息后,要开始领起重点了(即你能拿出手的经历),话题能领好的情况下很容易控场
  2. 可以尝试去揣测面试官想问什么,这个就看简历上留的什么重点了,其次也可以通过博客的统计系统跟进其所浏览的文章(如果提前看博客了的话)和浏览深度,包括每篇文章停留的时间,可以大概评估出来其的兴趣点
  3. 尽量避免冷场
  4. 整理好自己的技能树,如果面试时有条件的,可以看着技能树说。这个技能树只能是某个技能的名称,而不是长篇大论,旨在面试时能沿着技能树向下找到Topic讲下去,避免忘记该讲什么然后冷场
  5. 最后会问一些独立的问题,主要是考察基础。对于这部分独立的问题,我现在也摸不清该怎么讲,因为我在第二次面试时,面试官问我的是“打开浏览器输入www.qq.com,按下回车后,接下来都发生了什么”。其实这问题能侧重讲的东西太多了,如果时间充足我能给讲一个钟都没问题(笑。因为从键盘按下,主控判定键位状态,到编码后通过USB传输,再到计算机,会考虑到USB总线位置,又能延展出来一些细节,虽然这部分不是我非常清楚的,但是大概原理还是能表达清楚的。从计网的层面来讲,就是沿着OSI向下,细致讲TCP的话就会有个3次握手4次断开的情况,细致讲L7协议还会考虑是HTTP/2还是HTTP/1.x,甚至还有可能是QUIC,这个就是UDP了,讲L7下边的加密时,就又可以考虑TLS/SSL了,还有SNI的范畴,考虑L3的话,从你家到ISP骨干网,这层层路由,从普通的局域网路由,NAT后通过BGP路由到不同AS(可能还会有Anycast的范畴).....考虑协议的话,刚刚的QUIC和HTTP/1.x的底层协议不同,又可以扯上Linux的境态,即TCP重传在内核态,UDP重传实现在用户态,那么又可以延展上内核态和用户态间的数据复制和减少复制所进行的内存映射优化.....如果我们考虑到IDC后边的部分的话,就又会有一个CDN,存在一个动静态分发和缓存问题,缓存又分命中和位命中,请求又有可能限流,那么此时就可以去细讲缓存实现(LRU/LFU,哈希表+双向链表)和KV存储,甚至还可以去谈对象存储(其实也就是个扁平化存文件的KV数据库)限流就又可以扯上令牌桶...首个请求响应到客户端时,我们又可以考虑浏览器的解析过程和对样式和js的加载过程...考虑CDN的架构的话,就又可以谈上DNS负载均衡在CDN的应用场景...所以面试管问到这个问题我时,我懵了一下,不知道该从哪里讲起,不过最后沿着CDN讲下去了,但是我实际上并不知道他想侧重了解什么,所以我也不知道对于这种问题该怎么讲出最合适的答案。看到这里的同学们,就为你们的耐心鼓鼓掌把,能看我这么多废话......

引用总结

还是上边那位技术专家写的,就阿里对候选人评估的几个标准做了介绍

良好的编程能力和代码习惯。可以毫不客气的说这一点做好已经超过60%以上的同学。今年阿里的校招有一个编程环节,只有经过这个环节之后才能进入面试环节。虽然编程的分数只作为参考,但是会影响面试官的第一印象。我最近面试的很多同学分数都很低,这种情况我一般会给他“加试”一道简单的编程题,主要考察平时是不是写代码。对于经验丰富的面试官,基本上看一眼代码就可以看出。

扎实的基础。基础非常重要,这个和不同岗位的关系相关。基本上来说如果对本专业的核心课程掌握比较扎实的情况下,就不会有太大问题。之所以对基础比较看中,是因为我们在实际的业务中,会遇到各种各样的问题需要解决,扎实的基础和学习能力是支撑我们不断前进的动力。

开源项目,paper或者行业视野。这部分的要求比较高,但是如果平时注重积累,也是可以做到的。推荐大家平时要多关注行业,可以多锻炼自己的输出能力。可以是写技术文章,发起开源项目,或者参加比赛等。

详见文末引用1

看完这个我就很懵了,为什么平时写代码也写了......腾讯第二次面试挂在所谓“加试”的简单的编程题上了........唉

写在最后

不要被外界情绪带动浮躁。还是要讲究一个策略的——稳,中有进

引用

  1. https://www.nowcoder.com/discuss/393087?type=0&order=0&pos=33&page=1