大三下面试黑历史

preface

其实这是一篇填坑的Blog。怎么说呢,因为最开始是在2013年4月的时候动笔的。但是当时烂尾了,后来各种事就一直没管。然后就一直拖到今天了。。。由于时间跨度太大,导致之前写的一些东西都超过TTL了,不得不重新改。最近感觉比较浮躁(其实一直都是这样好吧),想静下心来写点东西。

Tencent

实习生(4月)

Tencent 实习生招聘,LZ报的是技术运营,有260人参与该职位应聘。乍一看,好像挺多人的样子,其实相对于这次实习生招聘的总面试人数6000+人来说真心不算什么的了。 正如前言,这周的事实在太多,各种项目开发,文档编写都扎堆,所以也没有很好的准备这个笔试。但是其实我本来就觉得,笔试这种东西本来就不需要准备什么,因为虽然都是考试,但是跟我们广义上的考试性质不一样。企业并不想招一个考试帝进去却无法为其创造价值。既然如此,最好就是平常心来应对。话随如此,但是考试毕竟还是要求临场发挥的,因此做一些必要的准备还是很值得的。所谓考前突击,对LZ来不过是心理安慰罢~

说到Tencent的运维笔试题,LZ觉得可以好好总结下。首先,以基础题为主,内容包括计算机组成原理,操作系统(Linux),数据库(Mysql),C程序设计与数据结构,计算机网络,还有一些逻辑分析题。大部分是选择题,最后有3道简答题。经过这次笔试,感觉自己在数据库方面确实是有待提高啊,对于一些概念性的东西,由于没有在实际项目中试验过,印象不够深刻,理解不过透彻,忘了也不奇怪。另外Linux基础知识还是需要不时review一下,即使经常用,但不能只停留在命令层面。

校招(9月)

校招的笔试貌似更简单,主要问题就是数据库的right join,mysql的C/S连接方式,另外还有字节对齐,寄存器等相关方面。至于面试,倒没有太大问题,前面两轮的面试官都非常nice,问的问题都偏向基础,Linux基本知识,网站优化策略,因为LZ也算有点自动化运维经历,在这方面也稍微聊了一下,然后虚拟化方面也聊了一下。我还跟第二个面试官探讨了一下学习技术应该是广度优先还是深度优先的问题。个人感觉吧,大学期间可以广泛涉猎各种不同的技术(特别是学校没有的),对其有一个感性的认识,了解它的特性,如果有感兴趣的话,再深入研究也不迟。我是大三才开始学习Python,相对于之前用过的PHP,Shell script,Java等(才不会黑C/C++呢),真让人眼前一亮啊,其强大的语法和功能,严谨的代码结构,丰富的第三方库,对大多数*nix系统的原生支持,都是非常棒的特性。可惜学校宁可花几个课时教你怎么在Windows上安装jdk和Eclipse,也不会尝试去开一门新的基础语言类课程。sign~(貌似跑题了?

Alibaba

阿里巴巴的面试经历同样有两次,第一次(实习生)笔试直接跪了,略过不表。再次参加阿里的笔试,虽然已经做好了被虐的准备,但还是不得不感叹,还是阿里的试题有技术含量。虽然大部分题目不算难,都是基本概念,但涉及的知识面相当广泛,而且不是单纯的理论知识,还需要一定的实践经验才能回答。这才是好试题啊我去。。。

简单记录一下题目的类型和keyword:

  • 计算机体系结构:反/补码, CPU指令流水线(吞吐量)
  • 概率论,离散数学(矩阵链积,这啥。。) 这一类数学基础考得不少
  • 算法: 贪心(Dijkstra,Prim,kruskal,Floyd),排序(堆排序,时间复杂度,空间复杂度),haffman编码
  • 数据结构:环形队列,stack,二叉树遍历
  • 操作系统:CPU任务调度,内存屏障,自旋锁,信号量,volatile关键字,循环优化(内循环与外循环,缓存命中率)
  • 数据库:ACID
  • Unix编程:利用线程的调度随机性和sleep实现固定长度数组的伪随机输出; select VS epoll
  • 普通编程:长度为N的数组X,只遍历一次,求方差; C++类的使用(Debug); 不使用临时变量交换两个变量的值
  • 实际应用:用户登录淘宝之后,网站如何保持登录状态,如何验证用户的登录和保证其安全性

对于笔试中我不了解,或者不确定的题目,考完以后我都会去找一下相关资料。事实证明,笔试的题目在后来面试的过程中一般都会有提及,所以在这方面有所准备会是个加分项。而且我觉得,考试只是检验知识面的过程,同时基本上都是基础题目,如果有不了解的地方,说明你的知识面出现短板,应该特别注意一下,不需要说十分精通,但是基本概念和操作还是应该会的。

说到面试,这里必须赞一下大阿里的高效,两三天的时间就把技术类的同学都面完而且敲定了最终名单。这比Tencent要好很多。另外要大赞淘宝六一同学,这是我见过最好的面试官(目前为止),没有之一。事情是这样滴,第一轮面试安排我的时间是早上11点,当时刚面完Tencent,直接就过去了。但是貌似有三个相同岗位(System Engineer)的童鞋都安排都同一个时间点了,而且只有一个面试官,所以我等了将近两个小时。到我的时候,面试官(就六一嘛)了解我的情况,然后亲自去拿了一些饼干和水之类的给我(其实可以让HR的小同事去拿的),说一会可以边聊边谈,不用客气哈。其实我已经紧张得感觉不到饿了XD。后来面试的过程十分轻松,六一同学给人的感觉就是非常的和善,就像一个慈祥的长者在和你聊家常,完全没有某些面试官那种咄咄逼人或者不屑一顾的感觉。在技术方面,更多像是在探讨,而不是面试。一个小时,聊的很尽兴。出来的时候阿里管饭了,接着进行二面,然后隔天貌似就发offer了。

NetEase Game

网易游戏是我最喜欢和看好的公司之一。暑假的时候曾经投过NE的实习生,虽然一面跪了,但是NE给我的感觉就是“一间有态度的公司”,不只是新闻的态度,对待员工甚至求职者,也有很好的态度,可以说是我经历过面试安排最合理和周到的公司(也可能是当时人数比较少吧)。而且NE对技术的要求也很高,回忆NE的SA-Dev/Ops一面,是有两个面试官。问题涉及的知识面非常广,包括但不仅限于算法,Linux基础,网络,安全,Unix编程,网络编程等,而且会就简历提到的知识点逐渐深入。现在我依然记得的两个题目,比如说算法题“如何随机输出一个任意长度的数组?如何判断输出足够随机?”,或者聊到科学上网的时候,“如何在Linux CLI上设置全局代理”等等比较实际的问题。由于当时还是很水的,所以整个过程基本上是单方面被虐(何况还有两个面试官+两部macbook车轮战,瀑布汗)。尽管如此,我觉得对我个人的面试/成长经历还是很有意义的。因为是大公司处面,我彻底意识到自己的基础知识有多薄弱,一些不起眼的基础理论缺失往往制约了你往更高层次的发展。同时有些Linux常识,你自认为很熟悉,实际上只是知道怎么用,并没有深入了解背后的原理。或者说看过没有理解,然后很快就忘记了。

拿到阿里offer之后,还是决定去参加NE的校招笔试,就是觉得NE的试题应该会让我从某种自满的状态中醒悟过来–“你仲未够水准啊”龙马君如是说。事实也确实如此,试题考得相当细与广,而且涉及很多实际应用的软件知识和概念(如mongodb,redis,mariadb,memcache等)。如果对比Tencent和ali的试题,Tencent会偏简单基础,ali则有较多理论知识,也偏深。NE的试题虽然也偏深,但是偏向概念和应用,对面试者的知识面和实际操作经验有一定要求。给我印象比较深就是正则的知识考的比较多(awk,sed)。

尽管如此,LZ还是止步NE一面。依然是那两个面试官~颇有意思的是,貌似他们也认得我,然后还问我还记得之前的面试题不,简单回答/分析一下。自我感觉吧答得不太好,一是因为年代久远(半年前),有些细节记不清;二是SA-Dev方向要求确实高点,面试官估计看出来了,经过半年我还是个编程渣渣,毫无长进啊,sigh~

Comments