人
已閱讀
已閱讀
APP開發工程師技術水平的差別
來源:m.bqtao.cn ?? ?? 發布時間:2017-10-18
APP開發工程師、程序員,根據技術水平、工作經驗,大概可以分為下面一些級別:普通開發者、熟練開發者、高級開發工程師、技術組長、技術專家、架構師、一線經理、科學家、首席(資深)架構師、部門研發總監。今天我們就來來討論一下普通開發者如何進階為熟練開發者。

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