LZ前言
本文是交流群当中一位猿友让LZ帮忙发表的面试经历,由于他本人极其低调,因此LZ这里也不好公开他的联系方式了。也正是因为低调,才让LZ代为发表,因为他连个博客都没有。不过LZ也不能只是往博客上一贴就完事了,LZ会帮忙简单的调一下格式,并且偶尔加上一些旁白,就当是LZ的评论吧。
如果有哪位猿友实在想结识本文的原作者,可以加入LZ博客左侧的QQ交流群。好了,LZ的废话就到此了,现在就正文开始,以下为群中这位猿友的原文。在原文之前,LZ声明一下,其中用【】包裹的是LZ的旁白。
引言
在北京工作了四年,一共也没经历过几次面试,倒是挺羡慕那些经常去面试的人【LZ想说,可能你羡慕的人都反而羡慕你有工作】。他们也大多是抱着检测一下自己的水平,练习一下技巧,扩展一下自己的视线的想法,当然也有确实是想换工作的。记得有个牛人说过,半年或者大半年就应该出去面试一下,不为工作,而是了解一下同行的发展,保持与行业齐步。
我在此记录下我所经历过的面试,纯碎是总结。也没有针对某个人、某家公司。一切都是我当时的一个想法念头而已。都是IT行业,大家应该都经历过这样的场景:一个星期前写的代码那是感觉是完美无瑕,挑不出任何瑕疵。而现在看起来那真是不堪入目,都不好意思说是自己写的【LZ怎么越看自己的代码越喜欢】。所以,我很少写东西出来给大家 看。总是觉得那是一时的想法,代表了我当时的看法,而且,这个看法很可能是错的。我倒是喜欢写在自己的Evernote里面【Evernote是神马,不明觉厉】。
第一次
第一次是校招发生在临毕业的半年前,我一个人坐车一个小时到另外一个大学是参加,大四上学期的时期了,都快5年了,很多细节都忘记了。不过映像很深的是,大家的简历都是一本书,很厚的那种,还有封面,里面还有每次期末考试的成绩列表,里面的证书,奖状。。! 我当时就吓到了!这要是多投几家公司,打印费都不少了吧 。我还是早上坐公交车的时候,打印了两份,每份一页。我那个汗颜啊。真是羞愧的想死的心都有。
经过大学校招的应该都知道,简历是怎么投的。100多号的人,一人一本,那是多厚的一叠!而且HR不是下来收的,宣讲结束,大家都是跟交考卷一样,上去交简历。09年毕业的IT同仁,应该知道那时找工作是多么困难。我到现在都不愿意别人说我是大学生,那个时候,09年,大学生是个贬义词【囧了个囧,LZ也是09年毕业的】!然后笔试, 记得包括有心理测试,英文。其他不记得了。(心理测试, 很准的哦)
第二次
第二次发生在毕业后一年半不到,是一家创业公司, 笔试题很有新意, 除了线程和进程的一道题外,其他都是网上根本找不到的。最后几题是画出TCP客户端和服务端的连接流程图。 网络协议的定义、wpf的style。我想,只要做过这些东西的人,哪怕只有短短的一个月,就可以很轻松的可以通过了【LZ看你这么说的意思是你没通过吧】。映像深的是最后一个开放题,让我们写自己的偶像,为什么崇拜,那些方面。然后写出对自己影响最深的几本书籍,名字,作者【然后呢,你崇拜的人当时写的是谁啊】。
然后是面试了。创业公司,职能不全,那么所有一切都是项目经理一手包办了。我在那个时候, 确实没什么经验,项目经理也抓住这点, 使劲的敲打,好几次问的我哑口无言。然后说我理解不行,技术还不是很熟悉。。。巴拉巴拉后给了我一个低的不能再低的了【低的不能再低的什么啊,愁了个愁,后面几句话LZ找到答案了,是工资】。深受欺压啊。[除了对工资有很大意见外,还是就是洗脑严重,基本上两周一小洗,一月一大洗。其他的感觉还是很不错的。学了不少东西,压力大,大的你想死。你见过老板 (亿万富翁)从办公室跑出来,拍你肩膀,很不爽的问你“为什么有这个bug”的没?【LZ表示,不是老板没干过,而是老板不是亿万富翁】]
第三次
第三次发生在毕业后近两年,笔试做的很烂,急着离开上家,根本没做什么准备。有两个COM的题目,很基础的,就是COM的两个基本接口IUnknown、IDispatch。有了解的, 肯定知道这个基本的东西了。还有一个实例构造方法this, base初始设定项,类的构造函数的结果输出题。写一个了解的排序算法。算是比较简单的笔试题了。
面试也很简单, 自我介绍,做了那些项目。会什么,熟悉什么。基本上也没什么难度, 唯一一个,一个程序输出题,问我分别在单核,多核的时候,结果是什么. 那个时候,对并发多核不了解。只有说不知道了。然后还问我,linq有用过不,linq right join。我说linq有用过,join几乎没用。躲过一劫。因为linq没有right join。[http://msdn.microsoft.com/zh-cn/library/aa645612(v=vs.71).aspx【这是神马地址,LZ已无力吐槽】,然后就是实例构造默认调用base知道了上面几点,理解了,对于调用顺序,肯定没问题了。]
第四次
第四次发生在毕业后三年多点,面试的这家主要是做互联网创业的,薪水高,技术强,而且产品很有市场。所有的成员都是相当相当的年轻,而且都是华为出来的!笔试是你没想到过的。上机,一套选择题,一个算法题。都是英文的。跟大学的考试一样,一个做题软件。代码可以用vs写。很难,很难。选择题是微软的一个什么认证考试题库。30个选择题。有asp.net、ado.net这样的类别。我选择了ado.net。坑爹,四个答案,怎么看,都很像,都像是对的【要是LZ的话,一般会选最长的那个,0.0】。感觉考的不是理解,而是记忆。题目都忘记了。算法题,都是竞赛用的。
我记得一起的一哥们,一看是英文,立马闪人。面试,面试到你流汗。上来就是问,你之前碰到什么难的问题, 最后怎么解决的,花了多久。等你讲完,就开始问,为什么不这样想。为什么不这样做。很是流汗啊。然后问一下你的加班状况,适合加班不,承受能力,为什么没考虑不去华为【赶脚像是外包的样子】。[年轻的公司,活跃的思维。真是不错的。只抓弱点来看你的分析解决问题的能力]
第五次
第五次就是近期国庆完刚面试的了,三页纸,幸好反面没有,大致扫描了一遍。第一题是c#和.net的关系,下面题目是各种关键字的解释,算法输出题,后是UML和程序设计题。一共30多题。还有画出你知道的设计模式UML图。我都有种立马闪人的想法,太。。。。映像深的一题,
public class A {
public virtual void Print() {
Console.Write("A");
}
}
public class B : A {
public override void Print() {
Console.Write("B");
}
}
public class C : B {
public new void Print() {
Console.Write("C");
}
}
public class D : C {
public virtual void Print() {
Console.Write("D");
}
}
// A <- B <- C <- D
A a = new D();
a.Print();
第一面说这题很少人做对,第二面说我对继承的理解不够。我答对了啊,难道是我记错了代码?我当时确实不敢肯定,回来我调试了一下,才加深了理解。
还有一个程序题:有一堆砖,工人每天搬剩下的一半,然后老板说不够,再加三块。n天搬完,问一共多少砖,很简单的递归嘛。几行代码就搞定了。[递归的算法的要点,找到出口和递归体。]
感觉面试挺不爽快的。第一面的不是leader来面试,水平感觉也不太高。看我的答案,让我解释我写的答案,delegate 是定义一个类,封装了一个方法。怎么理解,我解释了一下, 感觉他还是没懂。又问,你说event是委托的封装,怎么理解。我有点无语了。最后让我用笔在白板上写枚举接口 IEnumreable,当然这个也是笔试题中的一个。我笔试题里就写错了,然后在白板上面又写错了。然后就问我, 你不用这个接口的吗?我说我很少写这个。
他大吃一惊。我想他理解错了,我是很少(手)写,我都是用的智能提示。我也懒得辩解了。他呵呵笑了【呵呵】。嘀咕了一句,怎么 过的四级。后来还问了一个问题,如果程序运行了一周,突然崩溃了。怎么fix。我只能说,从程序log和windows event log综合来分析哦。他一直说不对。我就郁闷了。后来才知道,没说到要点,要点是要找到缩小可能异常的范围。
我不知道他们干什么还要我来二面, 我也奇怪我竟然去了【LZ也奇怪你写上来干什么】。PM来面试,问了一下我之前的项目,详细的讲了一遍。我看也差不多了,就说了,你们这个岗位是要初级的,中级还是高级。他也模糊的说了一句, 都要,我们业务发展的很快,你的水平,勉勉强强, 算个中级,还远远达不到高级。我就定下心了【为什么听到中级就定下心了】。然后问我,为什么裸辞找工作。我直接回答,这个是对上家公司的尊重,上家公司对我挺好的。
他直接回答,我觉得你对上家公司一点都不尊重,你离职了,你的岗位责任谁来承担?我回答,我走了之后,他们把我之前的一个同事请了回去。不过, 还没到岗。。。。然后找了我几个问题,我给出了我能力之内的答案 ,他说不行,达不到要求。我也没反驳,人外有人嘛。当然,这样的公司,我要了一个较高的薪资。你懂的。[感觉他们是找我的茬吧,笔试题也没看出有什 么水平,很多都是网上的,两个小时的笔试体,我一个小时搞定了。当然不会的没做。]
第六次
第六次,笔试,一个家伙比我先来,做完了题目,可惜, HR拿错了题,给了个测试的。然后, 我们两个悲剧的在一个房间里面同事答题。笔试题分数据库,web,c#,uml 设计模式,架构。一页两面。数据库的基本不会。不过没考什么sql之类的。直接就是sql2k8 新功能那些,对比sql2012.这些都没搞过。web就是get/post, 浏览器输入baidu之后面的过程。uml 类图的6个关系图。奇葩来了,两个人在一个房间里答题。竟然一个拿出手机来查答案。。。。。 各种。 。。。,真是万头xxx 奔过啊【LZ也同样碰见过,只是LZ表示还算蛋定】。没办法,我只能以最快的速度做完,交卷。当然不会的空着。
后面的很明显,面试压力很大啊。这位leader 很年轻,但是技术相当的牛。拿着笔试题,一题一题的问,看你答了什么,没答什么,扩展出很多问题。我碰到比我牛的人就紧张,郁闷,被压了一下,好多问题都没答出来。但是胜在坦白,会什么不会什么,该怎么做,平时都怎么学,工作平时怎么做的。也得到对方 的肯定。得到下一面的机会。
问题1,为什么推出泛型,我竟然忘记了拆箱。
问题2,开线程的原则是什么,我只回答了计算密集。没考虑同步。
问题3,重构方法的原则,考虑什么。
问题4,cpu、内存了解多少。聊到cpu的频率,.net的发展历史。
二面,去了后, 等leader,安排我去一个小房间。奇葩来了,又有一个人在做题!!!看我进来,那是很警惕我啊,一直在偷偷瞄我,还试探说了句,这都是什么笔试题啊。嘀咕嘀咕了一阵【这哥们笑死LZ了,哈哈】。我就一直没什么反应,用手机看新闻。尽量不去看他。那人看我也不像是进来监视的,开始胆子大了,把手机拿了出来,玩了一下,偷瞄我一眼。我很想说, 你抄吧。哥现在开始淡定了。然后他试探出我理,就大胆的开始查了起来。我真是无语。10年前买了块表。后来小妹妹让我去了另一个小房间进行二面,没什么难度,问了很多的技术细节问题,当了这个时候,你回答的问题,他也不会告诉你对错了。一个接一个的问。映像深的是问到同步和互斥,没答好。
三面,不怎么问技术了,直接来项目管理的,写过什么文档,详细设计怎么写,注意什么,你的职位,这个职位的职责是什么,你的发展方向。他们都是一个问题一个问题的问,不管你答的怎么样,而且问完就很严肃的盯着你,很不习惯啊。结果,完败!!
总结
总结,笔试可以抄,忘记的可以的抄,不知道的,还是悠着点。别当着对手的面抄,让别人,情何以堪!!我的感觉是,笔试不重要啊(当然除了校招),重要的是面试。面试在谈你做过的项目,你在里面承担的责任,对项目的把握程度,技术的理解。知道的当然要大谈,不知道的,别吹,了解的带一下。自己把握度。也可以看的出来,大公司,小公司,中型的,创业型的,侧重点都不一样【略短略短】。