给刚毕业的程序员……

从你决定迈出校门进入社会的那一刻起,你就进入了一个战场,这个战场虽然没有硝烟弥漫,没有炮火纷飞,但却绝不亚于任何一个真正的战场。你要在这个战场上去搏杀,去竞争,利用各种可以利用的手段去赢取战斗。在这个战场上,没有人会因为你的弱小而给予同情,也没有人会因为你是一个新手而手下留情,在这里你会感受到在学校里从来没有感受过的"残酷",你将深深的体会到一句话,那就是"优胜劣汰"。

我们能在这个战场上获胜的法宝之一就是"知己知彼,百战不殆"。我们如果能够在战斗前对双方的情况了如指掌,那么,取得胜利将会成为必然。

知己:要对自身的情况了解,要找准自己的定位。这个定位是自己对自己充分了解的情况下进行的思考,对于准备迈向程序员职业的战士们来说,进行这个定位是绝对必要的。

知彼:要对未来工作岗位的一切做到尽可能的清楚,这就需要对你的对手有非常清楚的了解。

1.1 问题1:这个职业赚钱吗?赚多少钱

Java 程序员这个职业赚钱吗?能赚多少钱?

我们刚刚进入本书的正题就拿出一个俗不可耐"钱"字来和大家大谈特谈,未免不雅。但是,我还是要在一开始就要说这个问题,因为这是很多朋友关心的问题,为什么不先说?有很多即将进入这个行业的年轻朋友都很想问这个问题。

认真的面对这个问题,我们的回答是:

先不要急着问能赚多少钱,先要想想你为别人能提供什么服务。任何一个职业都很赚钱!而且,都可以赚很多钱,想拿高薪不一定非要做程序员。我不是在这里卖关子,这是真理,"三百六十行,行行出状元"。

那么这时,有些朋友听到了我说的这些话也许会很失望,其实也不要失望,这个职业有让你赚到高薪的机会,只是,赚高薪是在什么时候,或者是在程序员的哪个所属层级。

我们来了解一下程序员的修炼三层境界,了解一下这个内容会比较容易抓住本书中的内容要旨。

1.1.1 修炼第一层境界:剑指四方,试问天下谁与争锋

修炼第一层境界的程序员,对Java 开发技术尽数掌握,开发工具掌握的也较为娴熟。

可以将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类,接口和算法的开
发。注重技巧,对具体的编程语言非常熟悉。

能力之所及,皆无不用其极,认为所有开发知识,越是看起来深奥的越值得去研究,希望在自己开发的所有项目中,能用上的技术全用上,目的只有一个,就是尽可能多的获得实践机会。总想四处试刀,看看手里的刀到底快不快。满口都在谈,什么框架是最优秀的,C#和Java 的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至有可能因为一个开发观点而和别人争论的面红耳赤。

在编码中,经常可以看到他们会这样写程序代码:

他们非常想证明自己掌握技术的娴熟程度,没错,他知道这个知识,在这里可以省略大括号。
这类程序员大有"剑指四方,试问天下谁与争锋"的气势,工作具有活力,常常因为一个技术细节加班到深夜,大多属于拼命三郎型。如果项目不能让他们学到他们想要的东西,他们会放弃这些项目,去投靠别的公司,跳槽对于他们来说很平常。

第一层境界特征:

工作时间:三年内

工作任务:按要求编写类和接口的具体实现代码

工作内容:编写具体的代码

开发目标:无所不能

开发特点:注重技巧,对具体的编程语言非常熟悉

工作职位:初级程序员,程序员,软件工程师

参考薪金:¥2000-¥6000(仅供参考)

1.1.2 修炼第二层境界:世界如此之大,要学的东西很多

修炼第二层境界的程序员,他们往往是从事了Java 开发好几年了,从第一层境界进阶上来的好手,即,没有被优胜劣汰掉的那批人。之所以说"没有被优胜劣汰"这么"残酷"的用词,并非危言耸听,因为,一般修炼第一层境界是非常艰苦的,没有坚强的意志,没有强健的体魄,完全不可能进阶到第二层境界,也就是说,要头脑始终保持清醒,抱有坚定的信念,同时,你的身体也要非常好,才能过关。

if (a>0)
a++;
else
b++;

我们经常看到,在这一关掉队的人们,由于志向偏离,或者吃不了苦,或者对困难估计不足,甚至是身体原因放弃软件开发职业。这里之所以强调"身体",也是因为,第一关是如此的残酷,其实并没有人要求你加班加点,只是你的一腔热血使然。

所以,我们说在第二层境界中是"没有被优胜劣汰"的那批好手。

他们已经经历了若干个开发产品或项目,已经可以利用自己的知识去带领第一层次的程序员开发项目,可以说是一个很有经验的开发者,对在上一个层次阶段没有完全理解的技术知识已经相当的清楚。可以自由的运用开发技术,并分的清楚什么技术用在什么地方。

最让他们头痛的是项目的"工期"和"Bug",根本无暇顾及什么技术实践的问题。他们往往利用自己最擅长的架构方法去开发和设计整个程序的技术架构。

在编码中,经常可以看到他们这样编写程序代码:

他们老老实实的加上了"{}"大括号,因为他们知道,这些细节造成的Bug 有可能让他们花去数天时间去调试,而这个省去的大括号,根本不会给系统带来任何优化。他们知道的越多,越觉得世界是那么的广阔,不禁叹息"世界如此之大,要学的东西很多",对Java 开发技术方面的探求知识,大多是在产品的架构层面,更愿意去研究架构设计方面的知识,比如,他们很清楚什么时候使用EJB,什么时候该设计什么样的一个接口。

他们逐步感到,Java 技术已经不能满足他们工作成功率的需求,他们不得不去花时间去研究项目管理的方法,对总体的技术关注点也从Java 的具体开发技术,逐步的向和Java无关的其他信息技术方向转移,比如,网络应用层协议,其他平台语言,甚至Linux 内核裁剪等问题逐步纳入他们的视野。

后来他们会发现,他们想进入修炼的第三层境界的阻碍,恰恰是他们较高的技术水平。

第二层境界特征:

工作时间:工作三年以上,或直到退休

工作任务:按开发要求编写并指导第一层次程序员开发

if (a>0){
a++;
}
else{
b++;
}

工作内容:带领开发团队,设计架构,并编写关键程序,保证项目工期,对某开发项目
的质量负责

开发目标:不求有功但求无过,质量效率胜于一切,合理的技术用在合理的地方

开发特点:注重方法,不关注编程语言细节

工作职位:高级软件工程师、开发经理、系统架构师、项目经理等

参考薪金:¥6000-¥15000(仅供参考)



#2楼 得分:0回复于:2011-09-04 19:48:22
1.1.3 修炼第三层境界:最深即最浅,最浅即最深,不过如此
修炼第三层境界的程序员,他们通常是在第二层境界"突破自我"之后进阶上来的有智慧的人,所谓"突破自我"就是打破自己而脱掉原有的蝉壳,破壳而出获得新生的过程。

在修炼的第二层境界已经将技术水平练就的如火纯清,甚至个别技术可以用"登封造极"来形容,有自己的一套"绝活",可以说,靠这些本事在业界应该说是过着"衣食无忧"的生活。

他们逐渐发现,技术永远是技术,原来一直认为最深的技术恰恰是最简单的,而原来最简单的那些技术恰恰是最值得去研究的,其实那些所谓的"登封造极"对于他们来说,仅仅是利用他们所掌握的"原理级"技术,将"应用级"技术进行不同的排列组合而已。

任何"应用级"技术在他们眼里,没有任何区别,他们看着那些被业界炒作的"如火如荼"的技术,像什么,EJB 啊,开发框架啊,或者对于开发语言,什么Java 啊,Vb 啊,C 啊,或者其他什么语言,基本上是很"淡然",既不觉得如何好,也不觉得如何不好,只会淡淡的说一句"不过如此"。

所以,他们要突破,他们要进阶,面对他们的是更加广阔的空间,然而,他们会逐渐发现,他们进阶的桎梏恰恰就是原来自己的"优势",较高的技术水平,使他们更难"抛弃"或"摆脱"。突破自己的方法就是从技术中跳出来,利用"应用级"技术的不同排列组合去创造,去创新,这些创新要紧密的结合市场,要紧密结合应用业务。

他们不仅仅要具备很好的技术知识水平,还要具备更敏锐的产品洞察力,和更灵敏的市场嗅觉,并能够将这些能力充分的发挥并输出技术与市场都响当当的创意。最终他们成功了,达到了程序员修炼的第三层境界,他们已经突破了原有程序员的传统概念,达到了在业界"横行无阻,任意驰骋"的能力,这就是程序员修炼的最高境界。

第三层境界特征:

工作时间:工作六年以上(经常跳槽的不算)

工作任务:"应用级"技术的不同排列组合,以市场为导向去创新与创造

工作内容:面对市场背靠技术开发团队,指导开发的市场着眼点,指导市场的获利方式

工作目标:盈利

工作职位:部门经理、研发副总、CTO、解决方案专家、业务专家、产品经理、高级产品经理等
参考薪金:¥15000以上(仅供参考)

1.1.4 点评"修炼三层境界"

王国维在《人间词话》中对人生三境有如下阐述,"古今之成大事业、大学问者,必经过三种之境界。'昨夜西风凋碧树,独上高楼,望尽天涯路',此第一境也。'衣带渐宽终不悔,为伊消得人憔悴',此第二境也。'众里寻他千百度,蓦然回首,那人却在,灯火阑珊处',此第三境也。
又有人说人生境界如陶渊明《桃花源记》中所写的"初极狭,才通人。复行数十步,豁然开朗。"程序员的发展路径,就是程序员人生路径,从最初的"看山是山,看水是水",到后来见的多了悟到"看山非山,看水非水",没想到最终发现"看山还是山,看水还是水"。

1.1.5 回答这个问题

言归此问,"这个职业赚钱吗?赚多少钱?",我想我已经回答了这个问题,世界上没有天上掉下来的馅饼,也不会掉下一个林妹妹。

任何事业,均需如下才可成功:第一要立志,第二要思考,第三要奋斗。

1.2 问题2:大学毕业生找不到职业入口

大学应届毕业生,现在找工作是如此之难,本书不回避这个问题。目前的情况与笔者当年毕业时的情况有天壤之别。这个问题说起来是一个大话题,关系到"社会"、"经济"、"文化"、"教育"等诸多领域,并非一言以蔽之的事情,对于国内教育体制与社会用人需求脱节的问题,大家也已心知肚明。

本书也没有奢望能够在本节将其讲的很清楚,只希望,能够结合本行业的具体情况给出一个理由,以及给处于此阶段的同学们一个解决办法而已。

话说到,"大学应届毕业生,现在找工作是如此之难"这一问题,从本行业出发,不负责任的人,无非会给出一个似是而非的解释"缺少工作经验"。

乍听起来,好像是很有道理,但仔细一想,简直是"废话"。

应届毕业生哪里来的工作经验呢?

如果,按此逻辑,凡是毕业生通通在待业,因为,始终没有工作过,哪里来的工作经验,所以永远找不到工作啦。

认真的面对这个问题,我们的回答是:

缺少应聘该职位所必需的技术或者能力。为什么这么说,要知道,并不是只有应届毕业生找工作难,有"工作经验"但"缺少应聘该职位所必需的技术和能力"的人找工作同样难!所以,要想解决这个问题,作为我们广大应届毕业生同学,必须要弄清楚"应聘该职位所必需的技术和能力"都是什么。

即,工作经验都是什么经验。

1.2.1 工作经验都是什么经验

我们刚才已经说了,所谓的工作经验就是"应聘该职位所必需的技术和能力",那么这个技术和能力又具体指的是什么呢?

我们只从行业出发,来剖析这个工作经验,他是包含两个方面的问题,即"技术"和"能
力"。

1.2.1.1 首先说说"必备技术"

这时有些同学可能会说,"我已经会很多程序的开发技术啦,Java、C#、VB,都会呀,这些技术难道还不够吗?"

我可以毫不迟疑的告诉你,"不够!"。

我们再回过头来看一下,我们在"前言"中提到的那个应聘简历:

主要擅长于计算机的维护、应用以及开发:

软件方面:现以通过国家软考中心软件设计师资格考试;主要熟悉的IDE 环境:VC++,C++Builder,VB;主要使用的数据库接口:ADO;主要使用的数据原:Access,SQL Server,擅长使用SQL 语言;主要使用图形接口:OPENGL,对DirectX 接口也有一定了解;

其它语言:Java(J2EE、J2ME);

网络方面:熟悉ASP,PHP,JavaStript,以及网络构架设计、施工、调试,对安全知识也有相当的了解;

系统维护方面:有三年的计算机维护经验,熟悉系统工作原理;

其它:熟悉CAD、Photoshop 等几乎所有常用软件的使用,UNIX 系统的应用;这个简历中,几乎将目前信息系统开发的所有技术都列出来了,生怕用人单位会因为自己的技术不全面而不给他面试机会。

而结果是,仅仅有一个公司让他去面试了。

我们这里所说的技术,并非指的是"广",而指的是"精"。倘若这位同学真的搞定了那些技术,我想,每项技术能达到用人单位的要求,都至少需要1年时间,那么,在他的简历中提到的技术大家可以数一数,至少有10种,简单一算,全部掌握需要多长时间呢?

回答:10年!

那么,我请问,这位应届毕业生同学,哪项技术可以单独拿出来工作呢?有经验的主管们,一眼便知,此君为"应届"。因此,我们广大同学应该在所掌握技术的深度和精度入手,那才是用人单位最需要的。

1.2.1.2 再说说"必备能力"

说到能力,我们的很多应届毕业的同学们都愿意给自己的评价是"我的学习能力很强!"
或者是"具有良好的学习意识"等等。

请看这是某君简历中的自我评价:

本人性格开朗,做事认真,富有开拓精神,不怕挫折,具有良好的团队意识!具有良好的身体和心理素质,有较强的学习意识和自学能力。作为IT 行业的一员,我愿意花费更多的时间,不怕困难,努力提高自己的专业水平!

他的这段话看起来似乎还不错,如果看这个自我评价的是他的班主任,一定会感到很欣慰--真是一个勤奋好学的好学生!

然而,仔细看来,他这段话的重点是"自身学习能力和学习意识",以及"自我提高的强烈愿望",他很显然很想让用人单位知道他在校的学习成绩是多么的优秀,或者生怕用人单位觉得他在校期间学习并不优秀,总之,他千方百计的要突出自己的学习能力。

说到这里,肯定有些同学会很不服气,会说"突出学习能力强和自我提高的强烈愿望,这不正是说明他或她是一个好学生,有什么不对吗?"

当然不对啦,如果我作为用人单位,我请问你,"你学习能力强,自我提高的愿望那么强烈,和我们公司有什么关系",很显然你工作的第一愿望还是提高自己的技术水平,换句话说,你一定是对这份工作心里没底,希望借用"学习能力强"来告诉用人单位"我现在虽然什么都不会,但是我学习能力很强,很快我会学会的"。

我在公司中经常听到的一段对话是:

A 君:……。

主管:"你到这里的目的是学习?还是工作?如果你的目的是学习的话,你应该给我学
费,而不是管我要工资。"

说这话确实有点严厉,但是,这恰恰体现出了用人单位对人才能力方面的需求,这个需求就是,"创造价值"的能力,而不是你"自我提高和学习"的能力。

1.2.1.3 结论,工作经验是什么经验?
工作经验是:具备职位所需技术的精度和深度,最好是对那个技术非常精熟,具有为公司服务的意识,有为公司创造价值的能力,至少有为公司节约成本的能力。

通过以上分析,了解了什么是用人单位的招聘真实意图,这样,我们就不难写出符合用人单位需求心理的简历了,同时也就知道了自己的努力方向。

供求关系一旦吻合的时候唯一出现的现象就是"频繁的接到面试通知"。接下来,我们就要面对两件事"面试"和"笔试"。

1.2.2 他们为什么面试的时候这么问?

面试是一个"简单"而又"复杂"的事情,正因为它具有"简单"和"复杂"的双重性质,才使我们对这个问题不敢掉以轻心。介绍如何面试,有时候甚至可以写一本书,而有时候,你什么都不准备却可以面试成功。

因为,面试的成功与否完全取决于主考官,因此,这门学问的主要科目就是研究主考官的招聘心理。

我们研究好主考官的招聘心理,自然就可以做到"知己知彼"了。

本小节只是说说面试的"心理战",而想真正的能够对答如流,需要的是"真功夫",要想具备"真功夫"还是需要真正的技术水平作为前提的,本小节的内容只是给那些已经具备相应技术水平的应聘者提供一定的应聘技巧而已,以避免没有把自己的"真功夫"完全展示出来从而丧失工作机会。

面试前对自己的心理暗示:

面试并不是考试,只是和未来的同事聊聊天。

"心理战"对象,可能出现的主考官如下几类:

人物1,人力资源部主管(HR)

人物2,你未来的主管

人物3,你未来主管的主管

我们分别来分析遇到不同类型的主考官的不同情况。

1.2.2.1 人物1:人力资源部主管(HR)

"人物1"的出现往往是进行该职位的初审,给出一个概观定论,如果合格将会提交给"人物2"。"人物1"他们所要进行的是对人的心理和基本技能方面的一个判断。

不过,也有一些公司,首次面试仍然是由业务主管来进行,然后再将初审合格的人交给人力部门来复试,如果,是这种情况,你应该就算90%入职成功了,因为,这个复试往往是走个形式,看看此人有没有被主管忽略的大问题,如果没有,基本就差不多了。

那么,我们仅仅以第一种情况为例,看看"人物1"大多提出的是哪些问题。

1.2.2.1.1 常见提问1:请你自我介绍一下

这个问题,是人力部主考官必问的问题,这个问题的提问并不是真的想了解你的个人情况,因为,你的情况基本上在简历上都写着呢。他提出这个问题的主要目的是来考察你的语言表达能力,和你在表达过程中的一些细节表现。

所以,我们应该怎么回答呢?

看看如下对话:

HR:"请你自我介绍一下"

A 君:"您看简历吧,基本上我都写在简历上了。"

HR:汗…

HR:"请你自我介绍一下"

B 君:"我叫XXX,年龄24,性别男,籍贯……"

HR:倒…

HR:"请你自我介绍一下"

C 君:"这话从何说起呢?话说10年前……"

HR:晕…

首先,不要认为主考官没有认真的看你的简历,没有看你的简历就让你来面试,是在浪费他自己的时间,所以绝对是首先认为简历比较合适,才约你来的。

第二,自我介绍并不是让你重复一下你简历上的所有内容,那些内容简历上都有,主考官主要是想听听你如何表达和语言的逻辑能力。

第三,这个表达不要滔滔不绝,要有张有弛,有收有放,主要将自己的想说的优势部分分别道来,能够通过你的介绍让人感觉到你的"亲和力"为佳。

"语言表达能力"并非我们日常所说的"能侃"或者"口才",这是片面的理解,在面试过程中,我们要展现的"语言表达能力"是指,"语言亲和力",能够让人感受到你的"沟通"能力。

回答范例:

您好!我来自XXX 大学,是应届毕业生,所学专业是计算机应用技术,我在校期间参加多项课余工作,参与了多个应用系统的开发与设计,熟练掌握Java 开发工具和应用系统的各种开发方法。在学习与工作期间,总结与实践了各种技术实现手段,有了一些小的积累。

近期已经毕业,看到您公司的招聘信息,感觉自己的技术与能力非常合适,就投递了简历。希望能过了您这关,呵呵……(注:最后的微笑最好不要太牵强,目的是缓和气氛)大家看到了,这个回答范例的自我介绍非常简练,但是,什么也没有落下。

既实事求是的说了自己是应届毕业生,又说明了自己虽然是应届毕业生,但是参加了很多的课余工作,并且具有实际的项目开发经验,而且有了一些小的积累。

既说了自己的对这份工作和自己能力之间的考量,又表达了自己对主考官的期望。意思表达时不卑不亢,言简意赅,让人听起来就感觉很舒服。

这时候你的目的就达到了,展现出自己的"语言表达能力"和"语言亲和力",同时又能够让人感受到你的"沟通"能力。

1.2.2.1.2 常见提问2:你最大的优点是什么?

这个问题如果是HR 问,则最好回答了。回答这个问题的关键是"围绕自己的技术特长"展开话题,为什么这样?

因为,往往HR 都不懂技术,围绕技术说自己的特长很容易给他说晕(当然,个别懂技术的HR 除外)。这里要注意的是,在说技术问题的时候,不要让HR 感觉自己什么都不懂,要注意说话的节奏,不要太快,不要太骄傲。

1.2.2.1.3 常见提问3:你最大的缺点是什么?

这个问题是HR 的杀手锏,可以说这是HR 的狠招,这个问题最难回答,一般应聘者都本着"扬长避短"的心态去面试,冷不防冒出这么一个问题,还真是挺棘手的。

需要清楚HR 问这个问题的目的,其目的仍然不是要真的需要知道你的缺点是什么,还是看看你的表达能力,尤其是需要考察应聘者面对危机的时候的处理能力。

所以,我们不要用下列方式作答:

说出自己的真实缺点,尤其是在前面谈话中没有暴露出来的缺点认为说说某些大众化的缺点即可,认为说一两个无妨说自己没有缺点,强调自己比较完美总之,HR 心里想的是:需要了解他面前的这个人在面对困难的时候,是如何处理问题的,从处理危机的方法来判断此人的处理事情的灵活性。当然,如果此人自己暴露出自己的缺点当然更好,省得需要去想办法问更多的问题去发现了。

所以,在回答这个问题的时候,要看起来"真诚"、"坦白",同时,说出来的并非自己的缺点,而是最好在别人看来是优点的那些方面。

这个问题问的概率很大,通常如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,肯定不会录用你。HR 喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,目的还是突出自己优点的部分。

HR 喜欢聪明的求职者。

这一点比较难掌握,我们也给出范例:

回答范例:
呵呵,这个问题好难回答啊!我想想……(亲和力表现,也缓解了自己的紧张情绪)我的缺点是,比较执着,比如在技术方面比较爱钻研,有的时候会为一个技术问题加班到深夜。还有就是,工作比较按部就班,总是按照主管的要求完成任务。另外的缺点是,总在自己的工作范围内有创新意识,并没有扩展给其他同事。这些问题我想我可以进入公司以后以最短的时间来解决,我的学习能力很强,我相信可以很快融入公司的企业文化,进入工作状态。

嗯……,我想就这些吧。

这个回答范例开头第一句话就让人觉得很自然,因为这个求职者所说的话恰恰表达了一般人听到这个问题后的心理状态,还有你一定会有一个思考的时间,因为,谁也不会立刻说出自己的缺点。
后面说出的几个缺点都是一环套一环的,说了自己"比较执着",但又说自己其实是"比较爱钻研",说自己总是"按部就班",但又补充了其实那是"按照主管的要求完成任务",这时候,如果用人单位觉得,此人是不是没有"创新思维"的时候,马上就补充道"在自己的范围内有创新意识",至于"没有扩展给其他同事"这件事,其实无关紧要,干脆就卖给HR 吧。

以上回答确实卖弄了些"技巧",相信HR 也一定能看的出来,但是,即使看出来了也无妨,HR 也会心领神会,知道你是一个比较善于沟通并且善于表达的人。

1.2.2.2 人物2:你未来的主管

当见到未来主管的时候,往往是应聘者已经过了HR 那一关,或者应聘者已经过了笔试的那一关,因此见到这位人物意味着距离成功已经向前进了一步。

"人物2"的面试也有他的目的,他是和你在日常工作中接触最多的人,作为你的直接上司,他需要在工作中经常给你分配任务,他需要对他的主管负责,因此,他招聘的这个人选必须是可以帮助他完成他整个Team 的目标的人。

往往那个吸引你来面试的"招聘启示"就是这个人物所撰写的,因此,其实在你和他见面以前,早已经通过"招聘启示"和他有过交往了。因此,从"招聘启示"中就可以初显这位主管的端倪。
注意,主管同志并不是人事领域的高手,不会用各种语言技巧去发掘你身上的缺点或者优点,往往问题都是实打实的,或者比较一针见血的,而且,更偏重于日常工作。

那么,我们下面和他过过招。

1.2.2.2.1 常见提问1:请你自我介绍一下
这个问题,HR 也问过了,到他那里有可能还会问,主管问这个问题和HR 虽然问的问题一致,但是,其目的并不是完全相同的。

他不仅仅想考察一下你的表达能力,同时还想考察一下你思路的清晰程度。我们在回答他的问题前,一定要想清楚一件事:他是该技术领域的高手,就是我们"程序员修炼三境界"中描述的"第二层境界"的那个人物,如果还想更清楚的了解这个人物,可以去重新看看前面的那个章节。

这个自我介绍最好说的较为简洁,不要过分炫耀自己的技术如何如何强,免得引起这位主管的兴趣,引起他的技术兴趣没有什么好处,只会带来更多的技术问题的发问。

1.2.2.2.2 常见提问2:你最引以为自豪的项目是什么?

他问这个问题的意图是想考察你的成长路径和编程习惯,因为,最让你自豪的项目往往是你成长最快的项目,那个成长最快的项目往往会给你今后的编程习惯留下很多痕迹。

所以,通过你对那个引以为豪的项目的描述,有经验的他会很快锁定你技术成长中的缺陷和闪光点,从而判断是否能够"为我所用"。

你最好拿出一个自己最擅长技术的那个项目进行介绍,这个项目最好能够比较贴近招聘要求的那些指标。如果,没有做过什么有规模的正规项目,你就拿些自己非常擅长或者有创意的开发作品来说。这样做的好处是,他听完你的介绍后,会接下来进行提问,他所有发问,你都成竹在胸了。

切忌拿一个别人的项目,或者自己参与很少的项目来介绍,如果这样的话,一旦他深入的询问这个项目的问题,很可能你会所答非所问,反而造成更严重的影响。你大可以和他大谈特谈你在那个项目中获得的经验,那会引起此君的共鸣,有可能的话,说出一些你自己的小技巧,他会很高兴。

1.2.2.3 人物3:主管的主管

遇到"主管的主管"的时,往往已经是复试,这说明基本上已经是最后一关了。但要注意,这个最后一关是非常关键的一"关"。因为,往往如果你未来的主管在公司中某个专业够权威的话,他的主管一般不会管招聘的事情。因此,你看到这位"老大"的原因,多半是你未来的那位主管的专业地位还没有"稳定"。

1.2.2.3.1 最后的"搏杀"

过程大概是这样的,一般会将两个或三个人提交给"老大",让"老大"定夺,去选择其中的一个人,因此,这个阶段是一个最后的"搏杀"关键阶段。

1.2.2.3.2 "老大"关注的问题:成本+人员素质

所以,我们在和"老大"过招的时候,一定要注意自己的言行,切忌不要穿"奇装异服",或者男士留有个性的头发或胡子,总之一定要让人看起来特别的"平常",虽然不是"西装革履"但也要"衣冠整洁"。

因为,老板们最不喜欢"个性"员工,而最喜欢的是"优秀"的普通员工。

1.2.3 程序员的笔试

前面我们了解了和不同角色的人物见面的面试技巧,下面再说说程序员们更加频繁遇到的一个考核方式"笔试"。

"笔试"对于初级程序员应聘者来说是一个关键一关,也是刷掉的可能性最大的一关,一次面试中大部分程序员都会由于"笔试"没有过而无缘进入下一个阶段,只有少数程序员得到与主考官见面的机会。

作为即将应聘初级程序员的我们,更应该做好技术的准备工作,这部分工作恐怕要花费比较多的时间去准备。

如何准备?

还是那句话至少应该读完本书,因为除了"技巧"之外,"技能"更重要。

1.2.3.1 笔试目的

(1) 为防止没有实际开发经验和开发技能的人来面试,可以通过"笔试"过滤掉一批人;

(2) 考察掌握知识的扎实程度,及面对问题的思考方式。

1.2.3.2 笔试误区,这些情况在笔试时应避免

(1) 有一道题不会,就放弃了整个笔试

也许你认为这道题很难,其他竞争对手也会觉得很难。

(2) 没有看清题匆忙作答

这不是入学考试,如果没有人给你计时间,你不用那么匆忙,正常速度作答即可。

(3) 不能完整作答的,干脆就空白

这和我们在学校考试不一样,如果你不能回答完整,最好也写上思路,或者写上想和主考官说的话,有的时候他也会给你机会的呦。

(4) 不清楚的一些概念性的问题,用其他同样不太清楚的概念"生搬硬套"

有些概念本来就不太清楚,就别拿另一个你不清楚的问题往上"套"啦,这样做,往往让主考官哭笑不得,一下暴露原来这些概念都不清楚。









(5) 笔试没有60分及格线这么一说
应聘职位的"笔试"和我们在学校的"考试"完全不同,不存在"及格"与"不及格"的问题,
也许你某一个道题回答的很精彩,但是总分并不是很理想也会被录用。
1.2.3.3 笔试技巧
我挑了几道笔试题,曾经给入职程序员出过的几个测试题,大家看看应该怎么作答,我
们再看看需要注意什么,题目如下:
1.2.3.3.1 例题1:请说出这个程序的目的是什么?返回结果是什么?
public Station(URL urla){
try
{
String a="",b="";
InputStream ins = urla.openStream();
BufferedReader bReader = new BufferedReader(new
InputStreamReader(ins));
String info = bReader.readLine();
int i=1;
info=bReader.readLine();
while(info!=null){
a=info.substring(0,info.indexOf("@"));
b=info.substring(info.indexOf("@")+1,info.length());
if (i==1){
this.X1=Integer.parseInt(a);
this.Y1=Integer.parseInt(b);
}
if (i==2){
this.X2=Integer.parseInt(a);
this.Y2=Integer.parseInt(b);
}
if (i==3){
this.X3=Integer.parseInt(a);
this.Y3=Integer.parseInt(b);
}
if (i==4){
this.X4=Integer.parseInt(a);
this.Y4=Integer.parseInt(b);
}
i++;
info=bReader.readLine();
}
}
catch(MalformedURLException e){
System.out.println(e);
该题解释:
第二问,返回值是什么?
总有人直接回答,说"没有返回值",这说明没有弄明白构造函数的声明,如果是普通函
数没有返回值的话,应该用"void"而不是没有写任何东西。
第一问,这个程序的目的是什么?
这个程序乍一看确实不太明白,其实,这正是在考察应聘者的想象力和理解能力,这个
程序一看就应该知道这是一个构造函数,这个构造函数里有四对变量分别是"X"和"Y"作为开
头的,让人直接联想到坐标,另外这个构造函数的名字是Station,说明这个类的名字是
Station,因此,可以想见,这个确实是这个Station 的四个点的坐标,是用http 协议到一
个Web 上去取得一个字符串,再去解出这个字符串中的每一个数字,赋值给相应的属性。
某君的比较精彩回答:
该函数是一个构造函数,他的目的是构造一个Station 类,根据他的名字和属性判断,
这个类有可能是描述一个物体的位置信息,这个信息可以解出四个变量分别赋值给不同的属
性。疑问,感觉用substring 和indexOf 的方法解析出数据比较麻烦,为什么本程序不用
String 的split 方法呢?那会更省事点。另外这个程序是采用URL 类的openStream()方法
得到远端某一个网页上的数据,那网页可能是一个JSP,可以直接从数据库中取得数据,这
个方法,省去了一个自建的Server 程序,这种用法我是第一次看到,感觉学习到了一个新
的应用方法的知识。
1.2.3.3.2 例题2:请写一段html,完成下列表格的样子。注意:是单线边框
}
catch(IOException e){
System.out.println(e);
}
}
A B C
D E F
该题解释:
陷阱一:这道题初看起来很简单,似乎就是在考一个简单的"
"标记,于是有很多人都直接画出了一个table,至于单线边框的问题,他们总是用
"border="1""来描述table。
这样的话,画出来的图一定是这样的如图1 1所示。
还是一个双线表格,并没有像上图一样的单线边框。
陷阱二:本题表格中的文字是大小写不同的,有的用的是小写,有的用的是大写,一定
要按照要求回答问题,这主要考察的是按照要求完成任务的能力。
正确答案:
如果你做过网页中的表格,一定知道应该用这个方法获得单线边框的表格,因为这是一个典
型的单线表格设计方法。当然,有的人用CSS 来回答这个问题,也可以算对,只是方法比较
复杂了。
图1 1
A
b C
D e F
1.2.3.3.3 例题3:一个算法题
再给大家一道据说是难倒很多人的题,这道题曾经有50 人接受过提问,但是,只有3 个人
答对,请大家试试如何回答。
要求:有两个数组一个N 个元素,另一个M 个元素,这两个数组中有些元素是相同的,希
望通过编写一段程序将两个数组中的相同元素找出来,请用最少的循环次数完成需求,请问
需要用什么方法?
一般程序员马上会想到类似如下的程序:
for (int j=1;jfor(int i=1;i……}}
那么,这个方法的循环次数是多少呢?
答:M*N 个。
但是,要注意这个题的要求是,最少的循环次数完成需求,这时候只要想想一共有几种方法
完成这个任务即可,然后从中选择一个最快的就行了。
正确的答案是,用哈希表的方法,这个方法的循环次数是M+N,一个是将M 装入哈希表的
循环,一个是将N 逐个放倒M 哈希表中去查询的次数。
这道题有两个陷阱,第一个,"算法题",一般有些程序员只要听到"算法"这个词,马上晕了,
从而影响合理的思考。第二个陷阱是"最少",用最少的循环次数的方法,而不是普通的,但
就是这么两个陷阱使很多应聘程序员落马。
1.2.3.3.4 例题总结
大家看看,上面的笔试题其实从技术方面来说都不难,但是陷阱比较多,而且,需要你
能够有想象力,与出题者形成互动。从这几个例题可以看出,招聘单位最需要的人是实践能
力强的人,因此,我们要从这个方面多下功夫,这些功夫获取途径仍然是加强日常的积累,
本书的后面章节中也会涉及更多的类似经验,读者可以循序阅读。
1.2.4 回答这个问题
言归此问,"大学毕业生找不到职业入口",为什么找不到职业入口?
我们的回答是--没有搞清楚什么是职业的入口!
何谓"入口"?
"入口"就是找到自己如何面对用人单位的需求找到自己的突破点,而这个"入口"有代表
一种自身完善的方向和方法,当你符合用人单位的需求时,自然就找到了进入职业的途径。
1.3 问题3:跨行业真的这么难吗?
我遇到有很多在别的行业或职业发展的朋友,通过自己的努力实现了程序员的梦。在很
多朋友看来,跨行业的发展是非常难的事情,然而,这个跨行业真的那么难吗?
我在本节中仍然要强调的是,"三百六十行,行行出状元"这句"陈芝麻,烂谷子"的话,
如果想成功,任何行业都可以发展。如果你现在还不是程序员,甚至是现在只是一个从事其
他工作的人,但是你真心的热爱"软件开发"这个职业,并希望"软件开发"将成为你毕生奋斗
的一个伟大事业,那么你可以阅读本书内容,如果不是,那么把本书放回书架,打消"跨行
业"这个念头吧。
进入软件开发领域需要的是:
真心的热爱,并且有为之奋斗毕生的心愿。
1.3.1 跨行业最难的是什么
跨行业发展的困难之处在于"你是否愿意放弃"。
我曾经看到过原来从事很多别的职业的朋友转到程序开发中来,有学财务的、学商业管
理的、学建筑工程的,还有原来从事技术支持的,做网管的,以及做系统集成的,其中我看
到跨度最大的是一位"厨师"加入到程序开发中来,这恐怕是跨度最大的了。
虽然我们看到了很多人成功跨越了行业,但是,这个过程确实是很痛苦的,因为,他们
必须学会放弃原有的已经从事一段时间的工作,甚至暂时没有收入来源,仅仅凭借着的是一
颗热忱的心,和一种孜孜不倦的学习精神去支撑着自己。
跨行业最难的就是,在最初先是"不务正业",然后发展到"在家待业",跨行业成功了倒
还好说,一旦失败会落一个"好高骛远"的名声从而"身败名裂"。
这说的有些夸张,但实际上确实要放弃很多。
想跨行业发展?让我们找到入口!
1.3.2 跨行业的入口--原来从事行业的业务知识
跨行业的入口,就是你原来从事的行业的业务知识!
找到你原来职业和程序员职业相通的点,找到事业的发展路径才是关键。前期从事的职
业经历,有很多业务知识是从学校门出来就搞开发工作的所不具备的,因此,跨行业的入口
就是你前期从事职业的知识,这些知识可以是你在软件开发行业中迅速成长。
例如这些情况:
学财务的--搞财务软件将得心应手,因为你的财务方面的知识恰恰是帮助你的法宝。
学商业管理的--商业管理知识帮助你理解ERP、SCM、BOSS 等系统的原理。
从事技术支持的、做网管、以及做系统集成的--更方面的了解用户的某些方面的开发需
求。
至于作"厨师"的那位,如果开发餐饮行业方面的软件你一定非常熟悉。
1.3.3 农民造出了飞机,为什么他还是农民
我们在不久前看到这样一则新闻:《张斗三:会造飞机的中国农民》
新闻中这样说的:
普通农民造飞机本身就是一件新鲜事,一件大难事,张斗三平日的职业是广州的一家建
筑公司的项目经理,说白了就是一个建筑队的包工头儿。整天与他打交道的不是盖高楼的钢
筋与水泥,就是修路、架桥。至于他自己的文化水平,小学三年级,仅限于此。因为儿时家
里穷,为了讨生活谋生,13岁的他就背井离乡出门打工,开始了他做劳工砸石头的人生之路。
再说,造飞机真不是一件容易的事,它涉及到一大堆的专业理论,物理,数学等等知识都得
会,这事可真不是一般的人可以做的。但张斗三愣是凭自己的执着做到了。厂地,他选自家
天台。飞机设计,他全凭自己脑瓜儿里冒灵感。至于这工具嘛,老张也有高招,这不他把家
用的工具,全都派上了阵,叮叮当当的敲打起来了……
1998年12月18日,张斗三制造出了自己的第一架飞机"斗强三号"。
……
乍看起来,这是一个非常令人振奋的消息,"我们国家的农民就是厉害",但仔细想想我
们却发现这则新闻中隐藏这一点点的"悲哀",那就是"造出飞机也还是农民"的"悲哀"。
这看起来是"张斗三"的个人"悲哀",但其实这是我们整个社会的一个问题--"出身"。
因为,"张斗三"出生时是一个"农民",所以,他即使是做建筑工程的"项目经理"他也是
"农民",即使是把飞机制造上天他还是"农民",即使最后将其称为"科学家"也要冠以"农民
科学家"的称谓。
虽然,在这个事情的背后,存在媒体炒作的需要,但这是我们国内社会面临的一个现实
问题,科技进步的投入重点始终是在"科班"出身的科学家身上。同时也反映出,我们的"民
间科学家"在作跨行业研究工作时面临的窘境。
这一社会现象对于我们跨行业的广大"非科班出身"的求职者有什么启示呢?
这是很值得我们去思考的一个问题。
1.3.4 回答这个问题
言归此问,"跨行业真的那么难吗?"
跨行业发展和"科班"出身的人相比之下,当然会面临一定的困难,这些困难,有的来自
于自身,有的来自于家庭,有的来自于社会。你能否看淡这些困难并坚持自己的目标?这是
成功的关键,一旦突破自我以后,你会发现:被你认为应该放弃的,你原来的另一个行业的
经验,在新的事业中成为你的优势。
这里我们用一句话来结尾:鹰击长空万里阔,壮心上下勇求索。
1.4 秘诀:经营自己的优势
问了那么多个问题,其实秘诀只有一个那就是"经营自我"!
前面说的"大学生入职问题"和"跨行业入职问题",不管你现在身处于哪种情况,你都要
面对同一个问题--"销售自己"。
有几个名词前面一直在提到,如"战场"和"供求"等,这些名词都无疑表露出在这个社会
中的现实性,在入职这个问题上我们觉得他更像是一个"市场"。我们每一个人都在经营一个
"小店",这个"小店"中销售的不是别的东西,销售的就是你自己。
1.4.1 善于发掘和积累自己的优势
经营的故事:
世界商业报道:
麦当劳,可谓人所尽知。可又有谁知道,在当时有一家快餐公司和比麦当劳同时起步。
麦当劳很傻,接管餐厅只做快餐,其他的统统外包,钱都让别人赚去了。另一家快餐公
司呢,则很精明,想肥水不流外人田,什么钱都不想让别人赚,做面包要用到面粉,就自己
包了块地种植大麦;要用到牛奶,就自己养了几头奶牛,生产线急剧扩大。
若干年后,麦当劳成了世界头号快餐公司,分店遍布全世界。而另一家快餐店则不见踪
影。后来,人们在荷兰的一个小农场里找到了他,他早已不开快餐公司了,就养着几头奶牛。
一个企业的成功,首先要弄清楚自己是干什么的,自己的核心是什么。如果不弄清楚这
一点,盲目跟风,见什么赚钱就上什么项目,最终必将一事无成。如果,你想把自己成功的
销售出去,也要像经营一个公司一样,从自己的优势和特长出发,弄清楚自己为企业提供什
么方面的服务,自己的核心竞争力是什么。
俗话说"一招鲜,吃遍天",依靠一技之长,走遍天下。而这个"一招鲜"不可能是学校培
养出来的,如果学校能够培养出来"一招鲜",那么他就不是"优势"了,因为大家都会。
真正的"一招鲜"是自我发掘和积累的过程,并依靠勤奋得来的,要用敏锐的眼光发掘"
市场",依靠自身积累切入某些市场领域,形成自己的一套"一招鲜"。
在技术积累的过程中,要"有的放矢",不能眉毛胡子一把抓。程序员要做到"低头做事,
抬头看路",所谓看准"市场",就是抬头看路的过程,看准路在何方后,并坚实的迈好向这
个路前进的每一步,这就是我们程序员们要进行的优势积累过程。
在开发业界,存在很多名词和知识点,这些知识点不需要各个都去研究,有些东西只要
知道他们的大概原理即可,对于我们程序员,切忌"什么都会,什么都不精",要做到"一门
灵",要掌握一个知识就要深入的挖掘它,最终成为自己的特长。
1.4.2 善于展示与利用自己的优势
通过技术积累将自己的优势和特长逐步沉淀,同时,我们还需要学会去展示与利用自己
的优势,去争取机会。
曾经有这样一句话"机会只光顾有准备的人",我们技术优势的发掘和积累就是在时刻"
准备"。但是,有时候"机会"不是那么容易自己找到你的,还需要每个人去展示优势去吸引
机会。
在简历中要突出自己的优势,展示自己"精深"的特长。
我们看看这个简历,这个简历是截取的一段内容,看看他的简历有什么问题:
1.4.2.1 首先,我们看一下他的"自我评价":
"本人是一个工作认真负责、为人诚恳、积极主动、适应能力强、善于团队工作的人;
思维严谨、乐于学习新的技术知识、适合做技术类的工作。"
这个"自我评价",你是否觉得似曾相识?
没错,估计在学校每学期写自我评价的时候,都是这样糊弄老师的。
要知道,这个简历是给你未来老板看的,如果你是在经营自己,你这份简历就是你的"
产品简介",要给你的"客户"看,来让"客户"决定是否要花钱购买你。
这个"自我评价"非常的平淡无奇,过于"大众化",他的"优势"根本没有任何体现,这样
的"产品简介"根本不会引起"客户"更多的兴趣,肯定没有人"买"。
如果,我是你的一个比较挑剔的"客户",针对这个"自我评价",面试的时候会问你这些
问题:
自我评价1"认真负责":
认真负责的是怎么界定的,什么叫认真负责,认真负责到什么程度?
自我评价2"善于团队工作":
善于团队工作指的是什么?团队是一个什么样的团队?你跟团队是如何配合的?你怎
么那么肯定你善于团队工作呢?
自我评价3"思维严谨":
什么是思维严谨?如何体现出思维严谨?
很显然,这个"自我评价"比较不负责任,用一些比较"高、大、全"的语言来涵盖"自我
评价"。需要告诉你,你未来的老板不像你的老师那么好糊弄的,要拿出"真本事"人家才会
买你的帐。
1.4.2.2 我们再看看他的专业技能:
"熟练掌握Java、JSP、Servlet、C/C++、HTML/JavaScript;熟悉JBuilder 开发工具、
能够基于JSP、Servlet 进行Web 的应用开发; 熟悉J2EE 规范、了解MVC 架构、XML; 熟
悉Weblogic、Tomcat 等应用服务器的配置、开发;熟练掌握关系数据库Oracle、SQL
Server2000等; 熟悉软件测试的流程与方法。"
这个"专业技能"更是平淡无奇了,几乎所有Java 程序员都会这些技能,没有任何特点,
而且我们发现他这个"专业技能"中出现最多的是"熟悉",要注意"熟悉"和"精通"可是两个概
念,"熟悉"只能说明你知道这个技术,"熟悉"这个技术和真正拿它来开发更是不能同日而语
啦。
那么这意味着,他的这个"专业技能"在明明白白的告诉未来的老板:"我所有概念都'
熟悉',就是没有具体开发过!"。
如果,咱们换位思考一下,你是这个公司的老板,你愿意要这个员工吗?
这样的简历中有没有你的影子呢?
如果有,那么应该避免这些问题的出现,重新审视自己的特长,努力完善吧。
1.5 点评"经营自我"
你是精品店?还是杂货店?不管是什么商店,都需要用心去经营,你认真对待你的顾客,
你的顾客也会给你相应的回
人生就是这样:
把自己交给市场,用心去经营。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值