更新時間:2017-08-15 來源:黑馬程序員c/c++培訓學院 瀏覽量:
原文:21 ideas for Software Developer
作者:Tim Marinin
看完覺得收獲頗豐,分享給大家!
本文筆者收集了 21 條有關軟件開發的準則和技巧:這些觀點可能互相矛盾,但仔細品味也會發現其不同點,可以對軟件開發者有一定的啟發。記住,它們并不是真理,只是觀點而已。
軟件開發者的工作不是“寫代碼”,而是解決業務問題,“采用的新框架”常常不能解決業務問題。
我們與人一起工作,只是有時候寫代碼而已,所以人際關系是這份工作的重要組成部分。
軟件開發人員也是人,他們和所有人一樣都會受到認知偏差的影響。可以讀讀關于認知偏差、FAE(fundamental attribution error,基本歸因錯誤)、特別是Kahneman 的書。
每一個新框架的出現,是因為前端開發者面臨的問題我們沒有理想的解決方案。每一個成功的新框架都有其創新之處,所以得想想“這個框架/庫如何改變我的工作”這個問題。
軟件開發者不“只是寫代碼”,而是參與開發過程。所以如果公司在使用敏捷(Agile),你必須對其認真對待,最起碼也要對其保有尊重。
代碼評審(Code review)是軟件開發過程的重要組成部分。對代碼評審有所疏忽就不能成為優秀的軟件開發人員。
作為軟件開發者,我們對自己部署的代碼要負責。我們也負有道德上的責任,不要做不道德的事。
用戶也是人。我們的產品和我們的失敗都可能直接影響他們的生活,對你行為的后果要三思。
人與人并不相同,人們的思維方式也不同:有時候我們認為困難的東西從商業人士角度看來可能很容易。這是我們必須解決而不是逃避的矛盾。
對截止時間(deadline)負責。如果在截止時間前完成不了,你必須重新溝通新的截止時間。
任務有兩種復雜性:內部和外部復雜性。內部復雜性不可避免,因為這是任務本身;外部復雜性來自重新架構系統過程中異常決定的后果。要格外注意外部復雜性超過內部復雜性的情況。
如果開發者在寫代碼或架構系統時選擇容易而不是好的解決辦法,他欠下的技術債遲早有一天是要還的。
“別人”寫的代碼幾乎總是無法理解或著寫得很差,但并不總是因為代碼真的寫得不好。有時候這些“別人”就是過去的我們。
有時候在不改變代碼的情況下也能解決問題。
勇于改變需要改變的,接受那些無法改變的,用智慧來分辨其中差異。
有時候對開發人員來說不重要的事情卻有極高的商業價值。商業是一個好的角度,不要逃避它。
很少有公司關心你的個人成長。如果公司對你目前的水平不滿意,他們一開始就不會聘用你。
會議或者聚會的價值在于在場的人,其次是交談內容。
面試都是雙向的,不僅是公司在考察你,也是你考察公司。
我們選擇這份職業是因為我們對其很感興趣,但付我們薪水是因為我們創造了價值。了解一下公司的成本和利潤,看看自己屬于哪一個。
作為自由職業者,花錢請你是因為客戶不具備這些技能:客戶不會告訴你你代碼哪里不好、也不會指出其中錯誤,客戶用自己的方式提出這些意見。