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届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...
随机推荐
- jQuery API 中文文档
Reference: http://www.css88.com/jqapi-1.9/jQuery.proxy/
- MongoDB和Java-PHP
一.java操作mongoDB 配置环境: 1.下mongodb JDBC驱动mongo-java-driver-3.2.2.jar,并包含在classpath中 步骤: 1.连接数据库 // 连接到 ...
- 公众号第三方平台开发-aes解密失败
公众号第三方平台开发-aes解密失败 问题:本地启动项目,配置域名,测试微信公众号,系统正常运行:将项目部署到测试环境执行同样的操作,系统报错,错误异常:aes解密失败..... 调试--寻找问题-- ...
- SQL数据库文件修复/用友/金蝶/管家婆/速达/思讯数据库恢复 硬盘恢复
硬盘的故障情况可以分为以下几类: 1.控制电路故障 大部分外电路的问题是电源芯片或主轴驱动芯片烧坏引起的,由于硬盘电路板质量问题.设计缺陷.市电波动.突然断电.芯片老化或者散热不良.静电等原因造成芯片 ...
- php循环生成的表单如何获得其各项值案例
思路:输入框和按钮是用for循环生成的,不但要获取输入框里的各项值,并且要获取点击按钮的值,要知道是那个按钮被点击了,这里以生成5个为例.如图: 这是提交页面,点击的是“小米”. 这是显示结果,测试显 ...
- Bootstrap3写的红色警告框样式组件
用的是BT3的类和fa的图标 <!DOCTYPE html><html><head lang="en"> <meta charset ...
- JS基础知识:Javascript事件触发列表
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言. JavaScript使我们有能 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- html中object标签详解
定义和用法 object标签定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. &l ...
- python访问sqlserver
#coding=utf-8 #!/usr/bin/env python#---------------------------------------------------------------- ...