浪訊科技教你怎樣進(jìn)步編程技術(shù) |
發(fā)布時間:2019-03-27 文章來源:本站 瀏覽次數(shù):2982 |
這是一篇為廣闊碼農(nóng)而產(chǎn)的干貨,浪訊科技要共享八個可進(jìn)步編程技術(shù)的行為準(zhǔn)則。 1.提醒自己得學(xué)習(xí) 學(xué)習(xí)的第一步是要認(rèn)識到,你不明白。由于不明白,所以才需求學(xué)習(xí)。這聽上去很明顯,但有經(jīng)歷的程序員必定記住自己用了多長時間才干做好這個心理建造。太多的計算機(jī)科學(xué)學(xué)生帶著一種傲慢結(jié)業(yè):“我懂得最多”,自以為是地認(rèn)為他們知道全部,并且有一種想要證明給每一個新搭檔看的強(qiáng)烈欲望。換句話說:這樣一種“我知道我懂我了解!”的情緒會成為阻止你學(xué)習(xí)新東西的絆腳石。
2.不要極力證明自己是對的 要成就巨大——而不只是優(yōu)異——你必須從經(jīng)歷中學(xué)習(xí)。但要小心,經(jīng)歷會讓咱們重復(fù)錯誤的行為,養(yǎng)成壞習(xí)慣。咱們都遇到過有著8年經(jīng)歷的程序員……不斷說自己的經(jīng)歷豐富,倚老賣老。為了防止一葉障目,你應(yīng)該回憶自己所做的全部,問問自己,“怎樣才干做得更好?” 新手軟件開發(fā)人員(以及許多有經(jīng)歷的開發(fā)人員)觀看他們自己的代碼是為了賞識它的精彩。他們編寫測試是為了證明其代碼可作業(yè),而不是為了讓它失利。真實(shí)巨大的程序員會積極尋找他們錯誤的當(dāng)?shù)亍捎谒麄冎,最終用戶必將會發(fā)現(xiàn)他們遺失的缺點(diǎn)。 3.“代碼可作業(yè)”不是你停步的標(biāo)志;而是你開端的當(dāng)?shù)?/p> 是的,第一步是寫出高質(zhì)量的軟件,滿意標(biāo)準(zhǔn)說明。普通的程序員往往在這里就扔掉了,直接跳到下一件事。 可是就此當(dāng)作是“已經(jīng)完成”而停步,就像是拍了張照片就希望它成為一件藝術(shù)品相同荒謬可笑。巨大的程序員知道第一次迭代就只是第一次迭代罷了。能夠作業(yè)——那么恭喜你!——可是這不是結(jié)束。你還需求讓代碼變得更好。 一些流程界說了何為“更好”。有沒有價值使其更快?文檔更簡略?更可重用?更可靠?對于不同的運(yùn)用程序,這些問題的答案也各不相同,可是這個流程是不變的。 4.寫三遍 好的程序員編寫可作業(yè)的軟件。而那些巨大的程序員編寫的軟件運(yùn)轉(zhuǎn)起來極為出色。這很少是能夠一蹴即至的。最好的軟件通常要寫三次: 首要,你寫軟件是為了證明給自己(或客戶)看該解決方案是或許的。其他人或許不會意識到這僅僅是一個證明型的概念,可是你知道。 第二,讓它作業(yè)起來。 第三,讓它正確作業(yè)。 這種程度的作業(yè)或許并不明顯,假如你去看那些最佳開發(fā)人員的作業(yè)的話。他們做的全部都顯得如此才華橫溢,但你沒有看到的是,即使是明星開發(fā)者,在將自己的軟件展示給他人看之前,或許也扔掉過第一次和第2次的版別。扔掉代碼重新開端是一個能將“力求完美”歸入個人作業(yè)流程的好辦法。 假如不出意外,“寫三遍”會告訴你許多解決問題的辦法。它能夠防止你陷入困境。 5.閱覽代碼,閱覽許多代碼 你或許已經(jīng)聽過這個主張,實(shí)際上這是進(jìn)步編程技巧最常見也是最有價值的主張?墒窃S多人不知道閱覽他人的代碼之所以如此重要的原因。
當(dāng)你閱覽他人的代碼時,你要去看他人是怎樣解決問題的。但不要把它當(dāng)作文學(xué)來看;把它當(dāng)做一個教訓(xùn),一個應(yīng)戰(zhàn)。為了變得更好,你得問自己: 我會怎樣寫那樣的代碼塊?在你看到另一種解決辦法之后,你有什么不同的做法? 我學(xué)到了什么?怎樣運(yùn)用那個技術(shù)到我曾經(jīng)寫的代碼? (“我從來沒有想過在那里運(yùn)用遞歸下降……”)。 我要怎樣改進(jìn)這個代碼?假如它是一個開源項目,而且你相信自己有一個更好的解決方案,那么就去做! 用作者的風(fēng)格寫代碼。操練這個能夠協(xié)助你了解寫軟件的那個人的思維。 不要光想不做。寫下你的答案,不管是在個人日記,博客,代碼檢查過程中,仍是在開發(fā)者社區(qū)論壇上。就像給朋友解說問題能夠協(xié)助你理清解決方案,寫下并共享你的剖析也能夠協(xié)助你了解為什么你對他人的代碼會有這樣一種既定辦法的反響。這便是我前面提到的自省,自省能夠協(xié)助你冷靜地判別自己的長處和矮處。 警告:閱覽很多的代碼很容易,但要憑此就成為一個巨大的程序員未免想入非非。許多開發(fā)人員會通過開源代碼或其他軟件來“找尋答案”,而大多數(shù)人的做法是,仿制和粘貼恰巧呈現(xiàn)的可解決類似問題的代碼。這樣做實(shí)際上是在讓你變成一個更差的程序員,由于你只是盲目地承受他人的智慧,而沒有消化吸收。 6.寫代碼,而不僅僅是作為分配的任務(wù) 作業(yè)于個人編程項目有許多優(yōu)勢。首要,它供給了一個學(xué)習(xí)東西和技術(shù)的途徑,而這些東西和技術(shù)在你當(dāng)時的作業(yè)中是學(xué)不到的,可是這能讓你在找下一份作業(yè)時更有競爭力。不管你是致力于開源項目,仍是為當(dāng)?shù)氐纳鐓^(qū)組織供給無償?shù)膭趧,都能夠讓你添加技術(shù)技術(shù)和自信。 為了好玩而寫代碼的另一個長處是,它迫使你靠自己去搞清楚這些事情。你不能將難的那部分留給他人去做,所以它能夠防止你太快地向他人尋求協(xié)助。 小貼士:不要選擇那些你永遠(yuǎn)不會失利的個人項目。你需求失利!但你不會希望在作業(yè)中失利,或者當(dāng)項目有時間期限的時候。 7.盡或許一對一地和其他開發(fā)人員合作 這有助于細(xì)心傾聽他人的思路和主意。辦法能夠是結(jié)對編程,能夠是去參加編程馬拉松,也能夠是參加一個編程用戶群。當(dāng)你致力于一個開源項目時,要注意你從用戶和其他開發(fā)人員那里得到的反應(yīng)。在他們的批判主張中有沒有什么共同點(diǎn)? 你或許會很幸運(yùn)地找到一個能夠信任的個人導(dǎo)師,他會輔導(dǎo)你從編碼技術(shù)到職業(yè)決議的所有東西。不要浪費(fèi)這些機(jī)會。 8.學(xué)習(xí)技術(shù),而不是東西 編程言語、東西和辦法改動不定。這便是為什么咱們要積累盡或許多的經(jīng)歷,運(yùn)用盡或許多的言語和框架。專注于編程基礎(chǔ),由于基礎(chǔ)知識永遠(yuǎn)不會改動:要更重視結(jié)構(gòu),而不是編程。假如你覺得只要一種干事的正確辦法,那么或許是時候?qū)崙?zhàn)查驗了。教條會阻止你學(xué)習(xí)新事物的能力,一起要試著讓自己漸漸習(xí)慣改動。 還有許多,可是自我進(jìn)步的一個關(guān)鍵原則是知道何時停止。 |
|