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