谈谈软件行业面试(转)
工作这么多年,面试无数次,从刚开始的技术雏儿,到现在的自我感觉良好。面试成功总是有很多偶然,而面试的失败,总是很多让人不解。
首先,软件企业招人,有很多雷人的行规。
1. 有的公司,喜欢一来就做题。这些题目呢,可以看得出来,出题的所谓的牛人,也是网上好好找了一番,狠狠地百度知道,恶补了一下基础知识,然后上来就是一大堆题目,来雷倒你。
什么TCP IP7层架构,考考new ,malloc ,delete ,free区别,问问系统架构等等。我可以明确的说,随便拎一个没有准备的程序员,他不见得能从头到尾说出来。那些能现场做出来的,就跟中国高考一样,临场抱佛脚的。我讨厌这样的面试,我一碰到这样的面试行为,打心里就鄙视这样的公司。那些临场抱佛脚的人,往往是sucker,loser。虽然以前我看过一个文章,说“如果你面试前,你都不准备一下知识,那你态度就不行。” ,我觉得吧,那位HR真太把自己公司当回事。回答不出来这样的问题,不见得他就是技术垃圾,他指不定写代码比其他人都快,解决问题的方法,比那些保守派还要新颖。
很多IT公司一直抱怨,招不到人,他们的解决途径,就是更大范围的猎头拉人来面试,以期待那些从各类变态面试中过关斩将过来的变态程序员。往往到了那一步,已经不是真正公司想要的人了。
2. 有的公司,面试的人很不专业,没有接受过专业培训。
这样的人,随意性太大。大都程序员,喜欢以偏概全。所谓,井底之蛙,他觉得他了解足够丰富了,今天我掌管着你的人事权,你要想过关,先得让我看得舒服才行。
于是,一个windows资深专家,问一个手机嵌入式专家,你懂不懂模式窗口啊?你写个代码给我看看。结果,当然是他被PASS掉了。实际上,这样的公司招进来的人,都是同一个领域,同一个技术能耐,完全没有新意,创新,反而内斗极其严重。
3. 有的公司,真的不适合你
我去熊猫面试过,他们的HR对我说,我估摸一下你的工资啊。然后当面,闭目思考几许,对我说,6K5,你干不干?然后夸夸其谈,说我们项目80多人,每个月总支出70,80W,真不在乎你这个价。但是呢,还是为了平衡一下内部行情。我当场雷倒。这工资,原来是平衡第一啊。
我去过华为面试,他们技术关过后,估计对我开了1W的要求感到不开心。上来就说,如果部门给不了你要得薪水,你最低能接受多少?这里我要插个话,就是你永远不要透露你的最低底线。你可以这样说,薪资由市场竞争决定,竞争的人多,我得要求自然低。如果公司觉得我真的很适合这个位置,那就开一个合理的水平,我来考虑。记住,切不可说确切的数字,永远只有你拒绝他,不可以直接被公司拒绝。
不过呢,现实总是很残酷的。华为不要我,他说,我们需要一些技术过关,耐得住寂寞的人。呵呵。换言之,他们需要呆子SB,只是编程工具罢了。
我去过各类各样的面试,诸如MOTO,他们有一个面试组,专职出题,面试。可谓阅人无数,喜欢各类***难人的C,C++题。变态得无语。试问,他们真需要这样的人吗?进去的人,每天都在面对这样的题目吗?解决题目,难题的办法,难道是一道技术题可以考出来的?智商高与工作成果,是线性比例吗?
当然,我还去过富士康,这家变态的台湾企业,他们给你开出来的工资,大部分是你上一份工资的110%。我觉得他们没接受过马克思经济学教导,一个员工的工资,完全由市场竞争,摆在台面上得offer来比较得出。怎么可能是110%这个狗屁说法呢?
那种下三烂的IT企业,就不提了。有时候不了解,贸然答应去面试,结果刚进门就失望了。有的太小,有的没有很好的团队,有的内斗严重,有的就把你当个工具。
**********************************************
我一直想说的是,一个员工,适合不适合你,80%不由技术决定。他热爱这个公司方向吗?他热爱技术吗?他兴趣能坚持持久吗?他是一个有理想的人吗?他愿意为了工作,努力奋斗,积极学习吗?他性格开朗,善于言谈吗?
如果有人能做到如此,我相信,他去任何一家技术背景大体相符的公司,他都能胜任。
*******************************************************
最后,写一个程序员的基本学习术。
为什么管这个叫学习术呢?因为他跟魔兽技能一样,非常好用。
任何一个技术,他都有教程。第一个写这个技术的人,他会留下各类教程。
而我们这门技术,就是在各类样例代码的基础上,累积起来自己想要的功能代码。
比如我看到一个Helloworld; 可以弹个对话框,helloworld。
那是不是我可以改一小段代码,让他弹2个对话框呢?是不是我改一段代码,可以添加个button呢?能否继续添加个Texteditor呢?能不能继续响应一下button事件呢?依次类推。。。无数功能一个个垒起来。
其中过程中,任何一次出错,都回退代码到上一个过程,反复研究,为什么这一小段代码会出错呢?
当你技术小有心得后,试着自己new个project,看看能不能写跟example一样的代码呢?
当你遇到错误后,用Araxis Merge来比较2个project,无论是project文件,或者是配置文件,或者是代码元素。一行行对比,找出自己的错误,我相信改正确后,你就对一个Project的创建完全轻车熟路了。
我相信,很多菜鸟刚入行进公司的时候,你会面对一个已经成型的项目,拿到一个已经完善运行的代码。
这对你来说,简直是绝好的机会。你可以在一个已经健壮运行的代码上,修改部分业务逻辑,甚至你都不需要了解某些功能,具体代码走到哪儿。 随着慢慢修改代码,DEBUG代码,你渐渐感觉索然无趣,你可以试着自己写一个项目功能,也许只是一部分,重新的组合,但是你已经具备一个瞬间写出来一个完美的project的能耐。
而这时候,如果我问你其中某个类,之间的内存关系,或许你一无所知,但是你实实在在的完成了项目。
这就是那些软件企业HR永远都搞不明白的道理。
他们总是不断的抱怨,为啥招不到想要的人?为啥总要依赖外包?事实上,是他们sucker.
我写这样的文章,并不是对环境苛刻。实际上,每个人都会遭遇压力,遭遇困难,也不会瞬间就出招解决。菜鸟,选择了离开,寻找新的环境,高手选择了面对压力,解决它。菜鸟在一次次跳槽后,明白了一个道理。压力无处不在,重在,那时候你怎样解决了压力,带动了大家。