8日没有去成的一个面试,今天终于去成了。09年的首个面试,时间定在了上午10点。不巧的是,手机里的号码被测试短信网关时搞没了。于是,用手机发了封邮件过去。想不到,对方很快就回电话了,面试在泡汤的边沿又回来了。
北京大大小小的公司也不少,有的在写字楼里,有的就在商品房里,有的很边远,有的很市内,这次来到的是清华园科技园,算是不远不近的。一下车,发现目标地还是来过一次的。
本以为一下车就得想法设想搞清东南西北,出乎意料的是,投头就看到目的地了。09年,开头真不错。想想,以前一下车就得打电话问招聘单位具体位置,这次真的让人Hight了不少。原来联系我的是位MM,今天换成了一位GG,我打听了一下,原来这位GG是位实习生,帮忙来着。这家公司的背景一点也不清楚,通过名字、电话、联系人,各种组合都没能找到一点点信息,就连他们的招聘信息都找不到,所以带着非常好奇的心里开始了面试之旅。
面试并没有Start ASAP,折腾了一小会儿才找到一个可以面试的会议室。面试官给了份试题,做正则表达式的题目,一整页全是正则表达式的,左换一下右换一下,这样处理一下那样处理一下。看到试题后,我心里愣住了。我看样子是09年出师不利了,正则表达式,全是正则表达式,适配email,适配电话号码,更新格式... ...基本上正则表达式能做的都拿来做试题了。给了我一只笔,给了我一张纸,我很快扫完题,一个字也没有写。
我:试题就这么点哇?面试官:你先做吧。
我:这全是正则表达式的题目呢?我会正则表达式,可我从来不记,我一般都是在一个正则表达式的小软件里调试的。有什么参考不?(心里想,面试就这样子结束吧,没法子,没记住就是没记住)面试官:给。(完全出乎我的意料呢,想不到面试还有这种bug,面试官主动支持“作弊”)我:Ok... ...
我正想做,连那份正则表达式的参考都没有来得急看,又被叫到一个会议室。我并没有机会做题,刚坐下来,就进入面谈阶段了。这回又多了一位,两个人来给我面试。
问了一些基础信息,然后给我一定的时间把我做过的东西扯了扯,带了个“山寨版短信网关”过去,计划演示一下作品,特意提了一下,对方却没有任何想看的意思,就没有演示了。
怀疑:看你简历上写了这么多项目,都在很短的时间里完成的?
答:呵呵,是的。都是很快完成的,在满足需求的情况下最快的方案,当然没有法子和一个团队花上几个月,三个,四个的效果比。
由于可以说的东西比较多,很快把他们的时间消耗了不少,直接把两位逼入了“正题”。开始问到了C#的委托、IL的概念、正则表达式、跨平台... ...
虽然前两天还找了相关的面试题看,当是,记不住还是记不住,给两位说了说self-style的解释。估计把两位整得很晕。像解释C#的委托,我都没法解释,直接说我是怎么使用的,然后加了一句,具体我也不太清楚委托是什么,我只知道这么使用就是,把一些操作加在一起,比如说... ...面试官很耐心的想引导我说出函数指针,我忍了好几手,面试官还是不死心,我只好说了指针。我也不确定,想不到面试官听到指针两个关键字之后,说其实你是知道的,你好好组织一下,想想就说清楚了。(巨晕,还有这样的面试官,非要说我知道。)
IL的认识、.net运行环境、jvm、,乱七八糟的给说了一下。另一位面试官,又引导性的问我,而且意图相当明显,把与“具体的操作系统”都自己说出来了,还接着问我jvm实现什么效果,我没有顺着这位面试官的思路说下去,直接说,所谓的跨平台是不存在的,加了层壳,不加的话,也是跨不了的,这些跨平台里需要牺牲一定的性能的。
正则表达式,他们对正则表达式真的是超越了寻常的"love",试题全是正则就不说了,面试里也是撇不下正则。正则可不是常驻“内存”的哇。只好跟他们扯了扯,使用过正则做什么东西,也确实做过,年代久远,说还是很好说。说得天花乱缀,把老项目里的东西都抖出来了。面试官很警惕的,问到,你用的什么软件调试正则。我说是M-T-R-A-C-E,两个面试官表示没有听过。(今天特别看了一下桌面,发现我说的时候少说了个r)
正则表达式调试工具有很多种的。一位面试官把话题转到其它的上面了。
怀疑:你说大二、三、四都没怎么上课,还能拿奖学金?
答:不上课并不意味着拿不到奖学金。(这种问题,只好不友好的回答)
问:你刚才说的项目简历上都没有呢?
答:你看的是比较老的版本。
问:你上面不是写着11月已经完成实习了么?
答:那只是为了让面试官看起来比较爽些。
侃了半天了,我也是一直坚持着,知道什么、能说什么就说什么,目前不会的,就扯思想,能扯多远算多远,最后暗示一下,懂思想。因为扯的东西太多了,基本上我只是瞟过一眼的东西都扯了。最后感觉要结束面试了似的,终于忍不住问了一下,这是在招什么聘位。
真正的面试才开始。
原来他们要招的家伙需要以下技能点:
正则表达式、短信网关知识(这个可选的,似乎)、数据库、数据结构、时间复杂度、空间复杂度、排序方法
面试官在讲到数据方面的东西的时候,一直在让我发表看法,发现我比较菜,一直强调自己原先看过,不常用,就忘了。这位面试官忍不住问我这样的问题“软件工程师最重要的知识点是什么?”,我心里一颤动,现在正讲数据结构,难道就这么说。这种面试题真是超级面试题,没有见到过。我直接表示不知道,先听听面试官什么观点。
“你觉得什么最重要?”
面试官抖出了观点“软件工程师最重要的知识是数据结构与算法”。
汗死,还是在说数据结构,我的软肋呢,我可记不住细节,只知道当时我看懂了,现在什么也没记住就是。按我的习惯,不管对方发表什么观点,我百分之80至90不予苟同。于是,我也抖出一个观点:思想最重要。接着,我试图发现两者观点的不同,但是我很郁闷的是,我总结出思想最重要的结论,正是学数据结构时结论出来的。本想用数据结构是种思想,可以使用不同语言来实现来举例,发现有些不妥,于是选了个其它的,什么用什么也可以做,什么另外的也可以做。瞎扯了一些。仅勉强的表达一下,我可是有自己的观点哟。面试官很试图强调强调自己的观点,并加以细化,但是面试者并不买帐,还是在说自己的。
也不能瞎扯下去,面试官要试真实水平了。我的软肋终于... ...面试官问我对排序有什么了解,让我写一个。我凭着模糊的记忆说了点,然后说了一下,这些东西不常用,根本不记得了,到是冒泡可以写一下。面试官,很晕,发现我扯了什么时间复杂度、空间复杂度的,执意让我继续发表这方面的认识。(我晕,面试官在挖我的潜力哇,他们比我还相信我自己)在他们的极大兴趣下,我也乐于扯扯,竟然把“二分排序”思路在黑板上演示了一下,结果面试官坚持认为我可以写出代码来,让我一个人写出代码,他俩就闪开了一会儿。
我的天啊,我突然发现,我在二分查找,不是在排序。面试官回来之后,我表达了“谴责”之意,我说的是二分查找,不是排序,完全两回事,面试官竟然没有发现。然后面试官再次引导我,我说,再递归一下吧。这时面试官示意正确。不过,好像离写出代码还是有段距离,我需要折腾很久才可以实现一个已经陌生了的东西。面试官真有意思,乐意把面试当成授课。这些除了在课本上,看过一次,读懂过一次,该忘的都忘了,就像小学的同学,能记起来的也没有几个了。
面试官又给出一道实战题,把队列反转,终于一个简单的问题了。当时不知道怎么短路了,我写了个数组反转~所以面试官看郁闷了,不知道我在写什么。当我发现问题的时候,汗了一下。其实,本来,我就“省”了函数头,只写了个体,结果还。于是,回想了一下,队列,就简单的说,加一个node,就可以搞定了,也没有多说,也没有重写代码。没有实现过这种东西,凭种模糊的感觉说的。
实战题结束,面试官亮出了身份,讲了一下具体工作内容。我自然是努力猜项目的原理之类的东西,面试官说了一下大概的框架,没有细说。见面试官不说,我就直接说了一套方案出来,面试官说:“这是你的实现方案吧”。汗死,只好做罢。
在尾声部分,面试官,问了些其它问题:
问:“你在上家公司的实习待遇方便透露一下不?”
答:“不方便”(汗,这种问法很显示暗示我可以说不方便,以后这种问题都给保密、不方便好了,多说几个“不”字,感觉好像更爽些)
最后谈到薪水问题,面试官表示,由于没有毕业,不能受聘为正式员工,只能以实习生的名义,实习生不享受保险之类的东西,交税还比正式员工多一些,20%。汗死~~~ ~~~无语~~~~对这些不感冒,但也不能不提,最后说了个税后3k。按网上数据显示,也就是一个初级薪水水平。
软件开发工程师最重要的知识是什么?
我的新论点,软件开发工程师最重要的知识是商业知识,一个懂得商业化的软件工程师,才知道做什么样的软件,做什么样的功能才能获得商业价值。对于软件开发工程师来说,计算机方面的知识是一种工具,对他们而言最重要的知识是他们不熟悉的商业化。
这次面试算是比较有意思了,结果真的不重要,发现自己的问题所在,客观的去分析问题,解决问题才是重中之重。面试也没有说一下就OK的,怎么着也要有一个定位,知道自己需要掌握什么,掌握到什么程序,相应的薪水是多少,才能游刃有余。面试失败了,但是有不少东西可以学到,也有不少东西可以得到启发,这些完全超越了面试本身。
临走前,拿着那张正则表达式的题提醒了一下面试官:“一道题也没有做哟~”
文章链接:http://www.cnblogs.com/zhongdaiqi/archive/2009/01/09/1372260.html
【编辑推荐】