你是否還一直保持著對編程的熱愛?每一段通過測試的代碼都能給你愉悅的成就感;每當接觸到一個嶄新的前沿框架你都感到興奮并躍躍欲試……如果你仍一如既往的保持著這份激情,那么軟件開發(fā)這項工作真的對你再適合不過了。
但是,你是否考慮過在5年、10年、15年以后的職業(yè)規(guī)劃呢?你還要繼續(xù)寫代碼么?如果你之前沒有考慮過這個問題,那么這篇文章可以給你很好的建議,它將指導你發(fā)現(xiàn)軟件開發(fā)人員可能經歷的職業(yè)發(fā)展之路。
關于職業(yè)發(fā)展之路
眾所周知,程序員可以發(fā)展為架構師、團隊管理者或者企業(yè)領導等。但是大多數(shù)人對于這些職位的經驗技術要求和需要的時間等還知之甚少。比如,許多人都知道一些關于manager的日常工作,但是除了發(fā)送郵件和召開一個又一個會議之外的工作你又知道多少呢?中級管理層的manager與高級管理層的leader又有什么區(qū)別呢?
初級程序員
●0-3年的開發(fā)經驗(畢業(yè)生居多)
●對應用程序的生命周期基本了解
●能夠編寫簡單的代碼和腳本
●需要得到密切關注和幫助
●對于復雜應用程序的各個層面都不熟悉
作為一個年輕的充滿激情和熱情的初級軟件開發(fā)者,他們努力把自己的工作做到最好。對于所有一切他們都感到好奇,他們嘗試著學習所有全新的東西——包括方法、范例、程序語言、設計模式以及技術等。在學習期間,他們還使用不同的語言實現(xiàn)一些應用程序,當然,這些程序都是最初級的。
雖然在獲取新知識方面進展神速,但是他們沒有足夠多的代碼編寫經驗,而且缺少高級資深程序員的智慧和技巧。在編程方面,初級軟件開發(fā)者閱讀大量的文章和書籍,并進行模仿訓練。每個初級軟件開發(fā)者都有這樣的經歷:開始寫一些很差的代碼,然后調試出許多愚蠢的錯誤,當問題很久都無法解決的時候又重新開始。但即使是這樣,也無法深刻的理解模仿的價值和最佳實踐的方式,畢竟這是處于開發(fā)者的初學階段。
高級程序員
●4-10年的開發(fā)經驗
●能夠編寫復雜的代碼以及整個應用程序
●對整個應用程序的生命周期有較深刻的理解
●不需要別人提供幫助,通過使用搜索引擎解決大部分問題
在經歷了數(shù)以萬計次的代碼編譯、警告、錯誤的洗禮后,他們能夠完全通過自己獲取的知識來開展自己的工作了。他們不需要指導和監(jiān)督,只需使用Stackoverflow、google、baidu等網絡資源他們就能解決幾乎所有問題。除了專注于解決問題,他們對于代碼的質量和算法的合理性也非常關注。在多次面對類似問題的時候,他們使用自己收集和編寫的可重用代碼庫來節(jié)省時間,提高效率。當他們能夠在項目或者公司獨當一面的時候,他們希望能有更好的發(fā)展前途。
架構師/團隊管理/程序管理
●7-10年的開發(fā)經驗
●至少與高級程序員的編程技術相當
●架構師:具有對不同編程技術的廣泛知識和見地,這個職位并不是只對一門語言和技術精通就能勝任的。
●開發(fā)管理:除了深厚的專業(yè)知識,還需要掌握管理學、“軟”技能(含口才、文筆等)以及了解業(yè)務領域。
有一些軟件開發(fā)人員在經過幾年的編程后對這項工作漸漸厭倦了,這一步就是程序員職業(yè)過渡的開始。但是最終向什么方向發(fā)展,這取決于程序員自己。那些性格外向,有良好表達能力和軟技能的人會考慮管理的角色。作為一個團隊的領導者,他們將專注于項目管理,確保目標的達成情況,安排成員的工作任務以及調動團隊的工作熱情。他們會花大部分的時間在會議上來規(guī)劃接下來的工作計劃和未來的目標,以確保一切都能走上正軌。
如果在經過6年以上的編程工作后,你確定管理工作并不是你喜歡的職業(yè),那么成為架構師將是你使用專業(yè)技術邁向下一步的成功階梯。擁有對不同領域的標準、性能、語法等廣博知識的高級程序員能夠勝任架構師這個職位。
作為架構師,打字編寫代碼已經不是他們的主要工作了,他們的主要工作是設計整個系統(tǒng)/應用程序,與其他架構師討論整個拓撲和高級體系結構,定義標準和策略。架構師關注整體結構更甚于技術細節(jié),通常高級程序員會向他們提一些準則和需求,一旦確定了新的需求,架構師會很快知道如何使用正確的方法來設計和測量所有不同類型的應用程序。
中層管理者
●通常有一些頭銜如總監(jiān)/經理(產品經理、項目經理、開發(fā)經理)
●負責雇傭/解雇人員
●向高級管理層作報告
經理有多種不同類型。對于細節(jié)和工作流的跟蹤著迷的軟件開發(fā)人員適合于做項目經理;重視產品版本新特性的視覺感受和應用程序用戶體驗的軟件開發(fā)人員適合于做產品經理;另外還有最常見的職位開發(fā)經理,它的工作是負責協(xié)調管理整個團隊及團隊成員的需求。它還有另外一個職責就是按照開發(fā)的需求來雇傭相關人員,當然如果某人無法勝任某個工作,他也會對其進行解雇。這就意味著開發(fā)經理通常很難和團隊成員做朋友了,但是如果你能帶領的你的團隊獲得成功,那么你會得到很大的回報和所有人的尊重。
高級領導
●VP, CTO或者CEO
●負責任命/招聘/解雇中層管理人員
●向董事會/股東作報告
雖然一個公司的決策者只能有一個,但是許多公司會每隔幾年更換一些新鮮空氣——招聘一些有豐富經驗的人員進入高級管理層。他們中的一些人會傳播一些其它企業(yè)先進的管理經驗或市場經驗,而另外一些人可能在同一家大公司服務超過了20年。
關于我們
企業(yè)信息咨詢