一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何成為強(qiáng)大的程序員?

  Aaron Stannard 是新創(chuàng)公司 MarkedUp 的CEO,他最近花費(fèi)大量時(shí)間雇傭、評估很多不同的程序員,并和他們一起協(xié)作。在這個(gè)過程中他發(fā)現(xiàn)并總結(jié)了十種程序員無法意識到自己潛力的原因,意在讓更多程序員發(fā)掘出自己的潛力,從而成為強(qiáng)大的程序員。

  Aaron 提到,他的公司中所使用的技術(shù)非常復(fù)雜,某些大型企業(yè)都很難掌握,所以對于想要加入團(tuán)隊(duì)的程序員來說,入門門檻非常高。因此,盡管他們非常仔細(xì)地雇傭新人,但還是很難找到足夠天才的程序員。于是,他總結(jié)出十種阻礙程序員職業(yè)生涯發(fā)展的行為,并據(jù)此來幫助想要提升自身的平凡的程序員們。

  1. 太害怕學(xué)不會新的工具、語言和框架

  一般的程序員會墨守他們最喜歡的工具,而不希望學(xué)習(xí)新的,因?yàn)樗麄冋J(rèn)為,離開了那些語言和工具,多年的經(jīng)驗(yàn)就會付諸東流。而強(qiáng)大的程序員會擁抱那些挑戰(zhàn)和機(jī)會,積極地學(xué)習(xí)新的工作方式。

  2. 直到特性“完成”的時(shí)候才會提交。(但永遠(yuǎn)都不會完成!)

  他在 MarkedUp 公司中把這種行為叫做“囤積提交(commit hoarding)”。有些程序員沒有足夠的信心來承受團(tuán)隊(duì)中其他成員的批評和審查,因此會把自己的工作藏起來,直到“完成”狀態(tài)才提交。

  這種開發(fā)者會損害團(tuán)隊(duì)中其他人員的生產(chǎn)力,因?yàn)閳F(tuán)隊(duì)看不到他每天的成果,而且他也不會在正常開發(fā)的過程中尋求幫助,這樣就會造成很多“最后一分鐘”的缺陷,從而讓交付延遲。而強(qiáng)大的程序員會知道,代碼并不是他們自己,因此會把代碼經(jīng)常自信地呈現(xiàn)在其他團(tuán)隊(duì)成員的眼前,獲得批評和建議。

  3. 只是“知其然”會很危險(xiǎn)

  在這里 Aaron 舉了微軟最近在 C# 5.0中引入的async和await關(guān)鍵字 為例,這兩個(gè)關(guān)鍵字會讓創(chuàng)建和管理異步調(diào)用變得很容易,但是也會造成上下文切換、對共享資源進(jìn)行多線程訪問的成本,僅僅對此有基本了解的程序員會盲目地使用這些特性,把所有I/O調(diào)用都封裝成C#中的Task對象,這會創(chuàng)建出危險(xiǎn)的、不可預(yù)測的而且非常難以測試的代碼。

  好的開發(fā)者不僅“知其然”,而且會了解為什么這么做以及應(yīng)該在什么樣的條件下使用。

  4. 分析癱瘓(Analysis paralysis)

  分析癱瘓是指在程序開發(fā)初期進(jìn)行系統(tǒng)分析,常因?yàn)樘^執(zhí)著于控制所有可能的變化和意外,而造成大量時(shí)間的浪費(fèi),裹足不前。這是一種很經(jīng)典的問題,會影響很多一般的程序員。它通常是由過度分析造成的,但是 Aaron 認(rèn)為其根本原因在于不敢做出壞的決定。一般的程序員會擔(dān)心犯錯,只想一次成功。

  而強(qiáng)大的程序員不會害怕,他們會編寫很爛的代碼,對其進(jìn)行單元測試,如果認(rèn)為無法達(dá)到目的,就會在45分鐘之內(nèi)把它拋棄。強(qiáng)大的程序員會積極地限制用來研究的時(shí)間,因?yàn)樗麄冎滥鞘莻€(gè)陷阱——看起來是有效的,但經(jīng)常都無效。

  5. 沒有對工具和開發(fā)過程投入

  如果你想要成為天才程序員,那么就需要投入時(shí)間提升技能和知識,而將你和普通的代碼工人區(qū)分開來的是快速編寫出生產(chǎn)級別代碼的能力。你可以同時(shí)擁有好的代碼和速度,但是你需要先對你用于構(gòu)建的過程投入。

  一般的程序員不會對工具、過程和環(huán)境投入,只會使用大量的時(shí)間學(xué)習(xí)新的語言特性和 API 如何工作,但那并不會改變什么。

  通常,你作為程序員所能夠做出的最大改進(jìn)并不是專注于你所編寫的代碼,而是優(yōu)化你編寫代碼的過程。

  6. 羞于請求幫助

  一般的程序員羞于或者不想讓人知道自己不懂,所以他們裝作什么都知道,但這樣就有可能提交某種非常可怕的代碼到庫中。說“我不知道怎么做。”沒什么錯,強(qiáng)大的程序員知道這一點(diǎn),所以當(dāng)被問題難住的時(shí)候就會請求幫助。

  7. 不知道如何讓其他程序員更容易使用你的代碼

  在所有技術(shù)團(tuán)隊(duì)中,工作很重要的一部分就是人員的并行(human parallelism),也就是多個(gè)人能夠同時(shí)對同一代碼庫工作的能力。但是對于團(tuán)隊(duì)來說,能夠異步工作也很重要,當(dāng)你不在的時(shí)候我可以修改你的代碼,反之亦然。

  一般的開發(fā)者并不這么認(rèn)為,他們會開始對一項(xiàng)任務(wù)編寫代碼,認(rèn)為他們會永遠(yuǎn)擁有這段代碼。而強(qiáng)大的開發(fā)者會知道技術(shù)債務(wù)的說法,從而試圖通過設(shè)計(jì)代碼來對其限制,讓它盡可能可維護(hù)和自解釋。

  編寫可讀的代碼需要程序員改變他們的看法——你的代碼要比你在組織中存在的時(shí)間長。

  8. 不知道如何閱讀其他人的代碼(或者不想讀)

  當(dāng)一位一般程序員看到用他所不熟悉的語言或框架編寫的代碼庫時(shí),就想立刻重寫,而不考慮業(yè)務(wù)價(jià)值或者推向市場的時(shí)間。而強(qiáng)大的程序員會接受這樣的觀點(diǎn),重寫所導(dǎo)致的業(yè)務(wù)成本通常是不可接受的,所以應(yīng)該避免這種行為。他們會試圖坐在計(jì)算機(jī)前,理解、學(xué)習(xí)然后修改現(xiàn)有的代碼。

  閱讀代碼要比編寫代碼還難,但是強(qiáng)大的程序員會投入時(shí)間來學(xué)習(xí)如何超越。

  9. 不能從最終用戶的角度編碼(你考慮的范圍太狹窄)

  有句話說得好:作為程序員,你的工作不是解決技術(shù)問題,你之所以解決技術(shù)問題,是為了解決業(yè)務(wù)問題。

  一般的程序員只會陷在技術(shù)問題之中,而不知道最初是為什么要解決這個(gè)問題。更嚴(yán)重的是,一般程序員無法從頭開始創(chuàng)建出具有業(yè)務(wù)價(jià)值的東西。當(dāng)被要求基于簡單的用戶設(shè)計(jì)新特性的時(shí)候,他們會死板地、照著字面對故事或者說明書做出解釋,這樣交付的產(chǎn)品用戶根本無法使用。因?yàn)樗麄儾粫紤]相關(guān)的用例;不會考慮最終用戶的體驗(yàn);并且在做面向用戶的內(nèi)容時(shí),設(shè)計(jì)都會很笨重。這導(dǎo)致他們無法編寫業(yè)務(wù)應(yīng)用,只能做產(chǎn)品。

  好的程序員會從最終用戶的角度來看他們的代碼。我怎樣才能讓它更輕松地解決用戶的問題呢?故事的文字內(nèi)容之外有哪些方面會讓這個(gè)特性給用戶帶來更多收益呢?

  10. 無法判斷任何編程任務(wù)的業(yè)務(wù)價(jià)值

  這個(gè)問題和上一個(gè)是相關(guān)的,很多技術(shù)上很強(qiáng)的程序員之所以無法意識到自己的潛力,是因?yàn)樗麄儾粫O聛恚瑥臉I(yè)務(wù)或者組織本身的角度去看一下他們的工作。

  強(qiáng)大的程序員能夠自我管理,對選擇如何投入時(shí)間做出很好的業(yè)務(wù)決定,他們會問這樣的問題:這是我現(xiàn)在應(yīng)該做的最有價(jià)值的事情嗎?我應(yīng)該為之投入多少時(shí)間?離交付日期有兩個(gè)星期,我現(xiàn)在能做什么,從而更容易滿足那個(gè)日期呢?

  一般的程序員不會,他們只會拿著說明書,然后盲目地實(shí)現(xiàn),直到結(jié)束,不關(guān)心他們的工作和公司的業(yè)務(wù)目標(biāo)有什么關(guān)系,以及對其他團(tuán)隊(duì)和業(yè)務(wù)組會產(chǎn)生什么樣的影響。這樣,他們就會在業(yè)務(wù)價(jià)值很低的技術(shù)任務(wù)上浪費(fèi)大量開發(fā)時(shí)間。

  Aaron 在最后做出總結(jié):如果你想要成為更好的程序員,那么就要從改變你看待代碼以及編碼的方式開始。你需要理解所編寫的每行代碼背后的業(yè)務(wù)成本;你需要從客戶或者最終用戶的角度來看待工作;你需要接受代碼會比你在組織中存在的時(shí)間更長,所以要以其他開發(fā)者能夠繼承的方式來設(shè)計(jì);最重要的,永遠(yuǎn)都不要害怕新的挑戰(zhàn),也不要害怕請求幫助,你無法獨(dú)居一隅來提升工作效果,軟件開發(fā)也是社會化的工作。

it知識庫如何成為強(qiáng)大的程序員?,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产亚洲综合精品一区二区三区 | 国产乱码精品一区二区三上 | 亚洲免费视频网址 | 免费在线色视频 | 加勒比一本大道香蕉在线视频 | 亚洲午夜精品久久久久久成年 | 日本一区二区三区免费高清在线 | 在线播放黄色网址 | 精品久久久久久久久久久久久久久 | 国产久爱青草视频在线观看 | 真实国产乱子伦在线观看 | 香蕉久人久人青草青草 | 国模337人人本艺术150p | 免费看的www视频网站视频 | 国产成人涩涩涩视频在线观看 | 99在线精品日韩一区免费国产 | 日韩 国产 欧美视频一区二区三区 | 国产香蕉久久精品综合网 | 久热福利| 国产福利在线观看精品 | 日韩精品一区二区三区中文 | 欧美高清强视频 | 午夜一级成人 | 91精品国产综合久久久久 | 国产精品久久久久久久久齐齐 | 四虎国产精品免费久久久 | 亚洲图片一区二区三区 | 日韩精品中文字幕久久 | 色综合天天综合网国产成人 | 精品久久久噜噜噜久久7 | 欧美在线看欧美高清视频免费 | 日韩一区二区超清视频 | 一本久道久久综合婷婷 | 伊人网在线免费观看 | 日本一区二区三区在线 观看网站 | 国产精品玖玖 | 69热精品视频在线看影院 | 国产九九在线观看播放 | 国产精品3 | 手机看片自拍自拍自拍 | 国产麻豆综合视频在线观看 |