当我对着远程的大屏,给北京的IBM中国研究院几位面试官汇报完30分钟技术报告之后,心里忐忑不安,这已经是终面了一关关拼得不容易,但却很精彩!
在之后的几天,很高兴接到了来自IBM两位高级经理的电话,分别给我介绍了他们部门情况和项目情况,表示我的报告印象深刻,能力很突出真的是非常感谢他们能给我这个机会!
诀窍
我不是聪明过人的人,但是我相信自己的研究能力,这来源于一个诀窍我悟出一条定律,那就是:能力是一种态度!
简单解释如下:这世界上不缺乏聪明人,但是缺乏懂得运用自己聪明才智的人。
今天的帖子,我希望通过7个真实的故事,去诠释这条定律能力是一种态度!
1. 我通过qq在课题组做了一次试验,将同一个问题群发给了6个成员,有3个人回复我:这个我没遇到过,不会做啊;有2个去Google了下,大概告诉了解了应该怎么弄;有一个人,做程序试验了不同方法的优劣,告诉我最好的方法是什么。多年以后,对很多问题都报以没遇到过,不会啊的人,和能力在积累的人,虽然一样聪明,但是差距就很大了。
2. 行人仿真系统研发的初期,我突然发现A*算法和Social Force Model特别有意思,就钻了进去,花了一些时间把它们研究透彻当我兴致勃勃给老板介绍完各种模型算法之后,老板说:你去给领导介绍这些模型算法是没用的,他们要的是效果,模型是无止境的。当时我也很沮丧,但是后来事实证明,我的不务正业是对的!因为智能化的动态寻路能力成为了我们系统的核心创新点,也是每次项目介绍中最得意的内容。
3. 给北京做的城市轨道交通运营辅助决策系统是要在08奥运前上线的,时间很紧,临近系统调试的时候,北京测试人员突然打电话说发现某些车站之间候选路径似乎少了一条当时大家都认为可能就是边界条件问题,稍微改改就好了。我研究了下这个K短路算法(其他人负责开发的)发现竟是理论上的缺陷
一时半会儿又没办法给领导解释清楚,我就决定重写这个部分,用数据来说明。由于时间太紧,在北京回上海的火车上看这些很多文献,凭借着良好的A*算法基础,很快设计出新的算法。通过测试发现,老算法共丢了500多条路径!(总共十几万条左右),这时候大家总算舒了一口气了
但我并没有罢休,因为匆忙,算法速度不快。继续花了几天,将北京轨道网络中2万多OD之间清分计算时间优化到10多分钟,最后优化到1分钟(在我笔记本上)。上线调试当天,领导赞叹道:这算法可真是又快又准啊!
4. 还是上面这个系统的故事:当时北京路网基础数据是一个硕士负责录入的,他毕业以后,上海路网数据没人弄了,老板叫我去做。虽然只是半天时间的体力活,但是心里很不是滋味
虽然有人劝说:花个半天搞定算了哦!但是我决心不用笨办法我花了一个星期,凭借曾经开发的二维矢量图形库,设计出一个智能化的基础数据管理子系统,只需要在图上简单点击,然后拷入excel中的车站名称和代码,系统自动识别,然后再自动生成区间、换乘关系等等6张数据库表需要的全部数据。后来课题组利用这个工具构建了很多路网,因为非常简单,这个子系统也成为了后来863中网络客流仿真系统的基础。
5. 上物流系统课老师提到一个著名的NP问题Vehicle Routing Problem,要求大家回去写写系统设计书。我当时就决定要开发这个系统,后来的几个星期,我发现遗传算法和自然界的规律真的是如此的吻合,达到了如痴如醉的地步,被女朋友嘲笑为:整天关在屋里下崽后来结果是,我设计的遗传算法,不但能够求解最少需要多车,还能找到总里程很短的方案。
6. 在斯坦福访学主要是参与一个疏散仿真系统的研究。但是,由于有遗传算法的背景,另外一个教授介绍我参加他们的一个课题办公大楼改造优化方案的辅助决策系统。
刚开始我认为这是一个确定性问题,因此采用A*算法得到了比较好的效果,已经可以满足项目需求了。我想为了作对比,又设计了遗传算法,居然发现在少数情况下能变异到更好解。大量实验后,我发现了两种算法虽然原理差别很大,数据结构上却存在内在联系,能够组合成一种具备通用性的框架,解决大量离散优化问题。
完全出于对科学问题本身的痴迷,我并没有罢手自行设计了一种数据结构替换哈希表,将两个算法性能同时提升10倍之多(在遗传算法中提出了花名册的概念),后来又发明一种交叉算法,再次将遗传算法提升十几倍。当时测试案例的人说已经完全跟不上了(已经让他反复做了好多次了),因此最后我们paper里面的数据不是我最快的算法得到的。
7. 利用上面的离散优化问题搜索框架,我发现还可以解决《编程之美》中的许多问题。在大家都忙于找工作面试的时候,我却整整花了一个月关在寝室里研究《编程之美》,有时候挑战一个题目整整花去1天时间,当时我身边的人都说我不务正业,我自己都有点怀疑了。可是事实证明,这份研究不但证明了兴趣,还证明了我的算法能力,对后来找工作很有帮助。
结论
通过上面的故事,我想已经可以证明我这个定律了能力是一种态度。如果要问态度是什么,那么我想是一种单纯的,没有任何功利的科学态度,对问题本身的执着。
这7个故事也可以用下面这张图串起来,一面的时候时间很短,我就打印了这个图,凭借它去打动面官。
后记
在我编程之美的学习连载里面,大家看到了很多好的点子。但是,它们都是在平时走路、吃饭、散步的时候想出来的,我这个人从来不擅长考试,女朋友嘲笑我如果你去微软面试估计危险,因为你没有时间散步
我曾经想过,对于一个博士,面试不一定能看出其水平,但是,如果给他30分钟PPT时间,介绍他的研究,水平就一目了然了。
真的没想到的是,在IBM的后2轮面试,全部一一印证了我曾经的设想用PPT去演讲是我最擅长的东西,因为太多次的磨练了:)
微软的技术是我多年研究和喜爱的东西,微软也是我多年梦想的企业。但是,如今却迟疑了,IBM这份《智慧地球赢在中国》的白皮书确实令人震撼它能够站在世界经济大环境的角度务实考虑中国的未来
本文作者:Silver
有6 年多的项目开发经验,先后设计、开发了多个仿真系统、辅助决策系统(约三百万行代码)。负责或参与多个大型项目(如国家863项目)。 精益求精,力求完美,追求用最自然、简单、易读的代码去实现复杂的功能。个人网站:http://eil.stanford.edu/pengao/
分享到:
相关推荐
IBM中国研究院Offer之感言——能力是一种态度 IT认证:一个计算机高手的成长经历 博士生传给硕士生的经验...... 成为合格的Linux平台C语言程序员 程序员修炼之路-C语言 各大学ftp 计算机基础课与方向 计算机研究...
【IBM首席技术专家选择智慧的地球-IBM中国研究院院长李实恭博士】的主题围绕着“智慧地球”的概念展开,这是IBM提出的一种理念,通过科技手段让城市、基础设施和生活更加智能、可持续。在这个主题下,文章阐述了多个...
物联网技术集成性高、应用跨度大、产业链长、产业分散度高,多数领域的核心技术尚在发展中,从物联网核心架构到各层次的技术与产品接口大多还未实现标准化,大规模应用所需的条件和市场还需要一个长期而渐进的过程。
IBM PowerVM是IBM Power Systems平台上的一种先进虚拟化解决方案,它能够在一个物理服务器上运行多个独立的操作系统实例,即逻辑分区(LPARs)。PowerVM通过动态分区、微分区等技术,允许企业根据实际需求动态调整...
"IBM WebSphere中间件安装及配置手册——操作系统参数配置" IBM WebSphere中间件安装及配置手册是指在操作系统中安装和配置IBM WebSphere中间件的过程,该过程涉及到操作系统参数的配置,以下是相关知识点: 1. ...
ibm——mq常用命令
车联网创新离不开大数据 访IBM中国研究院资深研究总监 孙伟.pdf
金霞女士作为IBM全球工商企业部区域销售经理,在金融大数据领域取得了显著成就,并且积累了丰富的专业知识和技术服务经验。本文将从多个角度详细解析金霞女士的工作经验以及在大数据和金融领域所涉及的关键知识点。 ...
Linux黄金时代——IBM中国Linux解决方案中心系列专栏:IBM中国Linux的发展.pdf
《IBM-PC汇编语言程序设计》是一本深入解析IBM个人计算机汇编语言编程的经典教材,由沈美明和温东婵共同编写,并由清华大学出版社出版。这本书旨在帮助读者掌握IBM-PC架构下汇编语言的基本概念、指令系统以及程序...
IBM作为全球知名的科技巨头,其面试和笔试流程严谨而专业,体现了公司对人才的高度重视。在应聘IBM的过程中,首先需要提交一份中英文简历。...即使未能入职IBM,这样的经验也能为未来的职场之路提供宝贵的经验。
IBM 充分利用 IBM 中国研究中心、 IBM 中国研究开发中心和 IBM 全球服务部创新解决方案开发基地的资源,向合作伙伴高校的学生提供了实习场地和实习项目。加入 IBM,开拓符合自己技能和意向的职业生涯。该站点是您...
### IBM DB2数据库——SQL入门知识点详解 #### 标题:IBM DB2数据库——SQL入门 **IBM DB2**是一款由IBM公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级数据处理环境中。该标题指出本文档将介绍有关...
IBM的大数据平台,如Bluemix和Watson Analytics,提供了强大的数据处理和分析能力,帮助银行、保险等机构构建智能决策系统。 金霞作为区域销售经理,她的工作重点是理解客户的需求并提供定制化的解决方案。在金融...
Linux 操作系统是 IBM OpenPower 服务器的核心组件之一, IBM OpenPower 服务器针对 Linux 环境进行了调优,提供了可靠性、高可用性和高性能的计算能力,满足客户当前的需求。 IBM OpenPower 服务器系列 IBM ...
Java3D探奇——IBM中国教程是一份专为初学者设计的在线教程,旨在帮助那些没有3D编程经验的程序员快速入门Java 3D技术。Java 3D是Oracle公司开发的一个开源API,它提供了丰富的功能,使得开发者可以构建复杂的三维...
### CDC工具比较——IBM与Oracle #### 一、概述 在数据复制领域,持续数据捕捉(CDC, Continuous Data Capture)技术被广泛应用于多种场景,如数据仓库更新、实时数据分析、跨数据中心的数据同步等。其中,Oracle ...