面试被问:软件工程师最重要的知识是什么?

企业动态
软件开发工程师最重要的知识是什么?

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

【编辑推荐】

  1. 面试官讲述面试过程 对求职者提出忠告
  2. 如何准备软件测试工程师面试
  3. 软件工程师7天13家公司面试经历
责任编辑:张攀 来源: 博客园
相关推荐

2009-05-14 10:40:11

网络工程师能力

2009-06-29 10:58:08

软件工程师求职者

2016-02-18 10:18:34

Java工程师面试考纲

2020-09-17 16:11:04

软件开发 技术

2022-07-29 09:12:44

软件硬件开发

2013-02-19 10:12:59

2013-09-18 14:38:06

面试

2013-05-14 09:44:41

程序员面试

2022-01-16 07:12:30

软件工程师吵架开发

2022-09-16 08:00:00

软件工程师求职薪酬

2013-09-03 09:30:44

软件工程师软件工程师头衔

2009-03-18 08:37:45

软件工程师高薪抑郁症

2020-05-11 22:44:43

Python开发软件工程师

2009-02-11 13:15:54

软件工程师女工程师google

2021-09-08 17:36:58

程序员技能开发者

2017-11-09 14:12:44

大数据软件工程师算法工程师

2010-08-10 13:22:41

2015-06-02 11:29:55

软件工程师程序员

2009-02-12 11:52:23

软件工程师职业规划价值

2023-06-05 10:07:13

软件工程平台工程师
点赞
收藏

51CTO技术栈公众号