更新時(shí)間:2017-08-15 來(lái)源:黑馬程序員c/c++培訓(xùn)學(xué)院 瀏覽量:
原文:21 ideas for Software Developer
作者:Tim Marinin
看完覺得收獲頗豐,分享給大家!
本文筆者收集了 21 條有關(guān)軟件開發(fā)的準(zhǔn)則和技巧:這些觀點(diǎn)可能互相矛盾,但仔細(xì)品味也會(huì)發(fā)現(xiàn)其不同點(diǎn),可以對(duì)軟件開發(fā)者有一定的啟發(fā)。記住,它們并不是真理,只是觀點(diǎn)而已。
軟件開發(fā)者的工作不是“寫代碼”,而是解決業(yè)務(wù)問題,“采用的新框架”常常不能解決業(yè)務(wù)問題。
我們與人一起工作,只是有時(shí)候?qū)懘a而已,所以人際關(guān)系是這份工作的重要組成部分。
軟件開發(fā)人員也是人,他們和所有人一樣都會(huì)受到認(rèn)知偏差的影響??梢宰x讀關(guān)于認(rèn)知偏差、FAE(fundamental attribution error,基本歸因錯(cuò)誤)、特別是Kahneman 的書。
每一個(gè)新框架的出現(xiàn),是因?yàn)榍岸碎_發(fā)者面臨的問題我們沒有理想的解決方案。每一個(gè)成功的新框架都有其創(chuàng)新之處,所以得想想“這個(gè)框架/庫(kù)如何改變我的工作”這個(gè)問題。
軟件開發(fā)者不“只是寫代碼”,而是參與開發(fā)過(guò)程。所以如果公司在使用敏捷(Agile),你必須對(duì)其認(rèn)真對(duì)待,最起碼也要對(duì)其保有尊重。
代碼評(píng)審(Code review)是軟件開發(fā)過(guò)程的重要組成部分。對(duì)代碼評(píng)審有所疏忽就不能成為優(yōu)秀的軟件開發(fā)人員。
作為軟件開發(fā)者,我們對(duì)自己部署的代碼要負(fù)責(zé)。我們也負(fù)有道德上的責(zé)任,不要做不道德的事。
用戶也是人。我們的產(chǎn)品和我們的失敗都可能直接影響他們的生活,對(duì)你行為的后果要三思。
人與人并不相同,人們的思維方式也不同:有時(shí)候我們認(rèn)為困難的東西從商業(yè)人士角度看來(lái)可能很容易。這是我們必須解決而不是逃避的矛盾。
對(duì)截止時(shí)間(deadline)負(fù)責(zé)。如果在截止時(shí)間前完成不了,你必須重新溝通新的截止時(shí)間。
任務(wù)有兩種復(fù)雜性:內(nèi)部和外部復(fù)雜性。內(nèi)部復(fù)雜性不可避免,因?yàn)檫@是任務(wù)本身;外部復(fù)雜性來(lái)自重新架構(gòu)系統(tǒng)過(guò)程中異常決定的后果。要格外注意外部復(fù)雜性超過(guò)內(nèi)部復(fù)雜性的情況。
如果開發(fā)者在寫代碼或架構(gòu)系統(tǒng)時(shí)選擇容易而不是好的解決辦法,他欠下的技術(shù)債遲早有一天是要還的。
“別人”寫的代碼幾乎總是無(wú)法理解或著寫得很差,但并不總是因?yàn)榇a真的寫得不好。有時(shí)候這些“別人”就是過(guò)去的我們。
有時(shí)候在不改變代碼的情況下也能解決問題。
勇于改變需要改變的,接受那些無(wú)法改變的,用智慧來(lái)分辨其中差異。
有時(shí)候?qū)﹂_發(fā)人員來(lái)說(shuō)不重要的事情卻有極高的商業(yè)價(jià)值。商業(yè)是一個(gè)好的角度,不要逃避它。
很少有公司關(guān)心你的個(gè)人成長(zhǎng)。如果公司對(duì)你目前的水平不滿意,他們一開始就不會(huì)聘用你。
會(huì)議或者聚會(huì)的價(jià)值在于在場(chǎng)的人,其次是交談內(nèi)容。
面試都是雙向的,不僅是公司在考察你,也是你考察公司。
我們選擇這份職業(yè)是因?yàn)槲覀儗?duì)其很感興趣,但付我們薪水是因?yàn)槲覀儎?chuàng)造了價(jià)值。了解一下公司的成本和利潤(rùn),看看自己屬于哪一個(gè)。
作為自由職業(yè)者,花錢請(qǐng)你是因?yàn)榭蛻舨痪邆溥@些技能:客戶不會(huì)告訴你你代碼哪里不好、也不會(huì)指出其中錯(cuò)誤,客戶用自己的方式提出這些意見。
c/c++培訓(xùn)C++拷貝構(gòu)造函數(shù)(深拷貝,淺拷貝)
2017-07-22C/c++培訓(xùn)之Linux系統(tǒng)動(dòng)態(tài)庫(kù)加載過(guò)程分析
2017-07-02C/c++培訓(xùn)QSignalMapper的使用
2017-07-02C/c++培訓(xùn)之MFC-修改窗口的光標(biāo) 圖標(biāo) 背景
2017-07-02Android+物聯(lián)網(wǎng)培訓(xùn)實(shí)戰(zhàn)教程之Android下service詳解
2017-05-31c++培訓(xùn)之Linux系統(tǒng)常用命令
2017-04-14