外界對程序員的印象就是坐在電腦前面寫程序。甚至有人問過我“真的有那么多程序要寫嗎”這樣的話。總體來說,大多數做程序員的都是幫著公司開發(fā)一個產品。這個產品按平臺分的話可以是一個網站,可以是一個手機APP,可以是傳統的桌面程序,也可以是嵌入式系統的軟件部分等等等等。但不管是什么,所有產品開發(fā)都要經過以下主要流程:
產品設計 -> 技術構架 -> 進度計劃 -> 產品開發(fā) -> 產品測試 -> 運行與維護
而程序員,特別是經驗豐富的程序員幾乎會參與到每一個步驟中。所以很多程序員既要會寫文檔會畫流程圖,還要會和客戶打交道。
1、產品設計
根據市場或者特定客戶確定這個產品應該滿足哪些需求,然后轉化為一個明確的需求文檔。有了這個文檔,程序員才知道要開發(fā)什么,怎么樣才算開發(fā)完成,交付檢測的時候也才有依據。
雖然編寫需求文檔不是程序員的工作,但是資深的程序員在這個過程中要給出很多建議,特別是在開發(fā)復雜度上。有些開發(fā)難度太大、用時需要很久的功能和需求會被去掉。毫無疑問,開發(fā)復雜度的估算對于在較短時間內交付一個擁有較佳用戶體驗的產品至關重要,而這些是需要豐富經驗積累的。
所以程序員收入包括了這部分經驗值的錢。
2、技術架構
接下來就要根據需求文檔設計整個系統。簡單來說就是根據產品特性,選擇合適的技術解決方案。這又是一個需要豐富開發(fā)經驗才能完成的活兒。
往往即使一個簡單的前端加后端的應用,也是由十幾個子系統構成的。而每個子系統都有幾種甚至十幾種技術可以選擇,系統之間的數據傳遞模式又有很多選擇,還有開發(fā)工具又有很多選擇。
比如前端框架選什么,load balancer選什么,服務器選什么,數據庫選什么,開發(fā)語言用什么,repository選什么,API的訪問流程是什么等等等等。這些隨便舉的其實都是很基本的東西了,其實很多更實際也更復雜的問題也需要考慮,比如安全性上的,比如系統升級會造成的影響等等。
這個過程中需要寫很多文檔,記錄每種技術stack的優(yōu)劣,畫很多的系統示意圖和流程圖,要和不懂技術的管理和設計人員溝通。
所以程序員收入包括了這部分知識值的錢。
3、進度計劃
這部分一般也有專門的項目經理負責,但和產品設計類似,程序員一樣要給出很多的建議。這個時候一般技術構架已經完成,可以給出更為的開發(fā)周期的預估。但畢竟是預估,還是需要豐富的經驗才能做到盡量準確。這個進度計劃是否靠譜、有多重要就不用贅述。
4、產品開發(fā)
這個步驟才是大多數人對程序員的印象。但即使是開發(fā),也不是簡單的坐在屏幕前敲敲代碼。現在主流的Agile開發(fā),每天要開早會匯報進度,每個兩個星期(或者別的周期)都要開會確定下個周期的具體開發(fā)任務,評估開發(fā)任務的工作量,并分配開發(fā)任務。
開發(fā)的時候也是經常碰到技術問題需要和別的開發(fā)人員討論,需要和設計人員、管理人員、項目進度人員保持溝通。每個月一般還需要做個成果演示讓管理層清楚進度。然后在開發(fā)過程中經常會要用到新的技術,所以也經常需要花時間去學習補充。
5、產品測試
傳統的軟件開發(fā)經常有專門的測試人員,但現在互聯網企業(yè)越來越多的DevOps,就是一個人做了以前的開發(fā),測試和運維三個人的活(好吧,其實是一種變相剝削,因為雖然工資高了但也沒有三個人加起來的工資高)。
測試也是要寫很多代碼的,因為現在都是自動化測試。然后測試也是要寫很多文檔的,所謂test cases,基本上和需求文檔是對應的,就是一個checklist,看看是不是需求都開發(fā)出來了且達到標準了。所以你看,程序員除了會寫電腦語言也還是經常要寫人話的。
6、運行與維護
Again, 本來有專職人員做的事,很多程序員現在也得做。這部分包括寫一些腳本或者用軟件收集系統數據,各種系統日志,然后生成一個有各種圖表的控制面板,方便查看系統運行狀態(tài),還要設置各種超出合理范圍值就會觸發(fā)的警報,這種警報往往和手機甚至BP機相連,就算是夜里也會把人給鬧醒,然后就得爬起來解決問題。
所以程序員收入也包括這部分辛苦錢。
如此幾何式高速發(fā)展的IT產業(yè),人才根本就跟不上,供需關系決定了IT行業(yè)的工資只會越來越高。當然,這是對于跟得上IT發(fā)展腳步的人才來說的。
IT是一個必須不停地學新技術的行業(yè),因為發(fā)展地太快?,F在較主流開發(fā)框架,各種云端的技術,新的編程語言,老的編程語言的新特性,各種輔助開發(fā)和部署的工具,各種運維的工具等等等等沒有一個是10年前就出現的,很多都才出現了五年,但已經取代了更老的技術。
所以能在IT行業(yè)干了八年十年還沒被淘汰的,至少都是很努力的人,和很多在傳統行業(yè)里幾十年都吃著@里學的那一點東西的老本的人相比,他們配得上這份工資。
碼上未來大連校區(qū)介紹
碼上未來服務于好IT開發(fā)人才的培養(yǎng),教學大綱緊跟企業(yè)實際需求,保證課程內容緊隨IT互聯網發(fā)展步伐,課程包含:H5前端開發(fā)、Java微服務開發(fā)、互聯網全棧開發(fā)、Python+人工智能、前端與移動開發(fā)、C/C++、全鏈路UI/UE設計、云計算、智能物聯網、Unity游戲開發(fā)等全棧開發(fā)學習內容、旨在通過立體化的人才培養(yǎng)、為企業(yè)輸送能夠創(chuàng)造價值和帶來效益的IT職業(yè)精英。
碼上未來始終秉承“立足精英時代,培養(yǎng)時代精英”的使命,以技術視角關注IT產業(yè)發(fā)展,以深度分享推進產業(yè)技術成長,致力于引領中國IT人才實踐教學模式,努力打造高質量值得信賴的IT人才服務平臺。
預約申請試學5天互聯網全棧開發(fā)課程(含H5前端開發(fā)、Java微服務開發(fā))!
直接撥打即可預約申請試學!
怕錢不夠?
可分期付款學費!
怕沒時間?
就業(yè)班、業(yè)余班兩種班型任你選擇!
怕學不會?
教學采用全程面授高品質、高體驗培養(yǎng)模式,特別重視學員實踐能力的培養(yǎng),根據個人學習計劃提供視頻、圖文、答疑、一對一作業(yè)批改等服務,旨在讓零基礎學員輕松入門。
擔心就業(yè)?
依托眾多合作企業(yè)資源,讓學員畢業(yè)就能贏得高薪和名企。
碼上未來,成就你更好的未來!