老實說,如果你google搜索“程序員的好習慣”這方面的內容,那么就會有很多大同小異的文章映入你的眼簾。更擅長編程肯定能讓程序員賺更多的錢。但這方面的提高可能最終會受到邊際報酬遞減的影響。藍鷗資深講師列出了一些實踐方法,在程序員要求加薪或尋求新工作的時候,搞不好會讓收益產生巨大的爆炸。他們是:
1. 編寫可讀性強的代碼
企業總是希望程序員能夠編寫干凈、可維護的代碼。他們需要刷掉不合格的人以滿足業務需求。你需要編寫能夠使其他人受益的代碼,并讓業務靈活起來,無論是在項目人員配置上還是在對代碼進行更改的時候。
2. 推理不快樂路徑
在編程世界中,所謂的“快樂路徑”提出了一種高度樂觀的情景。沿著快樂路徑行進,沒有出錯的地方,也沒有錯誤發生。
很多時候,程序員在編程中犯錯誤卻反而發現了快樂路徑。比如說,他們實現一個用戶登錄頁面,當用戶鍵入正確的用戶名和密碼時,登錄成功。但是,如果她輸入錯誤的話,app就會崩潰。但如果她有一個沒填的話,那么app就會將其作為管理員登錄。
不能說明不快樂路徑的場景是程序員面臨的一個常見陷阱。事實上,之所以會產生這樣的思維是因為我們在軟件開發的過程中嵌入了自己的假設。于是就算是寫代碼的同一個人也無法來測試代碼。
在編寫和測試代碼時,學會廣泛地去推理不快樂路徑的場景。如果作為開發者的你能夠因為在推理不快樂路徑方面一次成功而出名,那么你對細節的注重將為你賺到更多的酬勞。
3. 創建自動測試
也許你一直堅持反對軟件行業自動化測試的安裝驗收。也許你甚至能編寫比那些TDD和ATDD程序員更好的代碼。在某種意義上,兩者之間真的沒有關系。
但是,大家對于職業生涯中關于功用是否應該排在錢包后面的討論,各執一詞。抵制者還是支持者是否正確變得無關緊要。企業越來越多地要求這種技能出現在求職者的簡歷上,但卻沒有一家公司的職位說明上會寫“絕不能編寫單元測試”。學會寫自動化測試,然后見證工作前景的蓬勃發展。
4. 證明你的抉擇
為什么你要在這里使用工廠模式?為什么你選擇那個特定的Javascript框架?如果你在回答這類問題時使用“因為這是正確方法”諸如此類的答案,那么就不會給你帶來任何好處。
這個世界在很大程度上依賴于軟件和軟件開發者的傳遞性。我們擁有經常使我們處于權威地位的專業知識,特別是在與非技術人員或不太有經驗的利益相關者打交道的時候。因此,你會發現,你經常采取的是那種大家嘗試的做法,“我說怎么做就怎么做”。
抵制這樣做的沖動。至少,要解釋你的推理。使用類比和其他方式來幫助人們理解,即使他們缺乏你擁有的技術經驗。最重要的是,學習從經驗出發去做案例,同時借鑒研究、實驗數據或專家意見。職業生涯需要在技術的氛圍中才能發展,所以那些學習將編程決策證明也是商業決策的人會發現他們占據了領導地位。
5. 了解你的代碼如何讓別人賺錢
說到業務對你自己的錢包的重要性,那么你能描述你寫的某一行給定代碼是如何幫助業務嗎?你剛添加的用于停止SQL注入的代碼行——是幫助你避免砸自己的招牌嗎?避免被訴訟嗎?如果它實際上并不能提供任何幫助,那怎么辦?
如果有人付錢讓你寫軟件,那么你的輸出結果就應該產出經濟效益。學習并了解這個利益關系。發展向任何人解答這方面內容的能力。
對最新的客戶端技術或在云中進行加速的能力感到興奮的開發人員比比皆是。對這些東西感到興奮,并且了解如何使用這些能力來賺錢的開發者就少見的多了。
如果你能針對產品特征好好培養對業務動機的理解,那么你就能做得更好。你會找到既能節省時間又同樣能實現業務目標的替代方法。或者,當有一個產品特征證明不可能實現時,你可以提出能降低一部分成本的建議。
企業(特別是真正支付薪水的大boss)喜歡這種軟件人的思維。這將意味著你可以晉升,提供咨詢服務以及擔任領導角色。
6. 對職業的思考
擅長編程代表了職業生涯的其中一個方面,并且是一個重要的方面。建議大家多考慮許多其他的方面,并且有目的地去發展和培養那些習慣。在你自己的時間里,你應該通過一切手段,愛上這個職業。當然還要確保你可以為他人和為自己賺到錢。
既然程序開發這個行業的前景如此嗎好,你有想加入的想法嗎?
藍鷗IT教育培訓采用獨有的雙師授課的授課方式,授課老師VCR講解+技術講師輔導實時練習。優勢是確保最好的老師把技術講解透徹,同時立即進入練習,技術老師再次講解及輔導,立即吸收消化知識點。進度技術講師可以根據學員吸收情況控制,確保學習效果。擴充知識點,翻轉課堂,學員深度參與其中。培養學習方法,形成學習習慣。IT技術日新月異,通過藍鷗的學習掌握最精湛的Java知識,掌握正確的學習方法才能在未來的工作中立于不敗之地。