- 书名:Java程序员面试宝典
- 作者:欧立奇等编著
- 来源:电子工业出版社
- 出版时间:2007年08月
- ISBN:9787121045523
- 定价:46元
第1部分 求职过程
古人云:凡事预则立,不预则废。机会都是垂青有准备的人的。为了得到一份满意的工作,大家一定要对整个求职过程有清醒的了解。把能够预见的、必须做的事情早一些做完,这样在大规模招聘开始的时候就可以专心地为面试做准备。
第1章 应聘求职.............................................................................. 3
每年的二三月份,都是应届生求职、在职人员跳槽的高峰期。对于即将成为程序员的应届毕业生们,在求职过程中怎样确定目标公司和目标职位;对于已经是程序员的跳槽大军,是按照技术路线发展自己的职业生涯,还是走向管理岗位继续自己的职业道路,或者是改变自己的发展轨迹;大家在求职过程中要注意哪些细节?这些都是大家所关心的话题。
1.1 应聘渠道......................................................................... 3
1.2 应聘流程......................................................................... 4
第2章 简历书写.............................................................................. 5
据统计,80%的简历都是不合格的。不少人事管理者抱怨收到的许多简历在格式上很糟糕。简历应该如何做到在格式上简洁明了,重点突出?求职信应该如何有足够的内容推销自己?如何控制长度,言简意赅?相信读了本章你会对简历的撰写有一个新的认识。
2.1 简历注意事项.................................................................. 5
2.2 简历模板......................................................................... 8
第3章 3种考试............................................................................. 13
笔试,电话面试,面试,是顺利求职的3个过程。三关全过才能顺利签约,只要有一关没能通过,就会被“刷”掉。
3.1 笔试............................................................................... 13
3.2 电话面试........................................................................ 15
3.3 面试............................................................................... 16
第4章 职业生涯发展规划.............................................................. 19
在一般情况下,我们工作一年之后,对自己的喜好及擅长都有了更加深刻的了解,这时会有较为明确的职业发展规划。
4.1 缺乏工作经验的应届毕业生............................................ 19
4.2 更换工作的程序员们...................................................... 21
第5章 3个求职技巧...................................................................... 23
笔者作为一个专业的技术人员,一直不相信面试有什么真正的技巧可言。在求职面试中主要还是以实力为主,用能力说话。至于求职技巧,我觉得是一些待人接物的基本常识而已,你的家教,你的品行,你处理问题和对待朋友的态度,你的情操和品德,这些都是无法掩饰的。如果真的有什么技巧培养,那在幼儿园的时候就已经形成了。
5.1 应届生面试技巧............................................................. 23
5.2 主考者的观点................................................................. 25
5.3 谈话的技巧.................................................................... 26
第2部分 Java程序设计
本部分主要以Java设计语言为基础,通过大量实际例子分析各大公司Java面试题目,从技术上分析面试题的内涵。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。
第6章 Java程序设计基本概念....................................................... 31
对于一个求职者或者应届毕业生,公司除了对项目经验有所问询之外,最好的考量办法就是检查基本功,包括编程风格,以及对赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。当然,在考试之前最好对自己所掌握的程序概念知识有所复习,尤其是对各种细致的考点要加以重视。
6.1 Java配置........................................................................ 31
6.2 i++................................................................................. 33
6.3 类型转换........................................................................ 37
6.4 程序结构........................................................................ 38
6.5 其他相关问题................................................................. 41
第7章 异常与反射......................................................................... 43
可以说,实现了反射机制的系统都具有开放性,但具有开放性的系统并不一定采用了反射机制,开放性是反射系统的必要条件。在Java类反射的主要方法中,获得字段信息的class反射调用不同于那些用于接入构造函数的调用,在参数类型数组中使用了字段名。反射让我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实例,或对其fields设值,或唤起其methods1。
7.1 final定义....................................................................... 43
7.2 异常处理........................................................................ 46
7.3 Reflection定义............................................................... 47
第8章 传递与引用......................................................................... 53
Java语言明确说明取消了指针,因为指针往往是在带来方便的同时导致代码不安全的根源,而且还会使程序变得非常复杂和难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的GOTO语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new语句返回的都是一个指针的引用,只不过在大多数时候Java中不用关心如何操作这个“指针”,更不用像在操作C++的指针那样胆战心惊。唯一要多多关心的是在给函数传递对象的时候。
8.1 传值基本问题................................................................. 53
8.2 静态变量与私有变量...................................................... 58
8.3 输入/输出流................................................................... 60
8.4 序列化........................................................................... 67
第9章 循环、条件、概率.............................................................. 71
递归过程的执行总是一个过程体未执行完,就带着本次执行的结果又进入另一轮过程体的执行……如此反复,不断深入,直到某次过程的执行遇到终止递归调用的条件成立时,则不再深入,而执行本次的过程体余下的部分,然后又返回到上一次调用的过程体中,执行其余下的部分……如此反复,直到回到起始位置上,才最终结束整个递归过程的执行,得到相应的执行结果。递归过程的程序设计的核心就是参照这种执行流程,设计出一种适合“逐步深入,而后又逐步返回”的递归调用模型,以解决实际面试例题。
9.1 典型递归问题................................................................. 71
9.2 Switch............................................................................ 76
9.3 条件语言........................................................................ 78
9.4 Java排序........................................................................ 80
9.5 随机数........................................................................... 89
第10章 Java内存管理.................................................................... 93
内存管理太重要了,花多少口舌介绍它都不过分。我曾经见到这样一句话:“C++程序员觉得内存管理太重要了,所以一定要自己进行管理;Java/C#程序员觉得内存管理太重要了,所以一定不能自己去管理。”从某种意义上说,两者都是对的。面试中内存管理涉及堆、栈、哈希表、内存泄漏等诸方面。
10.1 堆栈............................................................................. 93
10.2 垃圾收集...................................................................... 99
10.3 clone........................................................................... 107
10.4 Java线程.................................................................... 109
第11章 面向对象.......................................................................... 111
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看做是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
11.1 面向对象的基本概念................................................... 112
11.2 类和对象..................................................................... 115
11.3 嵌套类........................................................................ 118
11.4 构造函数和析构函数................................................... 119
11.5 复制构造函数和赋值函数............................................ 120
11.6 多态的概念................................................................. 121
第12章 继承与接口..................................................................... 129
接口在实际语言,如Delphi、Java、C++等中,都有广义和狭义之分,这很重要,以前就是因为没明白接口的广义和狭义之分,始终没能真正理解接口的真正意义。广义接口从一般意义上说,凡是一个类提供给外部使用的部分都可以被称为接口。但是在引入继承和抽象类之前,这个广义接口并没有太大意义。广义接口的真正意义是在类的继承中体现多态的功能,这种接口又被称为抽象类接口。
12.1 基础知识.................................................................... 129
12.2 Super.......................................................................... 133
12.3 this............................................................................. 138
12.4 不能继承的情况.......................................................... 142
12.5 抽象类与接口............................................................. 144
12.6 设计有效的继承.......................................................... 154
第13章 JavaScript........................................................................ 161
越来越发现很多灵巧的功能都是由JS实现的。这是因为Web模式现在还是Pull为主,要实现灵巧的功能,客户端必须有一定的主动性,简单的页面刷新是不够的,越来越多的应用要求互动刷新或者实时刷新。在Push技术还未成主流的情况下,JS的价值就体现出来了。
13.1 网页脚本.................................................................... 161
13.2 APPLET..................................................................... 162
第14章 Java架构技术及相关中间件............................................. 163
Push软件开发的过程中,人们越来越意识到软件重用的重要性。异构的系统、不同的实现方案使软件的重用变得复杂。在中间件产生以前,应用软件不得不直接面对非常底层的东西。不同的硬件体系、不同的操作系统、不同的网络协议实现和不同的数据库等,这些使得应用程序复杂多变。面对易变的东西,软件设计师们已经习惯于通过添加中间层的方式来隔离变化。把应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上添加一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件。
14.1 WebLogic.................................................................... 164
14.2 WebSphere.................................................................. 178
14.3 WebService................................................................. 182
第3部分 数据结构和设计模式
本部分主要介绍求职面试过程中出现的第二个重要的板块—数据结构,包括字符串的使用、堆、栈、排序方法等。此外随着外企研发机构大量迁入我国,外企针对软件工程知识的考核,包括设计模式、UML、敏捷软件开发,以及.NET技术和完全面向对象语言C#的面试题目将会有增无减,今后设计模式在面试中的比重会进一步提高。
第15章 字符串............................................................................ 191
基本上求职者进行笔试时没有不考字符串的。字符串也是一种相对简单的数据结构,结合指针,容易多次引起面试官反复发问。笔者曾不止一次在笔试或面试时遇到字符串试题。事实上,字符串也是一个考验程序员编程规范和编程习惯的重要考点。不能忽视这些细节,因为这些细节会体现你在操作系统、软件工程、边界内存处理等方面的知识掌控能力。
15.1 字符串基础问题.......................................................... 191
15.2 StringBuffer................................................................ 194
15.3 正则表达式................................................................. 202
15.4 数字流和数组声明...................................................... 209
15.5 字符串其他问题.......................................................... 210
第16章 设计模式......................................................................... 221
地上本没有路,走的人多了也就成了路。设计模式如同此理,它是经验的传承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。
16.1 UML........................................................................... 222
16.2 23种模式................................................................... 235
16.3 软件工程.................................................................... 248
第4部分 UNIX、Oracle、网络
作为一个几十年来几乎没有修改过技术架构的系统,UNIX本身的性能和特点决定了它的成功。除了精细、谨慎地继承、改造现有技术以外,UNIX在总体设计思想方面也有所发展。这主要表现在操作系统的功能设计方面。在设计UNIX时,着眼于向用户提供包含有多种工具而且便于综合应用它们的程序设计环境,即构成一个能够提供各种服务的基础。本部分主要介绍求职面试过程中出现的第三个重要的板块—UNIX操作系统、Oracle数据库、网络知识。作为一个程序员,尤其是系统管理方面的程序员,对这几部分有深刻理解和领悟是相当重要的。
第17章 操作系统......................................................................... 253
操作系统面试例题主要涉及进程、线程、内存管理、垃圾回收,以及缓存等诸方面。
17.1 进程........................................................................... 253
17.2 线程........................................................................... 255
17.3 UNIX......................................................................... 259
17.4 AIX............................................................................ 264
17.5 Solaris........................................................................ 273
第18章 数据库和SQL语言.......................................................... 277
数据库面试例题主要涉及范式、事物、存储过程、SQL语言,以及索引等诸方面。
18.1 数据库理论问题.......................................................... 277
18.2 Oracle基础................................................................. 280
18.3 Oracle-SQL语言......................................................... 283
18.4 SQL语言常见选择题.................................................. 289
第19章 计算机网络及分布式系统................................................ 303
网络面试例题主要涉及局域网、广域网和IP管理等诸方面。
19.1 网络结构.................................................................... 303
19.2 TCP/IP........................................................................ 305
19.3 网络安全.................................................................... 308
19.4 网络其他问题............................................................. 309
第5部分 Java开源
EJB组件曾经被认为是一个重量级的组件。EJB 3.0规范的重要目标就是简化EJB的开发,提供一个相对轻量级的组件方案。Spring基于轻量内核,然后通过集成第三方的服务器来提供完整的架构。其实,当EJB 3.0推出,当Spring 2.0的程序需要特别的Javac进行编译时,重和轻模糊了。追求简单、轻量,是每一个应用架构的目标。对于企业应用的构建来说,不论轻重,只有架构合适的应用平台,才能最终适应项目的需要。
第20章 J2EE技术 323
从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术在不断适应和促进企业级应用过程中的产物。目前,Java平台有3个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。Sun推出J2EE的目的是为了消除传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。
20.1 Spring轻量级架构...................................................... 323
20.2 Hibernate.................................................................... 330
20.3 实体EJB技术............................................................. 334
20.4 Java Bean技术............................................................ 338
第21章 数据库相关..................................................................... 339
数据库相关面试例题主要包括JDO、事务、数据源架构、接口、分布式事务、结果集、数据连接池等方面。
21.1 JDO............................................................................ 339
21.2 数据源架构................................................................. 340
第22章 Java中的Web设计.......................................................... 347
关于Web设计的面试题目涉及Session、Servlet和JSP等方面。
22.1 JSP代码..................................................................... 347
22.2 Servlet........................................................................ 349
第23章 Java中的网页设计 353
关于网页设计的面试题目涉及HTML、DHTML和XML等方面。
23.1 HTML......................................................................... 353
23.2 XML........................................................................... 354
第24章 Struts结构设计................................................................ 359
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入地了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:TagLib和页面导航。TagLib是Struts的标记库,灵活运用,能大大提高开发效率。
24.1 AWT........................................................................... 359
24.2 Struts体系结构........................................................... 361
第25章 Java安全性 371
Java平台提供的原始安全模式是沙箱模型。对于从开放网络中得到的不被信任的代码,该模型提供了一个非常严格的使用环境。沙箱模型的实质在于信任本地代码,使其可以完全访问重要的系统资源(例如文件系统);而下载的远程代码则不被信任,因此只能访问沙箱内提供的有限资源。沙箱模型通过Java开发工具包(JDK)发布,一般被用JDK编写的应用程序所采纳(包括支持Java的网络浏览器)。
25.1 内存管理.................................................................... 372
25.2 Java安全设置............................................................. 380
第6部分 综合面试题
本部分主要介绍求职面试过程中出现的第五个重要的板块—英语面试、电话面试和智力测试。这里的英语面试不同于普通的英语面试。就一个程序员而言,最好能够用英文流利地介绍自己的求职经历,这是进外企非常重要的一步。此外还必须对几个常用的问题有相关的解答,比如你最大的缺点是什么。有些问题即便是中文你都很难回答,更何况是用英文去回答。但是求职过程本身就是一个准备的过程,精心地准备,等待机会—机会总是垂青于那些精心准备的人。
第26章 英语面试 389
如果你是一个具有战略眼光,期待进入国际性跨国大企业的求职者,本章值得你仔细研读。
26.1 面试过程和技巧.......................................................... 389
26.2 关于工作(About Job).............................................. 391
26.3 关于个人(About Person).......................................... 395
26.4 关于未来(About Future).......................................... 397
26.5 其他建议(Other Tips).............................................. 399
26.6 英文面试常用词汇...................................................... 400
26.6.1 工作经历相关词汇............................................ 400
26.6.2 个人资料相关词汇............................................ 400
26.6.3 个人品质相关词汇............................................ 401
26.6.4 学历相关词汇................................................... 403
26.6.5 离职原因相关词汇............................................ 405
第27章 电话面试 407
求职时,经常会遭遇电话面试,戏称“触电”。我曾经在开会、洗澡、吃饭、坐车时都接到过电话。问的问题也是五花八门,千奇百怪。
27.1 电话面试之前的准备工作............................................ 407
27.2 电话面试交流常见问题................. 408
第28章 智力测试......................................................................... 417
智力测试,其实是考查应聘者在限制条件下解决问题的能力。这类题目会出现于跨国企业的招聘面试中,对考查一个人的思维方式及思维方式转变能力有极其明显的作用。而据一些研究显示,这样的能力往往也与工作中的应变与创新状态息息相关。
28.1 关于数字的智力测试................................................... 417
28.2 关于推理的智力测试................................................... 427
28.3 综合智力测试................................. 429
附录A 简历模板........................................................................... 433
附录B 面试经历总结.................................................................... 445
前言
本书是程序员面试宝典系列中的一册,也是上一本《程序员面试宝典》的姊妹书。
对于刚毕业的学生和正在找工作或将要找工作的程序员来说,当你应聘一份程序设计、软件开发或者技术咨询方面的工作时,招聘方几乎总会安排一次面试以考查你的程序设计能力。我们写作这本书的目的就是希望能帮助大家顺利地通过这类面试。
在软件开发方面,C++语言与Java语言互为瑜亮,所以笔试时企业一般会为程序员准备两套卷子(C++版或Java版),在上一本书中我们是完全以C系语言做案例介绍程序员在求职面试中所用的技巧和攻略的,而实际上作为程序员求职市场上另外半壁江山的Java程序员求职者们迫切需要适合自己的Java程序员面试宝典。
作为本书的作者,在过去的一年里,由于工作和项目的缘故经常接触面试和笔试,进入公司后,也由一个被面试者转而成为一个去考别人的主考官。其中感触良多。笔者在上一本书《程序员面试宝典》中,是作为一个在校学生,对求职面试进行研究和理解的。步入职场后,随着经验和阅历的加深,眼界不再拘泥于语言的局限。之所以有很多像我一样对计算机技术“狂热”的人,其中一个原因恐怕是“编程”容易上手,花上个把月的时间就可以学到一些“高深”东西,并且可以编程炫耀一番。编程是创造的过程,看着自己的想法付诸实现,总会有成就之感,即使程序编写得很糟糕。编程也能处处体现征服困难的喜悦,每当一个问题被解决,心里面总有一种成就感,即使这个问题早就有人解决过了。正因为如此,有人会花上大量时间,用尽各种技巧用Java编写一个控件,而根本不去琢磨是否有一种智能客户端的技术,可以使用功能丰富的Windows控件。我们只能说这个求职者只是优秀的coder,但他的眼界还有待开阔。
作为市场上唯一介绍Java程序员面试的著作,笔者不希望这本书成为上一本书的简单翻版。就编程而言,虽然Java和C++大相径庭,但在更加有趣的语言后面的东西是设计模式、分析模式、求职解答、算法策略、信息化……也就是说在新书中追求的是程序员求职背后的一些东西:对于技术的本质理解。所以本书虽命名为Java程序员面试宝典,但不仅限于对Java技术单纯讲解。因为只有这样,求职者才能不被语言所羁绊,而对于一个企业而言,除了看中求职者对语言的熟练程度,更看重工作经验、大局观和整体架构等超脱语言的东西。
本书结构是一种问询式的结构。这样不仅言简意赅,平易近人,而且可以容纳更多的题目,真正达到宝典之效用。但本书又不简单作为一个题库出现,对一个类型的问题不简单加以重复。本书采用循序渐进的办法:(1)将重要概念加以复习;(2)完善解题思路,而不是仅仅给出答案;(3)给出完整可靠的答案,如果是可以验证的,要给出验证的结果;(4)综合几种解题方案,给出最优解;(5)触类旁通,给出语言背后的算法本质性解释。本书的解题思路不仅能够让大家知道什么是正确的解决方案,而且让大家明白怎样能获得最佳方案。
《Java程序员面试宝典》不同于其他Java程序书籍的主要特点如下。
¨ 唯一性
本书是国内市场上唯一介绍Java程序员求职面试技巧的图书和案例库。本书从实际出发,将Java程序员面试中常会考到的一些编程基础性问题,比如final、super类、构造函数等最易考到的基础考点,放在第2部分Java程序设计里面,希望能切切实实解决实际问题。
¨ 深入性
面试题通过一道题考一个专类方面的能力。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由4个方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质,至少你能了解应试者所掌握类的水平。
市面上流行的面试书籍在此专业性的分类方面做得不够,正因为如此,《Java程序员面试宝典》一书中追求的是程序员求职背后的一些东西:对于技术的本质理解,而不仅限于对Java技术的单纯讲解。
¨ 广泛性
本书包括但不仅限于Java程序员面试。对求职市场面试做了妥善分类后,将面试对象分为软件开发人员、网络工程师、测试工程师和系统管理员(又包括操作系统管理员和数据库管理员等)。实际上市面上流行的面试书籍仅对软件开发人员比较侧重,而忽略网络工程师和测试工程师,而现实情况是在诸如趋势科技、思科等公司的面试中,对网络方面的考题日趋增加,在银行、金融公司的面试中对系统管理员方面的考题也占很大的比重。本书就这一方面给出详细论断,并结合大量考题分析题目特点给出应试方案。本书将在这些方面做出改进,以适应市场需求。
同时本书对外企经常考到的UML及设计模式内容也做了深入的分析,并在上一本书《程序员面试宝典》的基础上从本质上诠释面试的真谛。
¨ 真实性
本书的所有面试题都来自2005—2006年各大公司的面试题及培训资料,内容非常新,可以算做面试者求职前的一份全真模拟。我们希望营造一种真实的面试氛围,同时作者希望把如何做好一个职业人,以及作者在职场上所获得的实际感悟融会在书中,通过真情实感,娓娓道来,指引读者走上理想的工作岗位。本书不是一本万能书籍,但却肯定是你工作求职的好助手、好伙伴!
推荐序
首先,我要感谢本书的作者能够选择这样一个备受大家关注的话题作为题材,同时也要感谢电子工业出版社能够将此书大力推广。要知道,程序员和面试可能是现在因特网上大家最为关心的字眼之一了——不,应该是之二。正好,本书详尽地描述了程序员应该学些什么、做些什么,然后应该如何面对烦人的但又必不可少的面试过程。当然,如果您不是程序员,我依然认为本书会对您的职业生涯有所帮助,相信我吧。
哦,忘了介绍我自己了。我是孔文达,毕业于北京某某大学材料系,现任微软(中国)有限公司顾问。咦?怎么读材料的从事上IT工作了?这说来可话长了。一句概括的话,就是:努力加机遇。当然,我并不想长篇大论应该如何努力及如何把握机遇,我想说的是和本书密切相关的话题——面试。
其实,无论是程序员还是其他任何行业的任何职位,面试过程都大同小异,无非就是提交简历、电话面试、面谈、得到offer等这一系列过程。当然,这其中每一步都很重要!简历要写得得体、漂亮,尽量突出自己的优势,屏蔽自己的劣势。电话面试还好一些,因为只是电话交谈,所以您也许会更好地把握自己的语言。面谈是最关键的一步,而且如果您准备不充分的话,一定会紧张。紧张,就有可能出现错误。不过还好,大多数面试官都可以接受面试者的紧张,只要不是太过分,问题就不大了。一般来说,中型或大型企业的面试都不止一轮,有些甚至有十几轮。就拿微软来说吧,官方渠道需要12轮面试,内部推荐也需要4轮,而且是一票否决式。就是说,有一个面试官说你不行,你就没戏了。怎么搞定所有的面试官呢?当然有很多技巧,但最重要的一条就是:面试官是个活生生的人,他/她一定有个人偏好,在你见到面试官时,尽可能在最短的时间内——最好是在他/她了解你之前——了解他/她,因地制宜地与他/她展开对话。最后一点,最好不要极其地、非常地、十分地想得到某个职位,这有可能会使你失态,抱一平常心有时会得到意想不到的效果。
这本书写得非常好,它非常详尽地描述了作为一名程序员应该为面试准备些什么和注意些什么。也许您现在还用不到它,先看看吧,指不定什么时候就用上了呢!这不是杞人忧天,而是未雨绸缪!
技术顾问 微软全国TOP3讲师
[ 在正式加入微软(中国)有限公司前,
曾任微软外聘顾问及特约讲师7年,并在
北京中达金桥科技开发有限公司
(微软在国内最大的技术及培训合作伙伴)
任人力资源部总监及副总裁。]
第二届微软十佳金牌讲师
首届微软十佳金牌讲师
MLC认证讲师
微软护航专家
CIW认证讲师(CIW CI)
CIW网络安全分析大师(CIW)
华为网络工程师(HCNE)
HP-UNIX系统及网络管理员(HP-UX Administrator)
Cisco认证网络专家(CCNA)
微软认证讲师(MCT)
微软认证数据库管理员(MCDBA)
微软认证系统工程师(MCSE)
微软认证专家(MCP)
微软销售专员(MSS)
……
1.1 应聘渠道
每年的二三月份,都是应届生求职、在职人员跳槽的高峰期。对于即将成为程序员的应届毕业生们,在求职过程中怎样确定目标公司和目标职位;对于已经是程序员的跳槽大军,是按照技术路线发展自己的职业生涯,还是走向管理岗位继续自己的职业道路,或者是改变自己的发展轨迹;大家在求职过程中要注意哪些细节?这些都是大家所关心的话题。
国内的IT业比国外兴起得晚,而且目前还没有权威的适合中国本土程序员的职业生涯发展规划。因此,国内流行的“35岁退休说”其实是一种误解,只要我们好好规划自己的职业生涯,提高自己的技术水平、沟通技巧和管理能力,就能够获得更高、更好的职位,完全可以像国外的程序员一样工作到60岁再退休。
让我们先从应聘流程中的注意事项,这个轻松却又容易被人忽略的话题开始吧。
1.1 应聘渠道
对于应届生而言,可以选择参加校园宣讲会的形式投递简历。如图1-1所示,这是EMC公司2006年校园宣讲会日程表。我们可以选择就近的城市参加它的宣讲会并投递简历。
图1-1 EMC公司2006年校园宣讲会日程表
招聘会投递的简历是“纸”的简历。尽管现在网上投递电子简历的方式大行其道,但是“纸”的简历仍然有着其无可比拟的优势。HR(人力资源经理)拿到“纸”的简历,相比一份电子简历更有一种亲切感,重视程度也较电子简历高一些。
第二种方式是投递电子简历,可以通过公司的电子信箱和公司网站招聘信息栏(数据库),以及各大招聘门户网站,如中华英才或者智联招聘等,来投递自己的电子简历。
1.2 应聘流程
应聘的一个完整流程如图1-2所示。
图1-2 完整的应聘流程
通常一个外企的应聘流程是一个很长的过程,有时甚至可以达到一两个月。还以EMC公司为例,如图1-3所示,让我们看一下他们的应聘流程。
图1-3 EMC公司的应聘流程
由上图可知,比较正规的企业的应聘流程一般分为5个部分:简历筛选,笔试,第一轮面试(含电话面试或邮件面试),第二轮面试,发offer。在下面的章节中我们会就这5个步骤做详细的阐述。
据统计,80%的简历都是不合格的。不少人事管理者抱怨收到的许多简历在格式上很糟糕。简历应该如何做到在格式上简洁明了,重点突出?求职信应该如何有足够的内容推销自己?如何控制长度,言简意赅?相信读了本章你会对简历的撰写有一个新的认识。
2.1 简历注意事项
1.简历不要太长
一般的简历普遍都太长。其实简历内容过多反而会淹没一些有价值的闪光点。而且,每到招聘的时候,一个企业,尤其是大企业会收到很多份简历,工作人员不可能都仔细研读,一份简历一般只用1分钟就看完了,再长的简历也超不过3分钟。所以,简历要尽量短。我们做过一个计算,一份中文简历压缩在2页左右就可以把所有的内容突出了。1页显得求职者过于轻浮,三四页就太多了。
简历过长的一个重要原因是有的人把中学经历都写了上去,其实这完全没有必要,除非你中学时代有特殊成就,比如在奥林匹克竞赛中获过奖。一般来说,学习经历应该从大学开始写起。
很多学生的求职简历都附了厚厚一摞成绩单、荣誉证书的复印件,其实简历上可以不要这些东西,只需要在简历上列出所获得的比较重要的荣誉即可。如果企业对此感兴趣,会要求求职者在面试时把这些带去。
2.简历一定要真实客观
求职简历一定要按照实际情况填写,任何虚假的内容都不要写。即使有的人靠含有水分的简历得到面试的机会,面试时也会露出马脚的。千万不要为了得到一次面试机会就编写虚假简历。被招聘方发现后,你几乎就再也没有机会进入这家公司了。而且对于应届生来说,出现这种情况后,还有可能影响到同校的其他同学。
北京某高校一位计算机专业本科毕业的女孩子,简历上写的是2004年毕业,但面试中被发现她是2005年毕业的,而且没有任何工作经验。这女孩儿比较诚实,说是同学教她这样做的。
她这种编制虚假简历的做法应该否定,因为谁都不希望被骗。作为面试官来说,首先希望应聘者是一个诚实的人。我希望她在听到同学那个不明智的建议时,首先不应选择这种做法,其次要尽力阻止其他人这样做。因为,就像面试官代表公司形象一样,她在某种程度上也代表了她所毕业的学校来参加面试!最起码她传达给HR的信息,与她同专业应届生的简历所表述出的信息相比可信度较差。
3.不要过分谦虚
在简历中不要注水并不等于把自己的一切,包括弱项都要写进去。有的学生在简历里特别注明自己某项能力不强,这就是过分谦虚了,实际上不写这些并不代表说假话。有的求职学生在简历上写道:“我刚刚走入社会,没有工作经验,愿意从事贵公司任何基层工作。”这也是过分谦虚的表现,这会让招聘者认为你什么职位都适合,其实也就是什么职位都不适合。
4.简历要写上求职的职位
在求职简历上一定要注明求职的职位。每份简历都要根据你所申请的职位来设计,突出你在这方面的优点,不能把自己说成是一个全才,任何职位都适合。不要只准备一份简历,要根据工作性质有侧重地表现自己。如果你认为一家单位有两个职位都适合你,可以向该单位同时投两份简历。
在我曾看到的一些简历中,经常有如下的错误:简历上描述的多为Windows操作系统下C/C++开发经验,但申请的目标职位为“Linux操作系统下的C/C++开发工程师”。这样当然不容易得到应聘职位的面试机会。还有就是去应聘ERP、CRM方面的职位,而简历里却大肆强调自己在嵌入式编程方面的优势。就算你非常优秀,你对这个企业还是没有用处。
有些简历里面没有详细的项目描述及责任描述,在责任描述栏仅仅填写“软件开发”或者在工作业绩栏仅仅填写“可以”两字。这样的信息传达无疑是不成功的。
作为求职的开始,我们要编写一份或者几份有针对性的简历,也就是按照对方的要求突出自己相关的经历。只要你的优势与招聘方的需要吻合,并且比其他应聘者突出的话,你就胜利了。
5.在文字、排版、格式上不要出现错误
用人单位最不能容忍的事是简历上出现错别字或者在格式、排版上有技术性错误,以及简历被折叠得皱皱巴巴、有污点,这会让用人单位认为你连自己求职这样的事都不用心,那工作也不会用心。
6.简历不必做得太花哨
一般来说简历不必做得太花哨,用质量好一些的白纸就可以了,尽量用A4规格的纸。曾看到过一份简历封面上赫然写着4个大字“通缉伯乐”,给人的感觉就像是在威胁用人单位。现在学生简历中比较流行做封面的形式,其实没有必要,这会增加简历的厚度,实际上完全可以不用封皮。
7.简历言辞要简洁直白
大学生的求职简历很多言辞过于华丽,形容词、修饰语过多,这样的简历一般不会打动招聘者。简历最好多用动宾结构的句子,简洁直白。
8.不要写上对薪水的要求
在简历上写上对工资的要求要冒很大的风险,最好不写。如果薪水要求太高,会让企业感觉雇不起你;如果要求太低,会让企业感觉你无足轻重。对于刚出校门的大学生来说,第一份工作的薪水不重要,不要在这方面费太多脑筋。
9.不要写太多个人情况
不要把个人资料写得如此详细,姓名、电话是必需的,出生年月可有可无。如果应聘国家机关、事业单位,应该写政治面貌。如果到外企求职,这一项也可省去,其他都可不写。
10.不要用怪字怪体
我见过一份简历,用中空字体,还有斜体字。这些都是很忌讳的。试想一个HR挑了一天的简历,很累了,还要歪着头看你的简历。你想你的胜算能有多大?其实用简单的宋体5号字就很好了,不用标新立异。
2.2 简历模板
一份合格的求职简历应该包括以下内容。
姓名、电话(或其他联系方式)等个人资料应该放在简历的最上面,这主要是为了方便用人单位与求职者及时取得联系。紧接着是毕业的学校、专业和时间。下面应该注明应聘的职位和目标。
接下去就是简历上最重要的部分:工作经历。对于初出茅庐的大学生来说,这部分包括勤工助学、课外活动、义务工作、参加各种各样的团体组织、实习经历和实习单位的评价,等等。这部分内容要写得详细些,指明你在社团中、在活动中做了哪些工作,取得了什么样的成绩。用人单位要通过求职者的这些经历考查其团队精神、组织协调能力等。
兴趣爱好也最好列上两三项,用人单位可就此观察求职者的工作、生活态度。
如果应聘外资企业、大的跨国公司,一定要附上英文简历,而且要把最近的经历放在最前面,简历前面最好附一封推荐信。一定要认真对待英文简历的编写,因为它会泄露你的实际英文水平。
下面是作者的一份简历模板。
求 职 简 历
姓 名
|
欧立奇
|
性 别
|
男
|
出 生 日 期
|
1980/07/03
|
学 校 及 专 业
|
西北大学计算机系软件与理论专业
|
学 历
|
硕士
|
移 动 电 话
|
13096964884
|
电 子 邮 件
|
|
IT&英语技能
|
1.软件结构设计,需求分析能力
2.精通C/C++、C#,精通SQL
3.熟悉Windows开发平台,精通.NET体系
4.熟悉Delphi开发工具,熟悉UML统一建模语言
5.深入理解面向对象的思想,并能熟练地应用于具体的
件设计开发工作中
6.英语水平:国家六级
|
项目经验(近期)
|
2005/5—2005/9
由×××出版社约稿编写《Visual C# .NET案例×××》,出任第一作者,目前该书已经出版(ISBN 7-121-01722-9)。本书主要通过具体的实例介绍如何运用Visual C#编程工具开发实际的应用程序,从基本应用到高级处理都有涉及,包括基础设计、图像处理、多媒体应用、系统文件处理、数据库基本处理、网络处理、网络与数据库高级应用、综合实例共8个章节。
2005/7—2005/9
与实验室人员合作,在基于ASP.NET+ SQL Server 2000的平台下开发西北大学网络选课系统程序。目前已交付使用。
2005/8—2006/2
与别人合作编写《×××指南:C#设计师之路》,出任第二作者,目前全书已经完成。完成“第5章 面向对象的编程”、“第6章 接口”、“第7章 数组”、“第9章 线程”的编写工作。
|
项目经验(近期)
|
2004/9—2005/1
与实验室人员合作,在基于Delphi+ SQL Server 2000的平台下开发西北大学人事管理系统程序。该项目是西北大学基金项目,目的为完成西北大学教职员工信息的统一规范化管理。系统分为教师科、劳资科、人事科、人才交流中心等几部分,实现了各个部门之间的信息统一化协调管理。该系统使用Delphi、Power Designer、MS SQL开发完成。
|
工作经验
|
2005/9—2005/12
北大青鸟ACCP培训师
2003/7至今 西北大学
就读于西北大学计算机系,在学期间,与实验室小组合作完成网上选课系统(ASP.NET+ SQL Server 2000)和人事管理系统(Delphi+ SQL Server 2000)的研发工作,以及教务管理系统(PowerBuilder 8+ SQL Server 2000)的测试工作。
应聘西北工业大学计算机三级网络任课老师,教授国家计算机三级相关内容。任北大青鸟ACCP讲师。
建立个人主页蓝色菲林(www.bluefeeling.cn),整个网站包括“我的技术社区”和“我的项目介绍”,完全由C#编写完成。
|
2003/02—2003/08
天津LG电子科技有限公司吸尘器部门研发部技术人员,并从事吸尘器量产管理工作。
2002/07—2003/01
重庆信息产业部44所7研究室研究人员,并从事CCD&CMOS生产检测工作。
1998/09—2002/07
就读于西北大学物理系,获得理学学士学位。
|
奖学金
|
中国石油奖学金优秀学生一等奖。
|
其他特长
|
文学和美术功底较好,擅长网页制作,Photoshop和Dreamweaver水平较好。擅长表述,能够胜任教学工作。
|
个人评价
|
我无法掩饰我对这份工作的渴望——一份有科研挑战的职位。
我一向认为理想分为两类,一类是实现自己的理想,另一类理想则通过自身得到实现。理想之于我则两者兼而有之,并稍稍倾向后者。作为老师,我喜欢传道、授业、解惑,形成一套自己的理论并潜移默化我的学生,在写书时常为一个理论如何能够清楚地讲述而煞费苦心;同样,作为科研工作者,我也被C++的华贵多彩而吸引,那是真正的逻辑之美。此外,很多时候为了项目的完满,必须具备一种不破楼兰终不还的决心和不积跬步无以至千里的恒心。
我谦和、谨慎,富于团队精神。希望你能给我这样一个机会展示自己。
|
谢谢!
欧立奇
2006.3.18
Resume
Name
|
LiQi Ou
|
Gender
|
Male
|
School & Major
|
Northwest University Master of Computer Software and Theory
|
Mobile phone
|
13096964884
|
E-mail
|
|
Education
|
Master
|
Career Objective
|
To obtain a challenging position as a software engineer with an emphasis in software design and development.
|
Computer Skills & English Skills
|
Languages: C, C++, C#, Delphi, XML, UML
Systems: Windows, .NET
Database: MS SQL Server
English Skills: CET-6
|
Recent Experience
|
05/2005---09/2005 Publishing House of ××××
VC# Casus Design was published by Publishing House of ××××in 2005.10. As the author I finished most of leading articles, including GDI+, Multi-Media, Database, Web System, and so on. It's composed of 8 chapters, 50 programs. I concentrated my energy on the book. In addition, I attained much pleasure in the process of writing. Now I'm going to write another book named White-collar Obtain Employment Guiding--- Flying with C#.
09/2004---01/2005 Northwest University Personnel Managing System
Northwest University Personnel Managing System is a system of auto-manage the personnel information. It is designed by PowerDesigner. The project is a C/S architecture system. It is based on a Microsoft SQL database, and the UI is developed by Delphi 7. In this project, I designed the schema of database, programmed
|
Recent Experience
|
database connectivity using Delphi 7 and ADO.
04/2004---09/2004 Northwest Network Courseselec- ted System Based on ASP.NET+ SQL Server 2000 we finished Northwest Network Course-selected System. Everybody in this University can select, cancel, query course in network. The project is a B/S architecture system; the code is developed by Visual C#, and runs on the .NET plat. In this project, I used the ADO interface which is provided by the database program. And after that, I joined the testing of whole system.
|
Self Assessment
|
I am an active, innovative man, a good team-worker, with rich IT knowledge and developing experience. I am
fit for a job of programming in an IT company.
|