IBM面试记
link:http://kb.cnblogs.com/page/107213/
话说其实我很久没有被正经面试过了。一开始去微软实习自然经过了经典的笔试和几轮面试,然后去了朋友的创业公司并立即被激动集团收编——没有面试,接着从激动集团去合伙创业——没有面试,然后被朋友推荐去盛大创新院——面试更像是讨论及聊天。由于长久缺乏职场磨练,我虽然对自己能力有一定信心,但也怀疑自己如果通过“正经渠道”去面试的话能有多少机会成功。而这次面试IBM终于算是过足了面试瘾,记录一下。
大约一两个月前,我收到一封邮件,某同学忽悠我去尝试下在IBM的.NET工作机会。我感觉这机会似乎还不错,也正好想考察一下自己的面试水平,于是表示说愿意尝试一下。很快收到HR的邮件,让我做一套在线的笔试题。
笔试题分两部分,一部分是.NET测试,另一部分是英语测试,分别有几十道选择题。HR在电话里说,.NET测试会偏向理论一些,有些难,可以用搜索引擎找下答案。被她那么一说我也不知道该如何是好,更不知该如何准备,于是就打算死马当活马医,霸王硬上弓吧。当天晚上直接打开链接做题,做了以后才发现,所谓“偏理论”估计是HR从以往的被面试者那里得到的反馈,事实上这套题目考的其实就是我一直强调的.NET基础,例如C#语言的特性(从面向对象到LINQ里的种种),CLR的一些表现,BCL内常用类库的实现细节,还有就是代码阅读题了。总体而言其中相当部分也是我常用的面试题,自然正中下怀。
.NET笔试十分顺利,但英语就麻烦许多了。要知道自从大学前两年的英语课以外,我已经好多年没有正经地学过、考过、用过英语了,什么GRE,托福,雅思,甚至六级我都没接触过。英语测试就跟传统的测试一样,例如给你一大段文字,提出一个问题,并选择一个正确答案,还有选出出现语法错误的某句话。测试的内容涉及政治、金融、文化、生活等方面,唯独没有我最熟悉的——技术领域的内容。尽管有Google和Bing翻译,但是从实际效果来看,自动翻译技术要达到“可用”还有很长的路要走。
第二天一大早就我收到的结果,.NET测试96%,这意味着我的成绩在“做过这套测试”的人里面排在前5%。为此我也暗自得意了一番,因为从某同学那里了解到,在之前应聘这个职位的人里面,笔试成绩无一超过50%。此外我的英语是71%,而“及格线”似乎是30%。总体而言,我的笔试成绩应该还是比较令人满意的。于是,HR跟我预约了第二天的电话面试,由J.P.Morgan的人来面试,全程英语。
于是我立马找出机器里的一堆技术视频来看,希望能让耳朵适应一下英语内容。听下来感觉倒还算不错,基本没有太大障碍。但是在第二天电话面试的实际过程中,我发现一旦隔了电话,导致背景里出现了很多噪音之后,听力立马会打一个折扣(适应以后会好一些)。面试我的人是两个老外,基本上没有口音(或者说就是美剧里常见的标准口音)。他们问了我很多东西,有部分和笔试差不多,例如最典型的:某对象分配在堆还是栈上——有趣的是,在他们的追问中,我也发现原来这个问题在流传甚广的“标准答案”以外还有一个变数,不过我略加思考应该也回答的没有问题。还有印象比较深刻的便是让我解释一下LINQ的相关内容(例如LINQ Provider的实现方式),GC的工作方式及特点,多线程开发会遇到的问题等等。就我个人感觉来说,这些问题我都应该回答的不错,用“对答如流”来形容似乎也不太过分。与其形成极端对比的是,对于WPF和WCF方面的问题,我也没有作任何“挣扎”,基本都是直接回答“不好意思,没有接触过,不太清楚”。电话面试耗时大约50分钟。
比较有趣的事情是,我在简历和自我介绍里提到我平时接触过及感兴趣的技术(基本就是我博客右边写的那样),可能他们也正巧对Scala感兴趣(毕竟是要用Java的),于是就提出让我向他们解释下Scala这门语言。解释地过程没有什么值得一提的,不过我也适时地表达了我对Java一贯的厌恶态度,我的原话是:Java is a dead language, it sucks,然后就围绕Java语言展开了简单地讨论,主要还是我以前谈过的那些。例如我解释道,我很喜欢Java平台、类库、框架、运行时等等,讨厌的只是Java语言;我很了解和关注Java语言,说它dead是因为它死不肯演化或者演化的很奇怪(Java 7和8);还有Java表达能力太差,虽然看上去简单,但是需要太多代码,写完了以后还看不懂。前段时间有人问我说去了IBM以后还会不会骂Java?我说我就是骂着Java进IBM的,所以绝对会继续骂不停口。而且我很希望到时候我在骂的时候,某些弟兄不要仅仅看到我是微软MVP的身份,也可以顺便一提IBM员工这茬。
电话面试后的第三天,HR又给我来电话说通过了,说接下来便是一场“面对面”的面试,地点在深圳。会有两个团队的人从香港过来与我面试,一个是做.NET的,一个.NET和Java均有涉及——同时还发给我一份Java的在线笔试题,说希望我能在面试前完成“以供参考”。那天正好是个周五,而面试安排在周一,与.NET的裸考不同,我有一个周末的准备时间。有了.NET笔试的经验,我估摸着Java笔试应该也是类似的题目,于是找了本一千多页的SCJP的辅导教材,认真地啃了一天半。期间也弥补了我对Java语言认识的一点缺失,因为我实在被Java的内嵌类、匿名类、泛型的复杂度给恶心到了。后来再有人跟我说Java语言简单,我就会回应说其实“它比你想象地要复杂很多”,要不我们可以来谈谈某些话题——更重要的是,复杂而不好用,导致人们会刻意规避这些复杂度,因此“连你也不知道Java语言原来这么复杂”。
不过Java笔试其实比.NET要简单不少,完全没有涉及Java语言的复杂部分,更像是考一些代码阅读题以及基础类库,对于后者我只能根据一些“常识”和“经验”来猜测结果了。最后我的Java笔试成绩是93%,也算是不错的样子,面试时老外跟我的开场白便是说我.NET和Java成绩都很好——他的组会同时使用Java和.NET。倒是原本提到的用.NET那组的面试,由于签证没有过关,只是在电话里简单地聊了几句。
面试房间有白板,因此面试的方式也有所不同。首先他提出一些业务上的场景,给我一些可用的组件(例如持久化队列),让我在白板上画出解决方案的设计图。然后他会继续做出一些假设,例如某一个服务的压力提高,成为了性能瓶颈,那么可以如何改进这个服务。不断涂涂改改最终也差不多画满了整面墙。此外还有各种关于性能诊断和优化的问题,涉及到日志记录的设计,CLR(主要还是GC部分),WinDBG,数据结构(线性表,哈西表,优先队列,平衡二叉树)等等。这些大都是开放题,因此可以谈的东西不少,我也不太担心因为不了解而无言以对。而且因为可以使用手势和示意图来辅助我那半吊子英语,也比纯粹在电话里的交流来的清楚。此外对方也谈到他对JVM的了解多过CLR,所以很多时候我也更像是在“解释”CLR的行为,目的是能够让对方理解,而不是去“迎合”对方心里的正确答案。总体而言,面试后的感觉其实比电话面试更有自信一些。
回到上海后,我也很快收到了回应:我通过了J.P.Mongan方面的面试,也是第一个通过的.NET技术人员。剩下的便是令人烦躁的Offer商讨问题,略过不谈。值得一提的是,在正式发Offer之前,IBM还让我做了一套智力题(就是那种根据规律选择下一个数或下一幅图),据说是每个IBM员工都需要经历的测试——这是我整个过程中经历的最困难,也是最没有信心的环节了。最后我得了72分,堪堪超过65分的及格线,幸好终究没有在阴沟里翻船。
以上便是我这次整体的经历。我也不想总结出什么理论和哲学化的大道理,就这样完整地记叙一遍吧。
IBM面试记的更多相关文章
- java面试记很多次还是记不住的问题
1.java底层如何实现多态 https://blog.csdn.net/fan2012huan/article/details/51007517 (1)在常量池中找到方法调用的符号引用 (2)查看P ...
- 一篇哥们自己的写的IBM电话面试感想-@大国
两天没写博了,还是没有养成一个习惯.前天和昨天休息,和哥们几个出去打球,运动一下,放松下脑子.今天就补一篇我哥们自己的写的关于他的IBM电话面试的感想,希望能帮到有需要的人. ------------ ...
- IBM java开发面试题
1.commite在什么场合使用 svn 提交项目 数据库自动提交 Oracle手动,mysql自动 2.void(0)怎么使用 html界面 <a href="javaScript ...
- 2013年各大小IT公司待遇
2013年各大小IT公司待遇(初版 摘自好网)本人西电硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名 ...
- 2013年全国各大著名的IT公司薪资待遇大揭密
以下为转载,特此说明!--西电好网 ============================================ 1: 本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇 ...
- 知名IT企业待遇一览表
115家IT公司待遇一览表 作者是西电通院2013届毕业硕士,依据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇例如以下,吐血奉献,公司比較全.下面绝对是各大公司2013届校招的数 ...
- 2013国内IT行业薪资对照表【技术岗】
(本文为转载,具体出处不详) 说薪水,是所有人最关心的问题.我只 想说如果想在薪水上面满意,在中国,没有哪里比垄断国企好.电力.烟草.通信才是应该努力的方向.但是像我们这种搞研发的进IT行业似乎是注定 ...
- 程序员的沟通之痛https://blog.csdn.net/qq_35230695/article/details/80283720
个人理解: 一般刚工作的程序员总觉得技术最重要.但是当工作年限超过3年.或者岗位需要涉及汇报.需求对接等就会发现沟通非常重要.也许在大公司还不那么明显,但是在小公司.小团队或者创业,沟通甚至可以说是第 ...
- 各大IT/IC公司offer比较
1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...
随机推荐
- 1602A液晶
液晶显示屏中,1602型算是比较简单的一种,据说和12864还是全兼容的.这两天学习的结果如下.一.1602里的存储器有三种:CGROM.CGRAM.DDRAM.CGROM保存了厂家生产时固化在LCM ...
- iOS 之 导航栏按钮
UIButton *releaseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [releaseButton setTitle ...
- Angular - - ngIf、ngSwitch、ngHide/ngShow
在组合这些ng指令写到一篇文章里的时候,基本是有规则的,野兽把功能相似相近的一类大多会组合到一起,方便理解和记忆. 这篇的三个指令也都是对DOM元素的操作,页面上显示/隐藏的判断,添加/移除的判断. ...
- easelJS - Cache_vday
easelJS - Cache_vday $(function() { init(); }); // Cache_vday var canvas; var stage; var container; ...
- 用c3m自动生成的化学机理文件导入mfix里需要注意的一些问题
1. 首先是类似这种写法: Species_g(1) = "CH4" Species_Alias_g(1) = "CH4" 可能会报错,写在一行可能就好了,如: ...
- mongoDB文档操作
数据库操作无非就是增.删.改.查.这篇主要介绍增.删.改. 1.增 Mongodb插入操作很简单,使用关键字“insert”.实例: > db.test.blog.insert({"h ...
- Java中正则表达式的几种用法
多数内容转载自:http://www.jb51.net/tools/regex.htm ,有改动 用到了java.util.regex包: 1. 验证 Pattern pattern = Patter ...
- SSM(Maven集成)
ssm全称:Spring+SpringMVC+Mybatis ssm简介: 1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod J ...
- 抓取QQ空间相册
某天,想下载某人的相册,发现一张一张下载,工作量巨大,所以写了这个工具. 使用到的工具 Fiddler(抓包工具) python(脚本语言) intellij 步骤 分析包 获取相册分类链接信息 打开 ...
- secache 详解
介绍下secache缓存,它是属于文件缓存.简单来说,文件缓存就是把缓存数据存储到文件系统 (硬盘)中了,比 内存缓存要慢一些,但是也是有一点优点的. 1.磁盘容量大, 2保存到硬盘,说明 掉电后数据 ...