天天看點

給剛畢業的程式員……

從你決定邁出校門進入社會的那一刻起,你就進入了一個戰場,這個戰場雖然沒有硝煙彌漫,沒有炮火紛飛,但卻絕不亞于任何一個真正的戰場。你要在這個戰場上去搏殺,去競争,利用各種可以利用的手段去赢取戰鬥。在這個戰場上,沒有人會因為你的弱小而給予同情,也沒有人會因為你是一個新手而手下留情,在這裡你會感受到在學校裡從來沒有感受過的"殘酷",你将深深的體會到一句話,那就是"優勝劣汰"。

我們能在這個戰場上獲勝的法寶之一就是"知己知彼,百戰不殆"。我們如果能夠在戰鬥前對雙方的情況了如指掌,那麼,取得勝利将會成為必然。

知己:要對自身的情況了解,要找準自己的定位。這個定位是自己對自己充分了解的情況下進行的思考,對于準備邁向程式員職業的戰士們來說,進行這個定位是絕對必要的。

知彼:要對未來工作崗位的一切做到盡可能的清楚,這就需要對你的對手有非常清楚的了解。

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,至于單線邊框的問題,他們總是用

""來描述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 點評"經營自我"

你是精品店?還是雜貨店?不管是什麼商店,都需要用心去經營,你認真對待你的顧客,

你的顧客也會給你相應的回

人生就是這樣:

把自己交給市場,用心去經營。