程式設計師的職場晉升之路
職業規劃非常重要的一點是要學會角色分析能力。大部分人在長期的工作中趨於麻木,對自己的角色並不清晰。但是,在職者必須讓自己有一些過人之處,讓自己的價值和成績得以體現並受到認可。《職場晉升路線圖》旨在探尋不同行業的發展規律,為職場人士提供晉升的方法。
程式設計師篇:做一個程式設計師很忙,你需要去寫程式碼,去建立meme,去進行測試。那麼你為何還要做程式設計師呢?
1、為了寫出優雅的Ruby程式。
2、為了用我喜歡的語言開發出一款人們喜歡的產品。
3、給人們遇到的現實的問題找到解決方案,對於我來說,我喜歡做我所做的。
4、去創造,或去組成能讓人們生活更方便的東西或事物。
5、讓我創造的東西能產生積極正面的影響,針對我,也針對他人。
6、快樂。我自己,還有那些直接或間接關注我和我的作品的人。
這些問題幫助你明白了自己為何要選擇這條道路了嗎?那麼作為一名程式設計師,你知道自己未來的發展之路嗎?
【一】程式設計師通常的發展路線是怎樣的?
程式設計師通常的發展路線是怎樣的?可以看看這個圖,當一個初步的職業規劃方案已經成型時,如果制訂者目前已在一個軟體公司工作,那麼,對他來說進一步的提升非常重要。 首先要做的則是進行角色分析,反思一下這個職業環境對個人的要求和期望是什麼,如何使自己在單位中脫穎而出。
通常,軟體技術人員的職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術型銷售、技術支援等;隨著技術成長,從技術性管理到高階管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。
就像烹飪一樣,每一個階段目標都需要你進行角色分析,找出這一角色需要的‘配料’,當你注意收集技術、素養等相關‘配料’後,就會成功烹飪出你所需要的目標魚。前提是你一定要了解自己的特點和優勢,就好比黃瓜種子是不可能培育成西瓜一樣。
這歸根結底,都是以技術為基礎。在紮實的技術基礎上(高階軟體工程師),如果有著比較強的抽象設計能力,又打算專注於技術開發,架構師是個好的選擇;如果 性格更適合做管理,情商能力突出,技術型管理應該是下一步的方向。這種發展規劃屬於‘瘸腿走路’的型別,各有側重主攻發展的職業方向,也是目前一般程式設計師 普遍採用的發展路線規劃。
決勝點在於長期的點滴積累,認證證書、成績、豐富的經歷是求職的表面文章,在目前軟體行業裡不是很看中這個,真正的‘內功’是需要規劃的。至於培訓,我倒 是很建議直接加入軟體公司,你就會學到很多實際的東西。不過,學歷教育雖然在職業生涯裡不是主要的,但是隨著職位的提升卻有很重要的意義,能輔助拓展你的 職業發展空間,而不是以此為阻礙從而失去更多的機會。
已經工作兩年以上的程式設計師可以有幾種基本的職業規劃:技術專家、軟體架構師、實施顧問或銷售。其中程式設計師最主要的發展方向是資深技術專家,無論是 Java、.NET還是資料庫領域,都要首先成為專家,然後才可能繼續發展為架構師。儘管架構師的職位可以工作一輩子,待遇也非常好,對於科班出身的程式 員最為適合,但這種工作職位非常有限,因為在中國目前的IT行業,架構師需要的條件比較複雜,而且需求量也比較少,這也是我國軟體行業走向國際並有待成熟 的因素之一。
【二】綜合才能型發展路線圖
目前國內缺乏的是管理能力和專業知識技能並駕齊驅的IT人才。特別是懂得運用目標管理技術的專案管理人才,既掌握核心技術又有全域性掌控能力的專案管理人才,非常難找。我建議對於大多數人來說,首先是要專,只有在技術方向上做得比較深入,才能適當做工作調整,把自己轉變為某個領域的專家。
根據自己的情況,決定自己做軟體架構師還是高階的顧問銷售,另外一部分人可能就會走向管理,這和 個人性格與情商有關。軟體優秀的管理者都必須懂得技術,掌握核心技能的人才向管理崗位轉型有很大的優勢,因而提升管理能力成了轉型的關鍵。譬如,當唐駿還 是微軟一名普通程式設計師時,就從公司發展的角度考慮,向老闆提議開發了中文版Windows,最終使他從幾萬名工程師中脫穎而出,成為部門經理。正如他所 說,雖然是程式設計師,但自己不能只把自己當程式設計師,你可以為老闆和公司著想。
調查研究後,帶著解決方案去找老闆,就會得到老闆的重視和信任,所以一定要增強工作主動性和參與性。無論是軟體開發還是專案管理,國內員工大多隻是做好份內事或完成交派任務,很少能主動發現問題。其實,只有擁有更高眼界,才能謀取大發展。
總之,程式設計師要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。也是一名程式設計師本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂‘兩條腿走路’的職業規劃發展路線。
在未來發展上首先確定自己的發展方向和研究方向,在學習技術的同時還要為以後做準備,做好以後的技術轉型。廣度和深度是相對的,先廣還是先深實質上從某種 意義來說取決你的工作性質,如果你是從事單一工作的,多半你會短暫先深,因為這是你立足的根本;而如果你選擇的職業是綜合性的,比如管理、講師等,那麼你 必然要先有廣度才可以,但一段時間後,你都要轉入深度,只有你在某一方面或領域有一定的深度後,你才能繼續尋求廣度,否則,你將什麼都會,但什麼都不精, 這樣的人在市場上是最難以立足的。
【三】初入職場,程式設計師的上升空間在哪裡
1、 技術上的反思和提高
無論程式設計師個體之間差異有多大,我認為程式設計師上升空間在於技術上的反思和提高。程式設計師到了成熟階段,往往有一種狂奔到終點後的那種感覺,身體疲乏無力,特別需要休整再戰。要知道程式設計師在“奔跑”的時候,一般是在使用自己的體力,很少用到跑步的技術和技巧。尤其是到最後,更是依靠體力來支撐。從技術提高的曲線來看,新手的技術提高速度最快,無論從時間還是急迫性兩個方面對新手的壓力挺大的。而到了成熟階段,其程式設計時間也大大縮短了和學習技術的迫切性也降低了, 所以技術提高速度就慢下來許多。在現實中,我們真的看到有些年輕的程式設計師還看不起那些程式設計師的技術水平呢,就是這個道理。
因此,成熟的程式設計師在安頓之後,一定要坐下來反思自己,看看自己的技術發展之路,哪些走的比較踏實,哪些走的比較急促;哪些是自己的技術特長,哪些是自己的 技術薄弱環節。反思後一定要抽出時間抓緊學習,把自己的技術上明顯不足的地方給補上,這樣程式設計師的技術水平加上豐富經驗和工作能力會使得自己更加具有實 力,可以應付各種挑戰,為今後的發展鋪平道路。
而那些順其自然的思想,使得程式設計師缺少技術提高的主動性,程式設計師有明顯的技術上的問題,也不主動去解決,而是拖之再拖,從而使得程式設計師的成熟度大打了折扣。
2、 走向軟體設計師
其實很多程式設計師走到這個階段已經在做軟體設計師工作了。這是絕大多數程式設計師發展的必經之路。因為,程式設計師在程式設計序的時候,一方面會實現設計的功能,另一方面 也在對設計有一個理解、認識、熟知的過程。進而慢慢地從學習別人設計,轉向到自己參與或獨立設計。如果這個程式設計師真的非常非常喜歡程式設計師這個職業,則可以 轉向軟體設計師。這個轉變很大程度是程式設計師意識的轉變,就是說要把程式設計的時間,逐步分攤到軟體設計上,要把重點從程式設計實現轉變到專案的功能設計上。我這裡 強調的是“逐步”的一個過程,程式設計師要逐步減少程式設計的時間,增加設計的時間,要克服程式設計的強大吸引力,要主動地攀上設計這個臺階。很難有一個設計師是完全 不程式設計的,而且我認為,會程式設計的設計師才是真正的設計師。一般這種轉變需要花上一到兩年時間。