一個程式設計師的技術進階之路

weixin_33912445發表於2017-12-14
1613840-a027a9bdf5271e05.jpg
進階之路

剛剛入職一家IT公司成為一名初級開發工程師,我們如何在技術這條路線上野蠻生長呢。

這條技術進階之路就是一個金字塔形,越往上人越少。

奶爸在IT職場很多年接觸了很多技術大咖,他們的成長路線大概都是以下幾步:

1、規範程式設計,夯實基礎

不管你是計算機專業科班出身,還是半路出家,剛開始寫程式碼都是一張白紙,如果一開始不懂的規範寫程式碼,就會養成不好的習慣,以後很難改。

按照規範格式編寫程式碼,不用格式化工具,自己寫出可讀性極好的程式碼,特別是要養成寫註釋的好習慣,再好的腦子也不如寫上完整得註釋。

一定要記住這句話,別太相信自己都能記住,就算是你自己寫的程式碼,半年後再去看,如果沒有註釋也很難看懂。

另外這個時候要把最基礎的程式設計演算法打牢,如果你用的是JAVA語言,那就要把J2SE核心的類苦弄明白,最常用的演算法多多演練。

紮紮實實走好第一步,基礎打牢了,以後的路更好走。

2、實戰演練,技能擴充

一定要多參與不同的軟體開發專案,不同類的軟體開發專案用到的技術側重不同,這樣能讓你的技術通過專案實戰,更加精進、全面。

分析類的軟體,需要對資料處理和展現的技術要求更高,這時你可能會接觸一些ETL工具,圖表展現工具(比如EChart等)。如果涉及到海量資料處理,你將有機會開始你的大資料開發之路,除了會使用oracel進行關係型資料庫的開發,還要學會使用類似Hadoop這樣的分散式框架進行開發。

流程類軟體,側重流程和表單得配置,這樣你會熟悉JBPM的設計機制,如何基於流程引擎完成開發,如何開發各類表單(單筆、多筆等)。如果涉及到長流程,還會讓你學到依據狀態機實現流程管控、有序流轉的技術。

ESB類的軟體,讓你學會如何進行介面匯流排開發,這時候你會開始接觸各類介面方式,比如webservice,FTP、JMS、rest等,開始學會如何呼叫郵件和簡訊閘道器。

門戶類軟體,讓你學會如何開發統一代辦,如何通過CAS實現單點登入,如何通過門戶實現首頁的定製開發,皮膚定製,不同子系統如何整合等。

第二步,通過實戰,讓你的技術更全面、更精進,要想達到這個目的就不能死磕在一個專案組裡。

3、學會做軟體設計

到這,你要學會進行軟體設計,大到整個系統,小到一個功能模組,你的設計方案將是開發人員進行軟體開發地依據,就像蓋房子,你畫圖紙,程式設計師施工,是不是感覺自己變得有一點牛了。

做一個軟體設計師,還是要懂得基本的設計思想,常見的設計模式要好好研究一下,比如單例模式、工廠模式、策略模式等。其實這些方法論的基礎都是物件導向的程式設計思想,在基礎思想加上一些應用場景,便有了各類設計模式。

一個軟體設計師,最主要的職責就是寫設計文件並指導開發人員按照設計開發。設計文件的核心包含類圖設計、活動圖設計、狀態圖設計、功能設計、效能設計等。

設計師和開發工程師的最大區別是,設計師能依賴軟體架構完成軟體設計,而開發不能。

4、成為一個架構師

到了架構師這個級別就需要對底層軟體模型完成架構設計,包含展示層的封裝、應用層的服務封裝,公共技術元件封裝,比如前面說的流程引擎工具、表單元件、圖表展示元件都需要由架構師完成封裝,形成可複用的元件,提供給開發人員使用。

一般架構師這個級別的人就需要開始深入研究一些開源元件,閱讀核心的開原始碼,比較勤奮的架構師已經開始做自己的開源專案了。

架構師一般是一個團隊中的技術專家,產品研發中遇到的技術難點一般由他來攻克,比如軟體的執行效率問題,軟體的效能問題等。

比較厲害的架構師,還要學會軟硬體整合部署,設計應用和資料庫的負載均衡方案,讓系統更加健壯、更加靈活。

架構師是一個軟體架構的締造者,一個團隊的生產力高低,很大程度上取決於架構師的水平高低。

5、走向CTO

聽起來是個很高大上的職位,能夠走到架構師位置的人已經鳳毛麟角了,要能成為一個企業的CTO更是難上加難。

CTO最重要的工作就是關注行業的技術趨勢,進行技術選型,將比較好用的新技術引入到技術架構體系中。不斷升級現有的技術架構,應付不斷增長和擴充套件的業務。

所以你會看到很多的CTO經常奔走在,各種論壇,峰會,目的就是為了培養敏銳的技術嗅覺,擴充人脈,建立技術合作關係。

走到這裡基本上已到了技術的頂點了,有點高出不勝寒的感覺,回頭看看來時的路,是否會感嘆,無限風光在險峰。

相關文章