最近有个朋友面试腾讯的实习岗位,结果不是很好,聊了之后发现新手很容易掉各种坑里,这里简单整理一下初次实习或者面试容易碰到的问题,只要几分钟时间你就能看完,但是每一点都很重要。
很多人问我工作了没,这里介绍一下我自己,我是dansen,工作了很多年,一直从事游戏方面的开发工作,去过很多公司面试也当过很多次面试官,现在在武汉一家小游戏公司做开发,待遇还可以,和某乎上那些人不能比,但是也够混口饭吃。
寻找工作机会
初次找工作机会,最重要的是简历,这时候一份亮眼的简历能够最大限度的拿到面试机会。简历除了基本信息,需要按重点编写你的履历。如果大学期间项目经历比较多或者比赛拿奖多就不用多考虑了,如果没什么特别的点,至少把一项自我感觉还不错的编程经历写多点,比如毕业设计甚至课题设计都可以。
特别是如果你有写操作系统或者编译器、网络库的经历,可以重点写,这个比普通的项目经历强多了。
除了内容,简历本身的美观程度至少占50%的重要性。这里推荐职徒简历,如下图:
使用默认的样式都已经很好看了,看起来很专业有木有!
面试准备什么内容
收到面试通知后,需要做什么呢?面试之前其实做不了什么,毕竟只有很短时间,应该说是找工作期间需要做什么,对于应届生来说,其实项目不是最重要的,大学课程才是最重要的。大学课程是基本内容,具体包括算法与数据结构、面向对象、操作系统、编译原理、网络、数据库这几大块。
其中面试最多的估计是链表与树、进程线程、TCP/UDP这些老生常谈的内容,网上有很多面试题,但是没必要都掌握,把重点理解透,比掌握一堆知识强。最好是自己写写多线程多进程的网络程序加深理解,而不只是背书袋。你的工程经验能够让你轻松的说出进程线程的区别、TCP/UDP的区别,TCP各种模型的区别。
然后就是多回顾下你简历里面最得意的部分,把那部分吃透,这样可以在面试官问你的时候游刃有余。
如何应对面试官
如果你做到了上面几点,可以搞定大部分面试官。
面试官一般会先看简历大概了解这个童鞋会哪些东西,特别是你们是应届生,会比较温柔一些,不会问你们不懂的知识。
但是记住,大学课本的内容是会问的,不管你写没写熟悉还是了解。因为这是你们大学四年要学的知识。
然后很重要的一点是要学会说不知道,如果你只知道一点皮毛,你也要说不知道,先说不知道,再说你了解的那点皮毛。这样至少会让面试官觉得你很诚实,他也不用纠结要不要换个话题。
不知道就是不知道,不用犹豫不用觉得不好意思,技术问题那么多,你就像一张白纸漏掉一些知识点很正常。面试官可以临床发挥无数的问题问你。
然后就是一定要把话题转移到你会的知识点和项目上,上面我说了,你会的就一定要理解透,比如你写过OS系统,面试官一般都会好奇问问进程与线程的问题,如果你把真个进程与线程的实现非常细节的甚至包括汇编都告诉面试官,绝对能把面试官说懵逼,然后他会继续问你fork函数,如果你真的实现过fork,你又可以double kill把面试官说懵逼,接着他可能还会问进程调度、线程调度的性能问题,如何处理IO中断、如何统一处理文件和网络socket,往深的地方问能够超出很多面试官的知识上限,如果还能trible kill,这时候再讨论一下分布式操作系统的设计等等。
任何一个问题牵扯下去都是可以出几本书的内容,不用担心没题目。面试官更多的是希望能够看到你的优点和对技术的执着。而不是做什么都浅尝则止。如果你连进程和线程都分不清,面试官肯定不会深入的问别的,他会马上切换话题。
一场面试下来有1-2次深入的分析就可以,其他的问题都会简单问一下。
面试过程中一定要声音大点,就是输也要有气势,年轻人自信有活力也能得到面试官的青睐,说不定你技术差点但是他感觉很合得来呢。
关于第一份工作
对于程序员的第一份工作是很重要的,重要程度不亚于一个好学历。能进大厂尽量进,待遇高低没那么重要,待遇可以等一两年再争取,只要努力很快能涨上去的。而且后面跳槽也很好找工作。
我那个朋友面试的问题有(非常感谢这位朋友提供):
1 虚函数表(重点是理解基类和派生类函数表的加载顺序问题)
2 进程和线程
3 poll和epoll(注意epoll的实现中包含红黑树)
4 tcp和udp
5 红黑树
6 用过哪些stl接口和类
好啦,最后祝大家新春能够找到满意的实习和工作啦。