職業規劃就像軟體工程
電信、銀行等行業一直是許多人非常嚮往的工作單位,清差厚祿,旱澇保收,陳皓卻不以此為然。所以當記者採訪他的時候,他連用了兩個“最”字來形容他離開銀行的成就感。
陳皓畢業後的前兩年就職於雲南省工商銀行,從事銀行電信內全國性業務系統開發。後來在全球最大的格線運算/分布式平台軟體公司從事研發工作,熟悉Unix系統以及C/C++語言,擅長大型系統軟體需求分析、設計、架構、實施和維護,目前是某全球金融資訊資料處理公司的技術主管。
隨波逐流
回想當初,陳皓頗有感慨。還在大三的時候,他就被系裡優先推薦給了工行。那時他參與了繫上的一個項目(用HTML+JAVA開發一個線上教學課件),由於當時國內根本買不到HTML和JAVA的書,而學校也沒有上網條件,所以關於HTML和JAVA對系裡的老師都是比較新的東西,當開發完成後,系裡對此評價比較高。因此就在大三下學期把陳皓推薦給了工行。
由於早早地被銀行“預定”,所以陳皓的大四生活很自由,整個一年他基本是在一家很小的軟體公司打工度過的。 就是在那家公司工作的經曆,讓陳皓後來產生了離開銀行的念頭。
那家公司主要做些MIS系統,陳皓不僅獲得了一定的實際工作經驗和能力的鍛煉,還習慣了軟體公司高節奏、快學習、充滿挑戰的環境和氛圍。這造成了他畢業後到銀行工作時極度的不適應——效率低下,工作毫無激情,工作當中充滿了相當複雜的人際關係和政治鬥爭。
最主要的是,由於初到銀行,很多技術和產品從未見過,而主要實施卻由外面公司來完成,銀行自己內部中有經驗的人又不願意與人分享知識。雖然可以拿很多紅包,整天也很清閑,不是看報紙就是打遊戲,但陳皓感覺到那並不是自己喜歡的工作,沒有任何激情和鬥志可言。和大四時在那個軟體公司中的技術氛圍相比,完全就是天壤之別。
所以在銀行工作的這兩年,陳皓天天都在彷徨和思想鬥爭,“因為沒有自己的職業規劃,所以,浪費了至少兩年的時間”。最後,陳皓打定信念,決意離開去尋找自己的道路。
“因為我是在一個相對比較閉塞的城市(昆明),所以,我要離開銀行的決遭到了父母、同學、朋友、同事,幾乎是身邊所有人的反對。但最終,我還是一意孤行離開了銀行,遠走他鄉到上海這座大城市去尋找自己的人生道路。”
“從此,我走上了一條不可回頭,並和以前完完全全不一樣的道路。”從國企到民企再到外企,從打雜到程式員再到進階程式員到team leader到技術主管,從小酒店MIS到企業OA到全國性的大系統到世界領先的分散式運算平台叢集軟體,“若干年過去了,經曆了高速的發展和獲得了很多不同的經曆,但唯有當時選擇離開銀行這件事情讓我至今都為之興奮。迄今為止,這是我自己覺得最最有成就感的事情。”
正如陳皓所說,“也許,最讓一個人感到最有成就的事情,不是他做成了什麼,而是他選擇了什麼。”
認識自己
多年打拚後,陳皓雖已是技術主管,但走的那些彎路,浪費的兩年時間,一路中的心酸讓他明白了很多道理。“今天,我對許多剛上路的朋友都會說,人生的規劃很重要,從上大學時就要好好規劃,這對國人來說尤其重要。因為對於國人來說,人生的頭20年都是被別人規劃的,導致了自己根本不會給自己做規劃。這點是相當危險的。”
人生短暫,屬於自己黃金的時間不多,如果把太多的時間浪費在尋找道路和方向上,很有可能會導致一事無成,要及早確定自己的規劃,然後照著這個規劃堅定不移的去執行。陳皓認為,做規劃時最重要的是兩個方面:一是清楚地認識自己的能力、優勢和性格;二是確定自己的專業和想從事的行業。只有在確定這兩方面後,才能做出自己的職業規劃。
兩方面看起來很簡單,但認識自己並不是一件容易的事情。陳皓認為應當從下面十五個方面審視和認識自己,協助自己確立人生規劃:A)所掌握的知識,B)問題的解決能力、判斷能力和分析能力,C)對待困難的心態,D)團隊合作能力,E)表達能力和語言群組織能力,F)創造和創新能力,G)溝通能力,H)自己的性格內向還是外向,I)是否有堅韌不拔的專研精神,J)自己的弱點和性格上的缺陷,K)學習能力,獲得知識的能力,L)領導組織能力,M)目前自己能夠進入的企業,N)目前自己在社會中的地位,O)目前自己的競爭實力。
職業規劃就像軟體工程
確定了自己的行業和專業領域後,接下來的事情應該是1)努力掌握這個行業的知識,2)用最短的時間瞭解這個專業和行業更為具體的各個子方向。然後在實際過程中再認識自己。比如,選擇了電腦行業,應該盡量地嘗試軟體、硬體、網路、娛樂、媒體等電腦行業不同方向的工作,如果從事軟體,又分Web、系統、項目、ERP、CRM、資料庫、嵌入式……,在工種上又分開發、測試、支援人員、流程管理,專案管理,系統架構,售前,售後……。當然,我們並不需要去嘗試所有的工作或工種才能知道自己適合什麼,我們完全可以向從事不同方向的人諮詢並結合自我認識來做出判斷。
在這個過程中,迷茫的摸索可能是很難避免的。能夠及時得到前人的指點可能會是一個捷徑,徵求前人的建議可以起到參考的作用,快速原型(快速嘗試)或許也是好的辦法。因為人與人不同,他人的路並不一定適合自己,適合自己的路還要自己去規劃,別人是幫不上忙的。
要經常性地跳出自己再來看自己,客觀地分析自己的優勢和劣勢。讓自己和別人掂量掂量自己到底幾斤幾兩,瞭解到自己的長處和特點,然後才能知道自己適合做怎麼樣的事和並調整自己的職業路線,這是一個“肯定到否定再到肯定”螺旋上升的進化過程。當度過對自己對社會的“陌生期”後,才有談得上對自己人生和職業的規劃。
個人的職業規劃就像軟體工程。我們都知道軟體項目最大的敵人是需求的不明確和需求的大面積變更,同樣,在個人的職業規劃中,自我需求的不明確和需求的變更也是非常危險的,尤其是在職業計劃實施了四五年後需求的變動和改變。只有需求確定以後,才談得上個人的職業設計的HLD(High Level Design)和LLD(Low Leave Design),以及具體實現。此後隨著自身的日益成熟,可以隨時為自己的Bug打補丁(Patch)改進自己的職業生涯的設計和實施細則(Enhancement),並為自己加上更多更強的能力(New Feature Requirement)。最終達到軟體版本的升級。
給新人程式員的八點建議
今年已經是陳皓在程式員行業裡的第十個年頭了。總結這十年,畢業的頭兩年,陳皓在銀行中昏昏沉沉中度過,“這是我最失敗的時候,兩年的時間幾乎完全白費了”。後來在上海的兩年,我拚命地學習看書,並不斷總結所做的項目,這個階段是我補課的階段,也是我量變的階段。到了北京的這五年,是我從量質向質變轉換的階段。
拚命看書剛畢業的時候,陳皓也像很多剛畢業的學生一樣,根本沒有對自己的職業進行過比較好的規劃。“還記得當時什麼都沒有想,就是想做一些實際的事情,好好的專研一些技術。實在沒有別的什麼想法。”在畢業頭三年中(1998年到2001年),不要說是對未來的職業有所規劃,對所學的技術也是毫無規劃。離開銀行後到上海加入了一家專做銀行的系統整合的公司,發現自己和別人的差距非常的大,所以開始拚命地看書和學習,在到上海的頭一年中,看了四、五十本書,研究的技術包括PB, delphi, SQL, HTML, CSS, DHTML, java, Perl, CGI, ASP, PHP, JSP, XML, UML, MFC, Lotus Notes, Unix, Oracle, Informix, C++, ActiveX, ODBC, ADO, .NET, COM, 乃至CISCO路由器的配置,Photoshop, 3DMAX……陳皓學得很雜很泛,完全沒有目的,只是覺得別人懂的自己也要懂。”“看了許多許多的書,完全沒有好好想想自己應該走什麼方向。現在回頭看來也不知道是好還是不好。”也許是看的書太多,懂的東西太多,後來有機會參與了一次全國性質的項目。後台是AIX+Informix用C開發,前台是用PB的PFC做介面,通過IBM的CICS這個中介軟體連通前後台。在開發這個項目的一年時間裡,陳皓對Unix/C/C++以及分布式系統有了非常深刻地認識,並深深地迷上了它們,同時對大型軟體工程的流程和管理有了非常深刻的瞭解。這個項目對陳皓的影響非常大,除了技術上的收穫之外,更讓陳皓逐漸確定了自己的規劃。
技術之外2002年底,北京一家做分散式運算/格線運算平台的加拿大公司對我產生了興趣,經過5輪面試陳皓拿到了offer,又一次開始了我的奔走——從上海來到了北京。新的公司讓陳皓的Unix/C/C++得到了非常大的鞏固,“這個公司也讓我這個土狼學到了很多很多,特別是認識和觀念上。”特別是在帶領一個team對公司歐洲使用者做Customer Service方面的工作時,陳皓學到了很多客戶管理的知識,英語能力、與人溝通的能力以及對軟體的認識得到了完全的升華。陳皓開始使用一種和以前完全不一樣的方法去思考問題——從使用者的角度對問題進行思考。“此時,技術方向對我來說已不重要,技術對我來說已經變得非常簡單,因為技術只需要看書看文檔就可以擷取。”陳皓開始用全新的方式思考如何管理一個團隊,如何製造一個成功的軟體,如何管理客戶。並由此有了更進一步的職業規則——成為一個成功的技術主管、建立一個成功的團隊、開發一個成功的軟體產品。
給新人程式員的八點建議
走過彎路,有過迷茫,回首九年陳皓感慨萬千。“今天,我對許多剛上路的朋友都會說,人生的規則很重要,從上大學時就要好好規劃。”他結合自身經曆,
對許多剛踏入程式員行列的新人程式員,他給出了以下八點建議:1. 在大學的時候盡量多地進入公司參與實際工作,一方面積累工作經驗,另一方面,提前認識工作和自己,以便畢業時更準確地把握自己的方向。2. 從畢業開始到畢業後至少5年內,踏踏實實地專研技術,這是一個積累過程,千萬不要把心思放在錢和職位上。錢和職位只是能力的附屬品,不要讓其喧賓奪主。3. 從畢業後3年到7年的時間,注意學習工作當中的方法以及相關的管理和流程,不但要知其然,還要知其所以然。4. 30歲以前,踏踏實實地學習。學技術,學做人,學做事。30歲以後再談自己的發展。5. 畢業後的前5年主要是量的積累,要不停地積累知識和方法。畢業後的5到10年主要是質變,應該著重于思維和想法的更新。後五年應該有很強的包容能力和接受新東西的能力,千萬不要太過固執和堅持自己的想法。6. 換工作要“承前啟後”,前面的工作會成為後面工作的一個基礎,而後面的工作又會成為前面工作的一個很自然的延續。7. 不要只把心思放在技術上,技術是hard skill,只要下工夫就一定會掌握。更要注意與人溝通等為人處事的soft skill上。hard skill像一個大樹的根,而soft skill則像一個大樹的枝葉。樹根是你的根基,能讓你站得很穩,而枝葉能讓你向天空伸展,獲得發展。8. 對於程式員來說,應該始終記住,技術不是主要的,主要的是通過技術能夠解決什麼樣的問題。一定經常想要解決什麼的問題,要滿足什麼樣的需求,而不是要用什麼樣的技術。
本文由CSDN採訪編輯,發表於以下連結:(非常感謝CSDN編輯王磊)
陳皓談程式員升級(上):職業規劃就像軟體工程
http://news.csdn.net/n/20070706/106194.html
陳皓談程式員升級(下):給新人程式員的八點建議
http://news.csdn.net/n/20070710/106274.html