給所有想從事軟件研發的年輕工程師的忠告與建議

原始鏈接:http://wenda.tianya.cn/question/2ad53ed881383d59


給所有想從事軟件研發的年輕工程師的忠告與建議

一.我爲什麼寫這篇文章:
   這幾天,在某個IT論壇的軟件培訓與認證欄目中,看到了很多處於迷惑之中的人們,也看到了許多大家普遍感到困惑的問題,寫此文章的目的,是想將我這些年在軟件行業從業的一些經驗和體會講給大家聽,並對大家普遍關心也普遍困惑的問題進行一些闡述,我將盡我最大的可能告訴大家我所理解的事實真相,同時也衷心希望大家能夠理智而清晰的看待自己的方向,前途,發展策略等問題,避開自己發展的誤區。
   我目前在國內一家大型軟件公司裏做軟件開發總監,由於本文中涉及了我個人對一些公司和機構的評論,有好的方面,也有壞的方面,所以我不方便透露太多關於我個人的一些信息;另外由於本人寫的比較倉促,加之工作忙碌,也就沒有在文字上以及文章結構與邏輯等方面做一些整理,所以可能有些地方看起來有些亂。我想亂與不亂都是次要的,關鍵是,我希望我的這篇文章能夠讓大家將一些事情看透,從而防止自己在軟件行業內走入誤區,以便能夠在軟件行業取得更大的發展與進步。
   二.該怎樣規劃自己的技術發展方向以及人生髮展的總體思路?
   1) 要永遠相信“物以稀爲貴”,我這些年的經歷發現,現實中有很多軟件工程師存在嚴重的“跟風”行爲,也就是:只要市場上或者媒體上對某個領域或潮流進行“吵作”就無形中引導着這些工程師的學習方向與學習行爲。如果我們純粹以發展前景與“錢景”作爲個人技術發展方向的衡量標準的話,則一個普遍的規律是:跟上最流行的技術並不一定拿到高薪;大家可以看到,同樣是用C++編程語言開發軟件,在Windows平臺下的VC工程師,要比Unix平臺下的C++工程師明顯薪水低一檔,爲什麼?原因就是一個公司可以在人才市場上很容易找到會VC的工程師,但找到有Unix平臺下的C++軟件系統開發經驗的工程師相對要難找的多;
   2) 中國軟件市場是典型的內需驅動型的市場,所以中國的軟件公司需要不同領域的軟件開發工程師,而且不同領域的軟件開發工程師在薪水方面有很大的差別,在個人職業方展過程中應“隨需應變”
   3) 不要侷限於技術,一個人在自己事業上的成功或者說狹隘的說是個人財富的積累是一個人的“資源整合能力”的綜合結果,而絕對不是一個人的技術能力單方面決定着的;在過去的經歷中,我遇到了太多的“頭腦聰明,技術高超”年輕工程師,他們在技術領域很聰明,但是缺乏在公司具體的人際關係環境下生存的“基本人際關係網絡”管理能力,而變成了一個典型的“憤世嫉俗”的人。技術與個人智商高或者乃至上學時期的學習成績好絕對不意味着一個人更容易通向財務自由與事業成功之路。年輕階段有一定的技術積累是非常必要的,但如果徹底沉迷於技術,而不是着眼於個人5到10年以後你個人的事業成功所必須依賴的核心能力,行業背景和人際關係網絡等因素,遲早有一天會陷入人生的被動局面裏面去。
   4) 不要抱怨自己所處的公司環境的複雜性並牴觸之,其實無論是到管理水平很高的跨國公司還是管理很混亂的一些民營企業,只要存在人的地方,而起這些人之間只要在工作內容與職責上存在相互以來的關係的話,就不可避免有各中形式的人事鬥爭,在這種公司環境中,有些人善於分析公司內部環境與權力動態,並知道如何恰當發展自己並保護自己的利益免受傷害,他們鍛鍊了一種在複雜環境下的“領導能力”,而有一些人卻在這種複雜的環境下變得“憤世嫉俗”或“冷眼處之”
   5) 個人的職業歷程的發展模式是:隨着個人在職業生涯的年數的增加,你在職場裏有效開展工作,並應得工作業績和個人收益的核心能力就儘可能少的以來技術本省的東西,而是個人的管理與領導能力還有在行業內的關係網絡以及這些因素所必須以來的一個人人際關係能力與人際交往素質
   6) 不要按常理“出牌”,大多數人平凡的生活着,就是因爲大多數人的思維被模式華,所以他們做事情並沒有真正用自己的大腦深入的鑽研事實的真相併作出自己的選擇與判斷
   三.你應該如何開始自己的行動,並有一個很好的職業發展開端?
   1) 爲了得到一份軟件開發工作,是自學還是找一個培訓機構?
   任何一個培訓機構都不能一勞永逸得解決你職業發展得所有問題,所以有很多東西,你必須自己學習,但是從公司招聘軟件開發工程師的流程與關注點的角度來看,基本上是兩個大的因素,一個是個人的特定領域的知識結構和基本的開發技能,比如某個編程語言的使用能力,另一個至關重要也是可能通過某個自學途徑不太可能得到的就是“特定軟件開發領域工作經驗”這個工作經驗是必須通過實際的一些開發實踐方能獲得的,而這個工作經驗是你在公司決定給予面試機會,以及公司決定錄用當中相當重要的一個環節。 一方面你的簡歷中是否有你所應聘的公司所從事的軟件開發業務相關的“工作經驗描述”決定了你是否會得到面世機會(正是由於此點,造成目前絕大多數計算機相關專業的本科生,甚至研究生在就業方面面臨着沉重的壓力),用人單位最關心的不是你學過什麼,而是你親自做過什麼,另一方面在你得到面試機會後,用人單位的面試框架基本上在技術方面就是兩個方面:通過讓你描述你曾經做過的軟件開發項目來判斷你到底有多沒深入的開發經驗以及是否與他們的要求想吻合,另一方面,在讓你描述工作經驗的過程中,或過程後對你的基本知識結構和基本的技術能力(比如編程技能)進行考覈。
   我給你的結論就是:不是說你學過某個領域的技術知識,比如編程語言,比如數據庫等,就意味着你能找道一個軟件開發方面的工作,用人單位永遠將“你真正動手做過的項目與公司業務的吻合度”做爲第一重要的判斷點,你可以通過自學,或者自學能力差的話,跟着某些培訓機構去學習某個領域的專業知識,但是真正促使你找到一份薪水不錯的工作的主要因素是:你能夠通過某種方式做一個相對來說完整而複雜的軟件開發項目。而這個項目工作經驗只能說你在某個公司實踐工作獲得,或者從某個軟件培訓機構獲得(前提是這個軟件培訓機構能夠提供這種級別的軟件項目工作經驗,但我發現真正能作到的軟件培訓機構在市場中很少,)
   目前,市場上有很多軟件培訓機構都美其名曰,他們有項目開發實踐,但想提醒大家的是,同樣是項目開發實踐,是否能夠最終在個人求職方面用的上,主要決定於這個項目本身是否會給你足夠的‘工作背景經驗’以及這種工作背景經驗在人才市場上的“稀缺性”有多大。
   在這裏引用我一個在國內電信軟件公司做項目開發總監的朋友的一句話:“我在招聘自己的開發工程師時,基本上很少關注這個人有沒有證書, 我關心的問題基本上很簡單的幾個事情,一個是他有沒有做過與我目前的項目從技術面相吻合的項目經驗, 第二個問題是他本身的技術知識面和實際的動手技能如何, 第三個問題是這個人的學習能力和潛在的素質如何 第四個問題是,是否是一個易於合作的人,擅長溝通,技術人員都有那麼一些”個人英雄”主義的情結,但一般只要是複雜的系統項目,更需要的是整個開發團隊的通力合作”
   2) 北大青鳥或者NIIT培養出來的“低門檻進入”所謂的“軟件藍領”能適應中國目前的國情嗎?
   這兩年市場上非常火爆的所謂“軟件藍領”培訓,比如北大青鳥,NIIT等,“軟件藍領”曾經是媒體非常熱的一個詞彙,但中國目前需要這種意義的“軟件藍領”嗎? 或者說“軟件藍領”在中國真的能夠就業嗎?因爲藍領也好,白領也好,於想從事軟件開發的人員來說,他們的目的很簡單,找到在IT軟件公司的工作。
   對於這個問題,先談一下我的基本觀點:傳統意義的“軟件藍領”在目前中國的情形下是不適應的。
   首先,應該說軟件藍領實際上是軟件產業發展到一定的歷史階段所必然的結果,所說的軟件藍領是在大規模軟件工廠式生產模式下,專業從事軟件代碼與基本調試的一線人員,軟件藍領是產業發展的需要減低總開發成本並實現規模化,工廠化軟件生產的必然要求的職位,在這方面印度的軟件工廠模式已經取得了相當大的成功。他們擁有大量一線從事基礎軟件開發工作的軟件藍領,而且形成了金字塔式的人才結構。
   其次,我們談論任何事情都不能脫離歷史發展的現狀來談論,中國的軟件生產方式從總體來說離着大規模軟件工廠模式還有相當長的一段路程要走,從政府的意願來說,政府希望中國的軟件產業能夠以儘快的速度完成產業結構的完善調整,企業的兼併與重組過程,從而能真正形成可以與國際競爭的大型軟件企業;但至少在今後的幾年內難以實現,軟件人才結構的調整也需要再長的一段過程。傳統意義的軟件藍領實際上是,這些從業人員無須關心它所開發的整個軟件系統是怎樣的一個系統結構,他應該做什麼早已經被設定好,他只需按照“軟件生產規範”實現就行了,一定不能忘記這個的前提是“大規模軟件生產模式”,人數可能是1000人,到幾千人同時進行軟件開發,但我們再看一下中國的情形,中國的軟件企業去年統計是4700家,其中55%是50人以下的公司,50-200人之間的佔到42%,只有極少數的公司達到了1000人的規模;我們必須對一點非常清晰,如果我們培養了軟件藍領它是需要在中國的軟件公司就業的,這將佔到絕大多數,而且這絕大多數的人,絕大部分會到人數小於200人的軟件公司工作,但實際上站在這個角度說,可能這些軟件藍領有相當大的一部分人員找不到工作,原因很簡單,中國的絕大多數軟件公司的軟件從業人員的工作方式並沒有按照軟件工廠模式來運做,舉例來說,很多公司是項目經理即做系統設計,又從事代碼編寫,同理,項目經理的開發團隊的一線軟件工程師也是即做代碼,又參與系統的總體或者局部架構的設計,我不能說中國的所有軟件企業都在這麼進行着軟件開發,但至少在中國目前情形下,這樣的方式佔了絕大多數。所以,我敢肯定一點,印度的軟件工廠模式下的“軟件藍領”到中國來的話,他絕對做不了中國許多軟件公司裏的工作。
   所以,大家看到了,北大青鳥的軟件工程師培訓課程目前非常火爆,但是火爆並不意味着他的課程,以及他培養出來的軟件工程師在中國軟件人才市場有充分的競爭力的。
   再次,媒體炒做“軟件藍領”是一個事情,做爲從事IT教育的教育機構如何做教育又是另一回事,政府肯定是希望我們早日走上軟件工廠模式下的軟件產業結構升級,但作爲從業人員的最終就業場所是軟件公司,那麼這些中國的軟件公司他首先要照顧的是自己目前的發展階段,需要的是比軟件藍領更加有綜合的素質,綜合的知識結構和技能的從業人員來從事自己的開發,而不是遵從政府的意志,這是一個非常顯而易見的事情。
   所以,超越特定的產業歷史階段來談論軟件產業裏的軟件從業人員的教育問題是不切實際的。
   我本人對兩家“軟件藍領”培訓機構的看法:
   北大青鳥APTECH:
   說到軟件培訓機構,就必然要談到北大青鳥,總體來說我對北大青鳥的教師
   1) 北大青鳥阿博泰克公司是北大青鳥集團和印度一家培訓機構Aptech合資成立的一家軟件工程師培訓機構,他們的核心商業模式是“特許經營”。
   2) 北大青鳥在市場宣傳和品牌運作方面做得非常成功,他的總經理楊明原來一直在北大方正從事技術與市場方面的管理工作,對如何在中國市場上從事營銷工作有較爲深刻的認識,北大青鳥曾經在2001年出現過一些業務不景氣的現象,但楊明的加入,通過一系列的整合營銷傳播活動,將北大青鳥這一品牌進行了非常好的吵作,起到了長遠的效果
   3) 北大青鳥的核心客戶羣定位在“高中以上學歷均可學習”這樣一個羣體上,實際上,從我們招聘軟件工程師的經驗來講,這樣一個羣體,基本上不太可能在軟件公司內找到從事軟件開發的工作。
   4) 我發現現實中,很多人學習軟件開發有典型的盲目的從衆心理,因爲他們不知道事實的真相,
   NIIT
   1) NIIT也是來自印度的一家培訓機構,而且公司決策層是一水的印度人,他們的核心商業模式也是“特許經營”
   2) 應該說NIIT和北大青鳥Aptech有一定的淵源,NIIT是印度最早從事IT培訓的公司,Aptech是NIIT發展早期,從NIIT出來的一些人員創辦了Aptech公司,所以他們在商業模式上也有很達的相同之處。
   3) NIIT在中國市場上,整體的市場營銷與品牌運作方面要比北大青鳥差一些
   4) NIIT的課程設置以及課程中的一些核心理念與內容要比北大青鳥好
   5) 和北大青鳥一樣,NIIT的課程裏沒有設置非常有效的足以能夠讓學員找工作時用的上的軟件開發項目實踐(我的意思不是說他沒有軟件開發項目實踐,只是說這種項目實踐過分簡單,對找工作起到的作用不大)
   我給你的結論:如果你基礎很差,而且只是想學習編程知識,而不是靠培訓找一份軟件開發的工作的話,並且你的經濟不成問題的前提下,你可以選擇去NIIT學習,否則,如果你是想通過在某個軟件開發培訓機構的培訓去找到一份工作的話,不要選擇NIIT,即使他承諾簽訂就業協議,也不要去。
   7) IT認證培訓的火爆的情形下,你應該保持一個清醒而冷靜的頭腦
   從2001年開始到2002年,這兩年的時間,整個IT行業處於一個深度調整時期, 中國的IT市場也相應的受到了前所未有的影響, 但是IT教育與培訓業務卻取得了每年30%以上的發展速度, 這裏談談我的理解與體會
   其實每個市場的啓動與發展,都是與整個市場環境相關的, 市場的驅動力來自於客戶的內在心理需求, 雖然IT行業面臨一個調整階段, 但有兩點是我們必須看清楚的,中國的IT市場潛力還有太多未發展起來的方面,諸如企業信息化,行業信息化,電子政務,數據通信,無線通信等等領域, 而且從這點來看, IT行業仍然是各行業中薪水和待遇相對較高的行業,即使他受到了一定程度的影響. 但從另一個角度來說,應該說是整個行業的調整,就業壓力的加大驅動了整個IT教育與培訓市場業務的高速發展.
   正是由於市場發展的速度加快, 導致了整個行業的不規範,培訓機構魚目混雜, 實際上很多花了很多錢拿了某個證書的許多人,並沒有如他們所期望的找到一份很好的工作, 拿到不錯的薪水。我認爲主要有一下方面的問題:
   第一: 任何一個市場的發展,最終的驅動力量來自於消費者的內心需求, 某個商家只要能滿足某個特定消費羣體的心理需求, 他就肯定能抓住市場,贏得商機; 所以商家都在潛心研究消費者的內心深處, 進行關鍵的定位訴求,保健品市場,帶有很明顯的這種特徵, 至於這個保健品是否真正能達到他的”訴求”, 就只有消費者最清楚了. IT教育與培訓市場的發展也如此, 因爲整個產業環境變化和就業市場的壓力, 驅動了消費者去進行IT認證, 我們先姑且不管這些IT認證最終能否達到客戶的預期目的, 但至少需求是存在於客戶的大腦中了.
   第二. 我們的調查表明, 大多數選擇IT認證的消費羣體,在選擇是帶有很大的盲從性和從衆心理, 這些人並沒有真正認真研究一下用人單位的需求, 比如,有很多在校的大學生考取某個IT證書,只是因爲他覺得大學裏沒有學到什麼東西, 想考個證書來增加自己的就業砝碼, 想在他就業的時候,向用人單位證明一下:他在校期間學了什麼. 但他卻沒有想一個最關鍵的問題,這個證書是否真正有用? 反正是不管有用沒用, 先給自己一些心理安慰. 我們發現的一個問題是: 在校大學生很少能夠真正站在用人單位的角度去想想問題, 然後決定一下自己應該做點什麼備戰就業.
   第三個問題涉及到一個軟件教育機構,尤其面向IT領域的教育機構,他的總體運做思路和競爭戰略的問題, 這個機構是否站在用人單位的角度來進行思考, 他們的用人邏輯到底是什麼? 他們真的是看某個應聘者的證書? 還是在用人的時候更加註重從從業經驗來做判斷, 其次是,現實中,真正的就業困境到底在哪裏? 最後是軟件教育機構如何設置自己的課程來滿足用人單位對“軟件人才”的“核心需求”
   8) 爲什麼計算機相關專業大學本科甚至碩士研究生就業問題?
   目前大學生就業問題已經成爲一個日益嚴重的社會問題,以前IT相關專業的大學生就業時基本上是“皇帝女兒不愁嫁”,但是,我們看到已經有太多的學生,他根本找不到工作.
   確實大學生就業問題已經成爲一個值得我們關注的社會問題,目前大學生就業困難一方面跟我們目前的傳統教育體制的過分滯後有相當大的聯繫,另外一方面,整個就業市場的供過於求也是重要的因素。就拿大學生想在IT行業就業來看,就值得我們深思,我們整個傳統教育過程中都過分重視“學習知識,考分數”,這種思維模式的引導,使得學生一直轉不過這個彎來,我們的學生知道畢業前還是習慣於聽老師講課,自己將來考試過關。目前許多學生非常熱衷於某些IT認證類的考試就說明了這種思維模式的延伸,在學生的頭腦裏總有這麼個概念:你看我在校考了這麼多證書,你應該考慮給我一個就業機會吧。但實際上,我最想和在校大學生說的一句話是:請你們爭開眼睛,好好看看用人單位都在怎樣的用人,尤其想從事IT技術工作的大學生,用人單位真的不是很關心你到底學過什麼東西,他只關心你到底做過什麼? 當然,說到這,我們不能將這種東西歸責與我們的學生,應該說是我們整個教育系統有相當大的弊端在裏面。
   9) 我對於你參加培訓,尤其軟件工程師培訓的建議
   我所有下面的建議都是基於這樣一個前提:你想在軟件公司裏找到一份從事軟件開發的工作
   1. 不要相信任何證書,任何證書都不會讓你找一份軟件開發工作,現在大部分軟件公司很現實,他只關心你是否做過和公司所從事的軟件開發領域相一致的“軟件項目開發”經驗,這是他考慮的80%的因素,其他的因素纔是類似專業背景,學校,個人軟性素質,溝通技巧和學習能力等。
   2. 如果你沒有任何的軟件開發所需要的基礎知識與基本技能,你可以到一些培訓機構去學習這些基本知識,但是,如果你自學能力可以的話,我建議你自己學習這些基礎知識與基本技能。然後你再找一家真正能夠讓你實踐去做一些“軟件系統”的培訓機構(後面我將基於我的理解,向你推薦幾家)。
   3. 如果你具備從事軟件開發的基礎知識和基本的編程技能,但目前仍然沒有找到一份軟件開發的工作的話,那我告訴你問題的癥結:你沒有機會去親自從事一個大型的軟件系統,這個軟件系統的工作經驗具有足夠的難度和複雜性,去找一家能提供這種級別的軟件開發實踐機會的軟件培訓機構吧,畢竟這幾年,計算機相關專業的畢業生和幾年以前已經今非昔比,這並不是說市場不需要大量的軟件工程師了,而是,現在沒有多少軟件公司願意爲沒有“工作經驗”的新人提供工作機會並承擔一定的“跳槽風險”了。
   4. 不要被軟件培訓機構的市場營銷與商業吵作所迷惑,如果從“找到工作”的角度來看,能否帶你做一個相對“大一點”的軟件項目,是選擇的最重要的考慮因素
   5. 儘可能在培訓機構裏申請試聽幾節課
   6. 不要聽信任何的“品牌吵作”,本人對公司的媒體宣傳,市場策劃,公關活動等都有過比較深入的接觸,其實有些事情,比如說有些培訓機構,他們應該堅持“寧可不說,不可胡說”的,但你發現目前有多少培訓機構他“不胡說”?,但我相信一點, 一些做事浮躁的培訓機構,他是能夠在市場上一時風光的,但我相信這種靠“吵作”來贏得市場的行爲,是不可能長久生存下去的。

   7. 一定要認真研究一下,這個軟件工程師培訓機構是否有真正在“中國做過許多大型而複雜的軟件系統”項目的老師來講課,不要被一些培訓機構所闡述的“講師背景”或“公司背景”(比如掛靠某個知名學府或單位)所迷惑。如果你還聽到某個機構在說:聘請某名牌大學教授等字眼,我勸你趁早將你的錢袋子收緊些。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章