人
已閱讀
已閱讀
APP開發(fā)工程師技術水平的差別
來源:lexintech.com ?? ?? 發(fā)布時間:2017-10-18
APP開發(fā)工程師、程序員,根據(jù)技術水平、工作經驗,大概可以分為下面一些級別:普通開發(fā)者、熟練開發(fā)者、高級開發(fā)工程師、技術組長、技術專家、架構師、一線經理、科學家、首席(資深)架構師、部門研發(fā)總監(jiān)。今天我們就來來討論一下普通開發(fā)者如何進階為熟練開發(fā)者。
我們會先定義普通開發(fā)者應該達到的能力水平,然后再介紹他應該在哪方面提升才可能進到下一個階段。
普通開發(fā)者處在第一個成長階段:專項能力提升。
專項能力提升階段是初級階段,你為了搞定事情,必須先具備某些基礎能力,比如某種編程語言(Java / C++ / Python / JavaScript 等)、某個IDE (Visual Studio / Qt Creator / Android Studio / Eclipse / WebStorm 等)、某種技術框架(Netty / Qt / SSH / MyBatis / AngularJS 等)。
這個階段最重要的就是提升專項能力,讓自己能夠迅速搞定一些別人安排給你的事情,體現(xiàn)出你的價值。
在這個階段,最起碼達到下列水準:
能理解并完成別人分解好的葉子任務
能自己完成一個功能模塊的開發(fā)
以前端開發(fā)者為例,在這個階段,你必須能將從 UI 過來的某個頁面原型轉換為可運行、可操作的真實 Web 頁面。比如登錄頁面、比如商品詳情展示頁面,要能做到實現(xiàn)可視化頁面和業(yè)務邏輯跳轉。
以 Android App 開發(fā)者為例,在這個階段,你必須能搞定類似登錄、支付等這類功能。以 App 的登錄功能為例,你要能使用特定的布局和組件實現(xiàn)自適應的登錄界面,還要能學習使用類似微信、微博等第三方賬戶的 SDK ,實現(xiàn)第三方賬戶登錄。
你可能很難自己設計一套完整的登錄功能(包含口令加密、單點登錄、Cookie 使用、驗證碼、密碼找回、第三方登錄、多終端同步、角色鑒權、用戶數(shù)據(jù)存儲等),但是當熟練開發(fā)者或者高級開發(fā)者完成了設計,把某個小功能分配給你的時候,你要能夠理解這個設計,并將這個設計實現(xiàn)出來,和整個登錄系統(tǒng)整合在一起,能夠正常運轉。
當你能夠搞定這些事情的時候,你的專項技術水平起碼是這樣的:
能熟練搭建需要的開發(fā)和測試環(huán)境
熟悉所用編程語言的基礎語法,有這門語言的知識地圖,熟悉該語言本身的各種基礎功能,了解這門語言的高級功能
能調用已有技術框架的 API 來實現(xiàn)特定功能
能在實現(xiàn)同一功能的多組 API 之間選擇合適的那一組
能熟練使用開發(fā)環(huán)境和各種輔助工具進行調試
可以解決易復現(xiàn)的、邏輯簡單的軟件 Bug
能自主學習某個新框架的基礎 API ,參考 DEMO 完成某個功能的基本實現(xiàn)
我的總結可能不完善或存在 Bug ,請大家在留言區(qū)指正、補充。
要想進階,就要先在專項技術能力上達到我們前面所列清單描述的水平(那是基礎要求),然后再對照熟練開發(fā)者的能力要求,有針對性的去學習提高,穩(wěn)步進入下個階段。
普通開發(fā)者因為不斷完成任務,不斷做項目,接觸、使用了各種各樣的“知識點”,于是擁有了各種離散的知識,但這個知識和那個知識很少關聯(lián),他擁有的知識,是散兵游勇。
當你的知識點各不關聯(lián)時,你在遇到問題時,就很難進行系統(tǒng)思考,就很難獲得解決辦法。
而熟練開發(fā)者,則(被動或主動)經歷了知識點的梳理、整合過程,把零散的知識點圍繞著某個應用場景聯(lián)系起來,形成了知識體系。
當你有了知識體系之后,遇到和你知識體系對應的場景相關的問題,就可以快速找到相關的知識,系統(tǒng)的分析問題,最終解決問題。
所以說,是否擁有知識體系,導致了熟練開發(fā)者和普通開發(fā)者的一個非常重要的區(qū)別:熟練開發(fā)者能夠獨立負責一個模塊或子系統(tǒng)的設計和開發(fā)工作,擁有分析問題、解決問題的能力和任務分解的能力,可以分配任務給普通開發(fā)者。
從技術水平的角度講,普通開發(fā)者和熟練開發(fā)者的區(qū)別就在于:普通開發(fā)者的知識不成體系,而熟練開發(fā)者構建了與某個應用場景相關的知識體系。這樣看來,普通開發(fā)者要想進階,方向就非常明確了,一句話總結:構建自己的知識體系。