我的阿里、金山、中华、腾讯、360、网易面试总结(转)
这篇详细的写写笔试面试的经验,开头就像每次写嵌入式的博文先介绍环境一样,我先介绍个人实际情况。
专业:计算机软件与理论
学历:硕士
项目:一年多的物联网相关,主要是嵌入式
Linux
和
ZigBee
、
WiFi
等;一年多的
Android
相关。
可以坦诚的讲,了解得足够,深入有限,但
对于一般的技术预研或提供部分解决方案应该还是可以的。(原因很简单,没有成熟的产品支撑,都是
Demo
。)
实际情况:专业基础知识没有系统复习过,都是本科时期的;没有实习经历或者完整的找实习经历;平时没有算法练习(比如做
ACM
、
POJ
上的题,只是听
过);参加过一两次程序设计比赛,都是晋级奖、优秀奖;最后可怜的是不常看技术书籍,都是项目需要了现学现用,因此除了几篇博客外几乎没有技术积累。我的
情况基本上是一穷二白,大家对比可以确定自己的优势(貌似没有比我还劣势的了吧!)。
统说
进正题,说说我的经验。总的来说,先系统的复习专业基础,其中《数据结构》(严蔚敏)是重中之重,其它的可以总结常见的笔试面试题中抓重点复习;抽空看技
术书籍,要针对自己的方向选择;最后针对公司多搜集笔经面经中的常见题;如果有必要还有看看行测,特别是智力题。
锻炼纸上写代码的能力
表达要有条理,分点细说;可以的话对一些问题思考一二十秒,慢慢说出;不要像我又急于回答,说话又太快。
心里上要镇静,即使表面上看起来稳重。我是一直没有做到,所以有机会了适当的锻炼。
细说
先推荐书籍:
《数据结构》(严蔚敏):这本必须搞定,纸上没事写个冒泡、选择的吧,最好
KMP
、快排也写下;然后轻松得处理链表操作,插入、删除、反转;
9
种排序对
比,找人多说说,用自己的话表达出来;其实可以系统的复述其中的重点,我就不一一列举了。其它的如操作系统、网络、组成原理可以抓重点,建议看本考研综合
复习的书。如果兼职考研复习辅导,那么恭喜你,找工作一半已经是个体力活了。
《程序员面试宝典》(第三版),居然强调第三版,是因为虽然大体内容一样,但是第二版还是有不少错误和解释不清的地方,对于不太思考的人要慎重。这本当然是笔试、面试必备之书了,如果实在没有复习时间,那么就捧着它吧,能帮你挡掉不少。
后面的是根据自己互联网公司
C++
、
Java
方向等来看待了
《编程之美》,比较有意思,其中常考的也只有几个,下面给出;然后是《编程珠玑》的前两章
《大话设计模式》或
HeadFirst
的《设计模式》,没有实践经验的只能粗略的了解,常见的单例模式要会写。三类:创建型、结构型、行为型,要能去理解
划分,当然不用真的每种模式都非常清楚,但要有能说得上来的几种,而且最好能有实际结合,或者知道
Java
语言里
I/O
类的装饰者模式等;最后就是常见的
开放
—
封闭原则、聚合复用等等。
《
Java
编程思想》,需要好好的多读几遍,之前我也大略读了,还写了博文,
O(∩_∩)O~
那写得简直垃圾啊,后面再读,做笔记,真的会发现理解有变化
啊。其中的
Java
内存管理、字符串、内部类、容器不得不看啊,而虚拟机的理解可以看看《深入
java
虚拟机》,对了将内存回收的可以看看《
Java SE 6.0
编程指南》中的相关节。
《
C++ Primer
》,我主要是看的
Java
,这本只是部分阅读;但是《深度探索
C++
对象模型》是看了几次,不管
C++
还是
Java
都值得去了解一下,而《
C++
沉思录》我功力不够,依个人情况吧。
《
TCP/IP
详解
卷一》,这个适合没有时间复习原来课本的同学,特别是里面的
TCP
,一定要细读,能画它的状态迁移图当然好啦;分析分析与
UDP
的区别。
《
UNIX
环境高级编程》、《算法导论》前者写
Linux
下的程序时是非常好的工具书,而后者据说有些点被问到过,当然有时间平时能浏览最好了。
《
UNIX
网络编程》两卷,《深入理解计算机系统》据说都是非常必要看的,只是我个人还没有耐心的品味完,可能我还没有发现到吧。
没想到,光写推荐的书籍就列了这么长的文字,我推荐的确实是我看到的,你认真的阅读绝不会亏的;如果一开始有些不适应,多实践些,再细细看,细细想,坚持下来,不要书到用时方恨少。