一個程式設計師的技術進階之路
剛剛入職一家IT公司成為一名初級開發工程師,我們如何在技術這條路線上野蠻生長呢。
這條技術進階之路就是一個金字塔形,越往上人越少。
奶爸在IT職場很多年接觸了很多技術大咖,他們的成長路線大概都是以下幾步:
1、規範程式設計,夯實基礎
不管你是計算機專業科班出身,還是半路出家,剛開始寫程式碼都是一張白紙,如果一開始不懂的規範寫程式碼,就會養成不好的習慣,以後很難改。
按照規範格式編寫程式碼,不用格式化工具,自己寫出可讀性極好的程式碼,特別是要養成寫註釋的好習慣,再好的腦子也不如寫上完整得註釋。
一定要記住這句話,別太相信自己都能記住,就算是你自己寫的程式碼,半年後再去看,如果沒有註釋也很難看懂。
另外這個時候要把最基礎的程式設計演算法打牢,如果你用的是JAVA語言,那就要把J2SE核心的類苦弄明白,最常用的演算法多多演練。
紮紮實實走好第一步,基礎打牢了,以後的路更好走。
2、實戰演練,技能擴充
一定要多參與不同的軟體開發專案,不同類的軟體開發專案用到的技術側重不同,這樣能讓你的技術通過專案實戰,更加精進、全面。
分析類的軟體,需要對資料處理和展現的技術要求更高,這時你可能會接觸一些ETL工具,圖表展現工具(比如EChart等)。如果涉及到海量資料處理,你將有機會開始你的大資料開發之路,除了會使用oracel進行關係型資料庫的開發,還要學會使用類似Hadoop這樣的分散式框架進行開發。
流程類軟體,側重流程和表單得配置,這樣你會熟悉JBPM的設計機制,如何基於流程引擎完成開發,如何開發各類表單(單筆、多筆等)。如果涉及到長流程,還會讓你學到依據狀態機實現流程管控、有序流轉的技術。
ESB類的軟體,讓你學會如何進行介面匯流排開發,這時候你會開始接觸各類介面方式,比如webservice,FTP、JMS、rest等,開始學會如何呼叫郵件和簡訊閘道器。
門戶類軟體,讓你學會如何開發統一代辦,如何通過CAS實現單點登入,如何通過門戶實現首頁的定製開發,皮膚定製,不同子系統如何整合等。
第二步,通過實戰,讓你的技術更全面、更精進,要想達到這個目的就不能死磕在一個專案組裡。
3、學會做軟體設計
到這,你要學會進行軟體設計,大到整個系統,小到一個功能模組,你的設計方案將是開發人員進行軟體開發地依據,就像蓋房子,你畫圖紙,程式設計師施工,是不是感覺自己變得有一點牛了。
做一個軟體設計師,還是要懂得基本的設計思想,常見的設計模式要好好研究一下,比如單例模式、工廠模式、策略模式等。其實這些方法論的基礎都是物件導向的程式設計思想,在基礎思想加上一些應用場景,便有了各類設計模式。
一個軟體設計師,最主要的職責就是寫設計文件並指導開發人員按照設計開發。設計文件的核心包含類圖設計、活動圖設計、狀態圖設計、功能設計、效能設計等。
設計師和開發工程師的最大區別是,設計師能依賴軟體架構完成軟體設計,而開發不能。
4、成為一個架構師
到了架構師這個級別就需要對底層軟體模型完成架構設計,包含展示層的封裝、應用層的服務封裝,公共技術元件封裝,比如前面說的流程引擎工具、表單元件、圖表展示元件都需要由架構師完成封裝,形成可複用的元件,提供給開發人員使用。
一般架構師這個級別的人就需要開始深入研究一些開源元件,閱讀核心的開原始碼,比較勤奮的架構師已經開始做自己的開源專案了。
架構師一般是一個團隊中的技術專家,產品研發中遇到的技術難點一般由他來攻克,比如軟體的執行效率問題,軟體的效能問題等。
比較厲害的架構師,還要學會軟硬體整合部署,設計應用和資料庫的負載均衡方案,讓系統更加健壯、更加靈活。
架構師是一個軟體架構的締造者,一個團隊的生產力高低,很大程度上取決於架構師的水平高低。
5、走向CTO
聽起來是個很高大上的職位,能夠走到架構師位置的人已經鳳毛麟角了,要能成為一個企業的CTO更是難上加難。
CTO最重要的工作就是關注行業的技術趨勢,進行技術選型,將比較好用的新技術引入到技術架構體系中。不斷升級現有的技術架構,應付不斷增長和擴充套件的業務。
所以你會看到很多的CTO經常奔走在,各種論壇,峰會,目的就是為了培養敏銳的技術嗅覺,擴充人脈,建立技術合作關係。
走到這裡基本上已到了技術的頂點了,有點高出不勝寒的感覺,回頭看看來時的路,是否會感嘆,無限風光在險峰。
相關文章
- 程式設計師的進階之路程式設計師
- 程式設計師技術進階手冊(一)程式設計師
- 程式設計師進階之路—如何獨當一面程式設計師
- 圖解|搞定分散式?程式設計師進階之路圖解分散式程式設計師
- 從需求出發:專業程式設計師進階之路程式設計師
- Java進階之路——從初級程式設計師到架構師Java程式設計師架構
- 我的書單 一個進階的Android程式設計師Android程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- java程式設計師進階:Redis分散式技術問題集錦Java程式設計師Redis分散式
- 【同行說技術】Java程式設計師進階資料彙總(二)Java程式設計師
- 一名程式設計師十年技術之路的思考與感悟程式設計師
- 程式設計師進階之路之面試題與筆試題集錦(一)程式設計師面試題筆試
- 一個“老”程式設計師的技術及非技術個人回顧 (轉)程式設計師
- 【子衿技術】DBA進階之路
- 程式設計師的“非程式設計師”之路程式設計師
- 一個JAVA程式設計師成長之路分享Java程式設計師
- 10年資深架構師分享 | 普通程式設計師向架構師進階之路架構程式設計師
- 程式設計師的技術遺產程式設計師
- 程式設計師進階之路之面試題與筆試題集錦(三)線上程式設計題程式設計師面試題筆試
- 一枚程式設計師的跑步之路程式設計師
- 高階Bash指令碼程式設計指南 一個對指令碼程式設計技術的深入探討指令碼程式設計
- 技術總監7年總結——程式設計師進階高管的三次躍升程式設計師
- 程式設計師的macOS系列:高效Alfred進階程式設計師MacAlfred
- OpenCV進階之路:一個簡化的視訊摘要程式OpenCV
- 我的程式設計師之路程式設計師
- 一個技術大牛對程式設計師招聘的吐槽和建議程式設計師
- 一、(基礎知識)一個前端程式設計師的java小白之路前端程式設計師Java
- 程式設計師如何讓自己的技術能力突飛猛進?程式設計師
- 【API進階之路6】一個技術盲點,差點讓整個專案翻車API
- 一個網頁設計師的創業之路網頁創業
- 一個程式設計師的成長的六個階段(轉帖)程式設計師
- 改變程式設計師開發方式的15個技術程式設計師
- 程式設計師常犯的 5 個非技術性錯誤程式設計師
- 一個程式設計師的北漂之路——充滿多少淚和水程式設計師
- 一個程式設計師的Java和C++學習之路(整理)程式設計師JavaC++
- 一個四年 Android 程式設計師的入坑之路Android程式設計師
- 程式設計師技術入股的那些坑程式設計師
- Java外包程式設計師的技術出路Java程式設計師