您的位置:首页 > 其它

阿里腾讯2016校招在线笔试有感

2015-09-07 00:49 218 查看
  今年有一个数字听起来很可怕。阿里的网申数量去到170W(还未截至网申的数字),技术类毫无疑问是最多的,我估计会超过100W的技术网申。更加悲剧的是,原计划3000个校招名额突然缩减85%,最后只留下15%的人,只有400多人。这个数字比高考还要残酷得多…

  我去参加阿里和腾讯的面试纯属是因为想做做他们的网申题目,感受一下自己和国内顶级IT公司的距离。刚刚才写完腾讯的网申试题,阿里的笔试在8月23号就已经结束了。整体感觉还不错,不过也发现自己很多知识盲点,现在可以做一下总结和个人感受了,希望可以收获一些学习上的启示,顺便让师弟师妹参考参考。

  昨晚阿里腾讯的在线笔试,我有以下的一些感想:

  一、基础扎实还不够,还要扎得够深。

  这两家公司前几年的一些试题都可以在网上搜到。对基础要求非常非常高。以前我们编程序,很多时候都是能跑就行了,有BUG就修BUG。而他们的试题往往是从最简单的代码中做最更有深度的挖掘,经常考我们对某种编程语言的理解程度:譬如今晚的试题就有——C++类的变量构造顺序,Java容器类的实现原理(采用的数据结构)等等。以往使用这些的时候,都不会搭理原理。至于如何能够学到那么深的程度,大概是需要编写大量的代码和排错吧。

  里面的试题还涉及到很多很多基础课程的知识:操作系统中设备利用率的计算(课本的课后习题),TCP的状态机(计算机网络),数据库设计理论等等。这些知识,书本或许可以帮忙翻出答案,但我个人认为是不可能仅从书本上就学好的,必须结合足够多的实践才能理解。

  二、基础知识的交叉运用。

  很多时候,我们学操作系统就是操作系统,学C语言就是C语言,数据结构就是数据结构,而很少会把这三连接起来。在腾讯和阿里的编程题目中,都有一道与操作系统相关的编程题目。题目的要求大概就是希望学生可以利用数据结构和算法来处理操作系统内部一些具体的问题:例如系统IO问题,多线程下载问题等等。这就要求我们能够深入操作系统的运作原理,算法能力足够强,语言运用要好。

  嘻嘻,这类的编程题我都没做好,死翘翘的,腾讯我直接在这题上交白卷了。

  试题特点我也只能总结出上面那两点了。本来打算拿里面的题目来多分析分析,后来感觉也没那个必要,自己也没那样的能力。不过做完这两家的公司,虽然不知道里面的技术工作,但也可以想象到大公司和小公司的差别。

  前天我去了大学城面试了一家小公司,技术主管是个亲切的人,他把公司的业务架构和我说了一遍,希望让我了解岗位的工作。那家小公司主要就是通过web技术对外提供一种测评服务,当然具体的业务实现我没敢追问。而与之相比的阿里,阿里内部编程比较偏Java语言,他们已经有自己定制的Java虚拟机了,框架就更不用说了。从网申试题来看,不难感觉到阿里和腾讯对基础的重视,毕竟有足够深厚地基础才能更好地理解公司内部的框架,快速让自己达到公司的要求。

  最后再写一点点感想。

  基础决定技术潜力。扎实的基础可以使我们更快地掌握一门新的技术。我在大三的时候非常荣幸得到导师的指导,耐下心来完成数据结构的编写和C++的深入学习,虽然现在还没有感觉到自己有多牛,但是最起码不会让自己觉得有心无力。计算机思维是一种难以言表的东西,但它却真实地存在编程人员的内心深处。而真正的牛人往往能够非常敏锐地联想到很多基础的知识并将其交融到一起,形成新的技术产物,让我等渣渣佩服到五体投地。

  基础学习是一件很痛苦的事。这是我最想说的。计算机知识体系像一个沙漏状,上半部的业务实现,框架知识一大堆,下半部的计算机原理,又无比复杂,知识纵横交错,而编程者往往就是从沙漏的中间开始进入编程的世界,无论往上走还是往下走,都是一件非常艰难的事,需要大量的学习。而我个人觉得下层的基础学习更为艰难,首先内容非常枯燥,要动一个测试来验证自己的猜想有时候需要非常多的准备,最让人头痛的是基础知识体系的耦合程度,实在太高了,在发现一个BUG的时候,要解决它往往不是单方面的知识,需要非常多其它科目的基础知识。要灵活地运用自己知道的知识,仅仅看书怎么可能够呢?还是上文的那句话,结合实践,多多折腾是学习计算机最好的捷径了。

  曾经我怀疑编程是不是需要天赋,答案当然是不需要。假如非要说一点来解释牛人为什么牛,大概是因为有的人天生就比别人多一点面对挑战的勇气和耐心吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: