因为公司最近招聘的力度很大,所以最近公司的面试很多,加之很多同事项目紧,所以让我参加了一些技术面试。不论是作为面试官还是应聘者,参加工作以来我参与的面试的次数我自己也记不清了,所以在此想从面试官和应聘者的角度来谈谈我的面试经历和感受。
作为面试官
因为上周的事情比较近,我就先从公司最近的面试谈起。我所在的公司面试是分为四轮的,前两轮是技术面试,第三轮是英语面试(因为是外企,所以对英语要求相对较高),第四轮是人事的面试,因为应聘者分布范围很广,所以我们的面试以电话面试为主。因为我本身就是技术人员,所以我只会参与前两轮的面试。
首先公司负责招聘的工作人员会从招聘网站收集一些相关技术领域的应聘者信息,在这里做一些初步的过滤,比如学历、工作年限、工作经历等等,在这里的过滤没有任何技术人员的参与,仅仅是负责招聘的同事根据自己以往的经验来工作,这一步骤我没有参与,所以我也不知道具体细节。通过了简历过滤这一步之后,应聘者会得到电话确认通知,确认是否真的有意向来本公司工作。
经过了简历过滤之后,就进入到正式的面试流程,也就是第一轮技术面试。这一轮的技术面试有点像“超女”的海选。在这一轮中我们会对应聘者的技术广度和深度做一个较为全面的测试。对于技术人员,我个人有这样一种看法:技术的深度是决定是否录用的充分条件,而技术的广度是决定你的薪水高低的充分条件。注意我在这里用的词语是充分,而不是充要或者必要,因为有些偏才、怪才不属此例,如果你自认为不是偏才或者怪才,那么就要在技术的深度和广度上下功夫,最好是遵循先深度再广度的过程。所以在第一轮的技术面试中,我们会首先通过一些基本的问题来了解应聘者的所掌握技术的广度,然后再通过一些基础题来测试应聘者所掌握技术的深度。如果应聘者在某些面上达到了我们的深度要求,就会进入到下一轮面试。
跟第一轮面试有所不同的是,第二轮面试提问的面不会那么广,而是根据应聘者在上一轮中的表现突出的部分再深入详尽了解测试一下他所掌握的技术的深度,除此之外,可能还会有一些问题来测试他的思维反应能力,比如针对某一个框架中已经实现过的功能要求应聘者尝试另外一种实现,比如如何写一个Web服务器或者某个框架等等,在这里并不是要求应聘者真的去实现这样一个功能,而是借此来判断他对陌生问题的思维反应能力。如果通过了这一轮面试,算是通过了技术部分的面试了。
在这里我想纠正几个错误的观点。
第一个观点就是很多初中级开发人员经常会想一些类的基本用法一查帮助手册或者在网上一搜就能得到答案了,为什么还会问这样的问题?这个观点是错误的。我承认很多问题确实可以通过查找帮助手册或者在网上搜索就能找到答案,但是作为开发人员掌握一些基本知识是必须的。就像通过查字典我们能阅读所有的书籍一样,但是你见过哪个作家认识的字还没有一个小学生认识的多就能写出一部长篇小说来?开发人员是创造者,如果脑子里实现没有一些基础的知识,他怎么能够天才般地想到这个问题改用那个类的那个方法来实现?这就是为什么所有的针对初中级技术人员的面试一定少不了问基础知识的原因。对于同一个功能的实现,可能在类库中有不同的实现,这些实现之间的差别我并不认为是类似“茴香豆的茴字有几种写法”那样迂腐可笑,相反它们可能分别适应于不同场景下。
第二个观点就是很多应聘者总感觉面试官是一定要难倒应聘者才会获得心理上的快感,或许有这样的面试官,但是大部分面试人员没有这种心态。有时候会提一些刁钻、偏僻的问题,这是出于了解应聘者的掌握的技术的广度的需要。在大部分情况下,某些问题你回答不上来没有关系,没有人指望你会获得满分——当然,如果你获得了满分,在你和HR谈薪资的时候你会更主动、底气更足。在某些情况下,面试官在某个地方深究可能是出于项目的需要,比如希望招聘进来的人将来从事某个项目的开发,而这个项目对一些领域要求比较高。
第三个观点是关于面试官与应聘者的技术高下的,很多人认为面试官一定比应聘者技术高,其实未必。当然在大多数情况下可能是如此。我有看到有人在写面试经历中写到自己曾经问过面试官一个问题,结果面试官回答并不理想,于是就得出面试官技术不咋地,甚至还会说面试的那个公司全部技术不怎么样的结论,其实这个结论未必是正确的。所谓术业有专攻,你所掌握的知识未必就一定是别人所需要的,你在某一个点上胜了别人未必代表你在所有面上都超过了。当然也存在你在某一个面上真的胜出了别人——这很可能就是别人要招聘你的原因。总之,面试官不是处处都比你牛,他能代表公司来面试你可能是他在另一个你并不擅长的方面很突出所以就进入了公司并且代表公司来面试你。
作为应聘者
前面周公说过,周公做过面试官,也做过应聘者,在这里周公也谈谈周公作为应聘者的一些经历和感受,在简历中我的应聘岗位从C#高级程序员到项目经理及技术总监。为了避免不必要的麻烦,在下面的叙述中列出的公司名称都是随意取的代号,请大家不要对号入座。
从山西太原回湖北武汉之后,周公在一家挂着美资旗号的台资企业WSW工作(台资企业最典型的代表就是FSK了,最具有台资特色的就是所有窗户外面都有安全网),这类的台资企业还有WC和QS等等。因为台资企业的变态管理制度和无福利措施,所以在那家公司时周公去过武汉一些软件公司面试。在这里周公谈一谈一些印象比较深刻的面试。
第一家印象比较审核的公司就是QS。这也是和WSW一样,这也是一家挂着美资旗号实行台企管理的软件企业,里面有很多不违反法律法规但是让人觉得非常不舒服的措施,其中之一就是让你拿着二线、三线城市的薪水去一线城市出差(有些台企如WSW更恶劣到以“培训”的名义让你出差,这样连差旅费都省了)。在这家公司里我被问及到很多技术和管理方面的问题,大多数我都回答得比较好,所以就没有什么印象了。我至今仍有印象的就是一道关于单元测试题,题目就是有针对一个大型项目的单元测试,全部测试用例有16万个,做完全部测试的时间大约需要8小时。现在的情况是如果一次性全部测试就会有用例测试不通过,如果只测试一半(前1/2或者后1/2)就能通过,问如何解决这个问题。说实在话当时对这个问题我就没有思路,一般开发者在项目中也不会遇到这样数量的单元测试用例,我当时的思路是再测试前1/4至3/4部分的用例看是否会全部通过,或者继续类似于修电脑式的故障排除法(就是通过分段的方式)来查看问题所在,不过仍被否定。至今这个问题我仍没有想出比较好的办法(这也是为什么我至今仍没有忘记的原因),现在想到的可能就是是否在单元测试中有未来得及释放的资源,在少量用例测试中并不会出现,在大量用例测试中就会因为没有来得及释放所导致(比如大量对数据库访问导致数据库连接池中没有可用连接导致等待超时等等)。
第二家公司是在汉口的一家公司。去了之后被告知公司总部位于深圳,武汉分公司成立不久,公司现在目前还没有技术人员,唯一懂技术的总经理当时正在出差,在出差之前总经理留下了一套题。等HR把这套题拿过来之后,我一看真的是傻眼了!在这份8页的试题上写满了题,所涉及到的编程语言有Delphi、C\C++、Java、C#及PHP,所涉及到的数据库有SQLServer、MySQL及Oracle,除此之外还有一些算法题,什么灰度算法之类的等等。说实在话,这些编程语言和数据库我都使用过(广度还算可以吧,当然有些只是在业余学习并实践的),但是不能在每个编程语言和数据库上都能达到相同的深度,花了两个半小时做了我所能做的部分就交卷了。事后的感觉是,在应聘过程中我遇到过不少要求广度和深度的公司,但是如此要求的真的是平生第一次,到最后我都不知道这家公司主要用什么变成语言开发。
第三家公司是曾经位于中南的WC公司。进去之后也是发了一堆面试题,有中文描述要求中文作答的,有英文描述要求英文作答的,有技术的,也有考逻辑思维能力的,也有个人要求填写个人隐私资料的。在技术面试部分有考编译原理的,也有考汇编语言的,尽管学的不是计算机专业课,但是为了拓展眼界我曾经自学过这方面的知识,所以大部分勉强回答得上来,不过最终我没有做完全部的试题,因为我在试题中看到了很多设计个人隐私问题,比如是否得过乙肝(这个好像国家禁止用人单位打听并以此拒用应聘者吧),还有在过去三年是否得过重大疾病以及对祖上的调查等等,并且公司说如果不如实回答公司如若发现就会立即辞退,考虑到这样的公司不可能会对员工有所尊重,所以我决定半途退出(事后我有同事去了这家公司,完全证明了我的推测)。
第四家公司是位于珞瑜路上的一家公司,总部也是位于深圳。在一个大学纷飞的冬天,我去了这家公司面试。头一次遇到没人给倒杯水的经历(我当时真的很想喝杯热水暖暖身子,特别是我后来知道整个面试过程持续了三个半小时时)。这家公司的面试题也很厚,前半部分是非技术测试,题目很像公务员考试的逻辑推理题目(周公曾有一次公务员考试的经历),后半部分是技术题,让我吃惊的全部是C和C++的题目。术业有专攻,对于C和C++方面的知识我确实不熟悉,只能回答一部分。最后来了一个技术人员和我聊天,我们谈了各种数据库的记录数达到何种级别就需要采取集群或者负载均衡措施,之后的全部时间都是在围绕着数据库方面的知识进行。事后周公的感觉是,可能这家公司的HR把C#当做C++,因为他们要招聘的是高级C++开发人员而不是C#,估计是看到都有C,觉得差不多所以让我过去参加海选。
第五家公司,这家公司是我进入到当前公司之前的最后一家公司,这是一家创业型的公司,所以对技术要求比较高。在这家公司里面试过程中,基本上都是围绕C#和ASP.NET进行,中间曾有过Java和C#的对比,对于Java和C#我一直都在用并且也都在关注技术趋势,所以回答得比较顺利。有两个问题印象比较深刻,一个是一个方法,在C#的循环里执行1000次和在Java里执行1000次(忽略语法上的区别),它们在执行过程中甚至在运行时有什么区别没有;另一个问题是在ASP.NET中实现URL重写,这个过程是在对用户身份认证之前还是之后?在这家公司干了三个月最终离开了,并且在现在的公司认识了以前也同样在那家公司干过的同事(我进去之后正好坐在该老兄的位置上),大家的感觉是这家公司劳动强度太大,一周上班六天也就罢了,还每天工作12个小时以上,真的是受不了。
最后谈谈我现在公司对我的面试。在没进去之前我也经历过四轮面试,前两轮同样是技术面试,在技术面试中问到了IIS各版本之间的差别、命名管道、ASP.NET页面生命周期、ASP.NET1.1和ASP.NET2.0之间的区别(aspx页面部分就有区别,前为extends,后位partial,编译处理也不一样)等等考察广度和深度的问题。最终通过了面试而入职。
在入职现在的公司之前,还受猎头推荐跟上海的一家移动互联网公司接触过,应聘的岗位是技术总监,在这家公司面试时主要是谈及高并发下的处理问题,比如如何使用负载均衡,如何使用Memached等第三方工具等等,本来在这方面我还是有一定经验,并且对方很也看中我的技术和管理经验,只不过周围的人都不太赞同我再次离开武汉,所以最后只好作罢。说真的,心里感觉有些遗憾,但为了父母和家人,只好放弃。
感触和体会
在面试过程中遇到不能回答的问题不必太过于在意,特别是面试官在考察你掌握的技术的广度的时候,最忌讳因为一两道题回答不上来而紧张,从而影响了个人能力的发挥。对于个人来说,一定要尽量在深度上下功夫,在满足深度的前提下拓展广度(用逻辑思维能力,举一反三)。最后要说的是,心态很重要,你有选择公司的权力,公司也有通过各种手段来来考察你的能力的权力,在不涉及隐私和影响个人福利的情况下尽量作答,能进去自然皆大欢喜,不能入职也没有必要自暴自弃。可以继续寻找适合你的公司,也可以继续准备,为再次面试做准备。
周公
2011-08-15
如有这方面的问题,可以在博客下方留言或者异步到周公的微博(http://weibo.com/zhoufoxcn)参与讨论。
分享到:
相关推荐
本文将深入探讨一个特别的主题——“周公解梦数据库SQL”,它是一个专门针对梦境解析的数据库系统,包含了丰富的梦境解释内容。 周公解梦,源于中国古代的民俗文化,至今仍被许多人视为梦境解析的参考。这个数据库...
然而,随着科学的发展,现代心理学对梦的理解与《周公解梦》所体现的传统观念有所不同。现代心理学认为,梦更多地是个人心理状态的反映,并非对未来有预示作用。尽管如此,《周公解梦》在中国民间仍然流传甚广,人们...
周公解梦完整版本,mysql数据库信息,大概9000多条数据,带分类,名称,详细解析等。 周公解梦数据库.sql脚本文件,直接可以导入mysql,其他的数据库或许需要细微的修改。
在数字化时代,各种应用程序和插件为我们的生活带来了极大的便利,其中,“周公解梦插件”是一个颇具特色的工具。它将中国古代的梦境解析文化与现代科技相结合,为用户提供了一种新颖的梦境解析体验。本文将深入探讨...
《周公解梦源码与星座运势在...对于开发者而言,这是一个提升技术能力、理解用户需求、实践项目管理的良好平台。同时,这样的小程序也为用户带来了便捷的解梦和星座运势查询体验,展现了传统文化与现代科技的完美融合。
标题中的“周公解梦 数据文件”指的是一个包含周公解梦相关数据的数据库文件。周公解梦,源于中国古代的梦境解析文化,是民间流传的一种通过梦境来预测吉凶的传统习俗。这个数据库可能存储了各种梦境的象征含义、...
“周公解梦微信小程序源码+截图”提供了一个实际的案例,让开发者可以学习到如何利用微信小程序开发平台,结合后端数据,实现一个实用的小程序。从源码中,我们可以深入理解微信小程序的开发模式、组件使用以及数据...
"92GAME最新仿制周公解梦网站源码"是一个专为创建类似周公解梦网站的源代码包,这涉及到网页设计、前端开发、后端开发以及数据库管理等多个技术领域。 首先,周公解梦网站是一种提供梦境解析服务的在线平台,通常...
《周公解梦ASP源码》是一款基于ASP(Active Server Pages)编程语言开发的网站应用程序,主要用于解析和解释梦境。ASP是一种由微软公司推出的服务器端脚本环境,它允许开发者在网页上创建动态、交互式的网页内容。在...
【标题】"周公解梦 安卓源代码 eclipse" 提供的是一个基于Android平台的简易应用程序,使用Eclipse开发环境构建。这个项目的核心功能是通过解析和展示来自百度API Store的JSON数据来实现对梦境的解析,也就是我们常...
周公解梦数据完整版,带分类,名称,详细解析等。 mysql完整版
周公是一个在孔子梦中频频出现的人物,在儒教长期主导文化的中国,周公也就不可避免的直接与梦联系起来。梦,经常被成为“周公之梦”,或“梦见周公”。因此,周公解梦中的周公,即是周公旦。 梦文化是中国古代文化...
数据库是存储和管理信息的核心工具,周公解梦数据集是一个独特的资源,它结合了数据库技术与传统文化。这个数据集包含约7261条关于梦境解析的数据,旨在为研究、分析或娱乐目的提供信息。数据集以四种不同的文件格式...
【标题】"核信在线周公解梦源码"是一个基于ASP编程语言的源代码,用于构建一个在线的周公解梦服务网站。这个源码是专门为网站管理员设计的,他们可以将其部署到自己的服务器上,为用户提供一个有趣的互动功能,帮助...
《周公解梦微信小程序》是...总的来说,"周公解梦微信小程序"不仅是一个富有创意的应用实例,也是学习微信小程序开发和理解周公解梦文化的重要资源。无论是对普通用户还是开发者来说,它都具有很高的实用性和学习价值。
【标题】"周公解梦7"是一款与梦境解析相关的软件,它可能包含了关于梦境的各种解释和解析功能。在传统文化中,周公被尊为解梦的权威,这个软件可能是以此为灵感,提供了现代化的解梦工具。 【描述】"是什么东东,...
本文将深入探讨如何开发一款名为“周公解梦”的小程序,涉及的主要知识点包括小程序的基础架构、模板应用以及功能实现。 首先,我们要理解小程序的基本架构。小程序基于微信开发者工具,使用微信提供的WXML(Weixin...
现代周公解梦借鉴 根据提供的文件信息,我们可以从中提取出以下知识点: 一、梦见篇 * 梦见挨骂、流产、挨打、争吵、伤心、悲伤等,可能预示着情感方面的不稳定或冲突。 * 梦见吃饭、野餐、弹琴、宴请、呕吐、...
《仿周公解梦 v1.6》是一款基于IT技术实现的应用程序,旨在为用户提供一个类似于古代周公解梦的功能。这款软件集成了多种实用功能,包括添加、删除、修改和查询梦境解析,同时提供了智能拼音查询,方便用户快速找到...