发一点关于面试的建议
我去年毕业的,也面试过几家公司(我做linux方向,下面只谈这些)。
一般而言,大的公司很注重素质,小的公司很注重能力。
下面只谈与技术有关的面试经验吧,与技术无关的就不提了。
较大公司,比如百度华为等,主要考基本功,比如:
描述一下osi7层模型,实现strcat,说说kmp是怎么回事。 复试时会有会变态的算法题。
较小公司,问的就多了。。。
比如: 写个string类,写几个宏,问问对进程线程有没有经验,ipc有哪些,数据库会用么?
tcp/ip了解到什么程度,能写出一个http server来么?建个线程池怎么样?进程之间可以用互斥锁么?
对xml了解么?gdb会用么?
给弟弟妹妹的建议:
1. 注意着装。 别西服革履,但也不能太士,太俗。 站,立,行,都注意形象。
这个很重要的。 我面试时就吃这个亏了,因为面试时,问不出什么细节来,我的老板就对我不怎么满意,
只答应3000块钱。 干一个月,老板给加到5000。 老板说,当时看你走那两步路,以为你就那儿回事罢了。
2. 简历最好带作品。 没作品就现写去。 作品很说明问题。
其实我直到现在,还没有拿到大学毕业证,我4年离校后,开始去的是移动的一个子公司,我去那做飞信服务器。
当时我也好歹带上了自己写的一点东西,他们就挺满意的。(一个httpserver,一个远程ide)
3. 去google.com/codesearch,去搜索c string一些函数的经典实现,下载下来,背下来。 别信网上乱问出来的,
因为不一定你问出来的答案,就能达到标准库的水平。 这些函数指的是:
strlen, memcpy, strcat, strstr等。
4. 排序算法都写一遍,还有什么kmp的。 有兴趣写写红黑树等。 用不着图算法,一般没有人问的。
(不要以为这些算法没用。 这些算法确实很基础,会做了,不一定保证人家会录用你,但做错了,等着你的肯定是冷笑)
如果也和我一样,做linux服务器方向:
1. bash基本命令注意一下。 比如进程,文件操作。 awk和sed知道一点点就行了。
2. 学学python或是perl,用不了多少时间的,这个会有用的。
3. gdb要多练练。 会用gdb,老板会很喜欢你的。 有很多错误,用gdb很容易找出来。 比如,进程收到sigio这个信号后退出了,
一般情况下,是不太容易发现的,因为这个时候是进程主动退出的,而且往往是异步的,很难发现。
如果用gdb,一下子就知道怎么回事了。
再说一个常见的bug,就是程序一下子死掉了,显示一大堆库的信息,比如libstdc++.so什么的。 这个时候,有可能是把string放到
printf后面了。 (应该是string::c_str()这个函数)
4. 如果有做网络服务器方向,研究一下the c10k problem。
祝弟弟妹妹位好运了。