營銷網(wǎng)站建設(shè)
全網(wǎng)營銷網(wǎng)站
高端網(wǎng)站建設(shè)
商城網(wǎng)站建設(shè)
外貿(mào)網(wǎng)站建設(shè)
小程序開發(fā)
區(qū)塊鏈開發(fā)
物聯(lián)網(wǎng)項(xiàng)目開發(fā)
定制app開發(fā)
在線教育網(wǎng)站
速成網(wǎng)站建設(shè)
服裝網(wǎng)站建設(shè)
餐飲網(wǎng)站建設(shè)
珠寶首飾網(wǎng)站
機(jī)械制造網(wǎng)站
文化旅游網(wǎng)站
家裝建材網(wǎng)站
美容化妝品網(wǎng)站
數(shù)碼產(chǎn)品網(wǎng)站
模板案例庫
文章編輯:網(wǎng)站建設(shè) 文章來源:建站行業(yè)資訊 瀏覽量:次
因此,讓我分享八個(gè)可實(shí)際操作的指導(dǎo)方針,你可以把它們作為提高編程技能的流程圖。這些智慧都是伴隨著計(jì)算機(jī)35年的發(fā)展沉淀下來的。
1.時(shí)刻提醒自己:學(xué)習(xí)
學(xué)習(xí)某件事的第一步是承認(rèn)你不知道。這聽起來很正常,但經(jīng)驗(yàn)豐富的程序員還記得要真正讓自己承認(rèn)這一點(diǎn)需要花多長時(shí)間。很多計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生畢業(yè)的時(shí)候,都有一種很傲慢的態(tài)度,就是“我知道最好的”,但其實(shí)這只是一種虛張聲勢,他們不知道從哪里來的自信,就好像他們什么都知道,并且需要向每一位新同事強(qiáng)烈的證明這一點(diǎn)。換句話說:你所謂的“我知道我在做什么!”這種態(tài)度會(huì)妨礙你學(xué)習(xí)新的東西。
2.不要試圖證明自己是正確的
要想成為優(yōu)秀的人,你必須學(xué)會(huì)吃一塹長一智。但是千萬小心,經(jīng)驗(yàn)也可能教會(huì)我們重復(fù)一些不良行為,甚至也教會(huì)我們養(yǎng)成一些不好的習(xí)慣。我們都遇到過有8年經(jīng)驗(yàn)的程序員。對(duì)于他們來說,同樣的經(jīng)歷,重復(fù)了8次。為了避免這種綜合癥,看看你做的每一種事情,然后問自己:“我怎樣才能讓它變得更好?”
新手(以及很多經(jīng)驗(yàn)豐富的開發(fā)人員)會(huì)看著他們自己寫的代碼,欣賞它的奇妙。他們編寫測試來證明他們寫的代碼是可以運(yùn)行的,而不是試圖讓它運(yùn)行失敗。真正優(yōu)秀的程序員會(huì)積極地尋找他們的錯(cuò)誤在哪里,因?yàn)樗麄冎雷罱K用戶會(huì)發(fā)現(xiàn)這些遺漏的bug。
3.“代碼可以運(yùn)行了”這個(gè)目標(biāo)不是終點(diǎn),而是起點(diǎn)
是的,你的第一步總是想寫出質(zhì)量很高的代碼,而且代碼上面都寫滿了注釋。但是一般的程序員在這一點(diǎn)上就退出,然后繼續(xù)下一件事。
但是一旦“完成”就停止了這種思想就像是拍一張快照,然后期待它是一件藝術(shù)品一樣。偉大的程序員都知道第一次迭代只是一次迭代。它運(yùn)行起來了,恭喜你!但你的工作還有很多?,F(xiàn)在,使它變的更好。
其實(shí)這個(gè)過程就是在定義“更好”的含義。讓它變得更快能有什么價(jià)值嗎?可重用更高有什么好處嗎?更可靠嗎?答案隨著每個(gè)應(yīng)用程序的不同而不同,但是過程都是一樣的。
4.寫三次代碼
好的程序員目標(biāo)是寫出可以運(yùn)行的軟件就可以了。偉大的程序員寫出來的軟件目標(biāo)是運(yùn)行得非常好。通過一次編寫這種情況幾乎不可能發(fā)生。最好的軟件通常被寫三次:
首先,編寫軟件以向你自己(或客戶)證明解決方案是可行的。其他人可能沒有意識(shí)到這只是一個(gè)概念驗(yàn)證,但你確實(shí)這么做了。
第二次可以讓它正常地運(yùn)行。
第三次你能夠讓它平穩(wěn)的運(yùn)行。
當(dāng)你看到最優(yōu)秀的開發(fā)人員的工作時(shí),這種級(jí)別的工作可能并不明顯。他們所做的一切看起來都很出色,但你沒有看到的是,即使是開發(fā)界的大腕兒,也可能在向其他人展示他們的軟件之前就已經(jīng)拋棄了第一個(gè)和第二個(gè)版本。拋棄之前的代碼并開始編寫另一個(gè)版本是一種強(qiáng)大的方式,可以將“更好地”融入到您的個(gè)人工作流程中。
如果沒有其他情況,通過“寫三次代碼”可以告訴你解決問題的方法有多少種。而且它可以防止你陷入停滯不前的狀態(tài)。
5.閱讀大量的代碼
你可能希望我能夠引導(dǎo)這個(gè)建議,實(shí)際上,這也是提高編程技能的最常見和最有價(jià)值的建議。閱讀他人代碼的原因也很重要,只是不是很明顯而已。
當(dāng)閱讀其他人的代碼時(shí),你會(huì)看到其他人是如何解決編程問題的。但不要把它當(dāng)成是文學(xué)作品,而是把它當(dāng)成一種教訓(xùn)和一種挑戰(zhàn)。想要變得更好,問問自己:
那塊代碼我該怎么寫呢?既然你已經(jīng)看到了別人的解決方案,那你會(huì)有什么思路呢?
我學(xué)到了什么?我如何將這種技術(shù)應(yīng)用到我過去編寫的代碼中?(“我從來沒有想過可以使用遞歸下降處理那塊的邏輯”)。
我如何改進(jìn)這段代碼?如果這是一個(gè)開源項(xiàng)目,你對(duì)自己的解決方案更有信心,那就去做吧!
以作者的風(fēng)格編寫代碼。練習(xí)這個(gè)可以幫助你進(jìn)入作者的思維,這可以提高你的同情心。
不要只是漫不經(jīng)心地思考這些步驟。寫下你自己的答案,無論是在個(gè)人日志、博客、審查代碼的過程中,還是與其他開發(fā)人員交流的論壇中。就像向朋友解釋問題可以幫助你解決問題一樣,記錄和分享你的分析可以幫助你理解為什么你會(huì)以一種特定的方式對(duì)別人的代碼做出反應(yīng)。這是我之前提到的自省的一部分,幫助你冷靜地判斷你自己的優(yōu)點(diǎn)和缺點(diǎn)。
警告:在不需要成為一名優(yōu)秀程序員的情況下,很容易閱讀大量的代碼,就像一個(gè)想要成為作家的人可以在不提高自己散文的情況下閱讀偉大的文學(xué)作品一樣。很多開發(fā)人員都在尋找開源或其他軟件來“找到答案”,而且很可能是復(fù)制和粘貼代碼來解決類似的問題。這樣做實(shí)際上會(huì)讓你成為一個(gè)更糟糕的程序員,因?yàn)槟忝つ康亟邮軇e人的智慧而不去審視它。(另外,它可能比夏季野餐還要麻煩,但因?yàn)槟銢]有花時(shí)間去理解它,你永遠(yuǎn)不會(huì)意識(shí)到你就像是大自然的搬運(yùn)工一樣,只是在做體力勞動(dòng)。)
6.不要把編寫代碼僅僅看作是任務(wù)
從事個(gè)人編程項(xiàng)目有很多優(yōu)勢。首先,它為你提供了一種學(xué)習(xí)工具以及學(xué)習(xí)技術(shù)的方法,而這些工具和技術(shù)在你當(dāng)前的工作中是用不到的,但是這將使你在下一份工作中更有市場。無論你是為開源項(xiàng)目做貢獻(xiàn),還是為當(dāng)?shù)厣鐓^(qū)組織做公益工作,你都能獲得技術(shù)技能和自信。(此外,你的個(gè)人項(xiàng)目向潛在雇主證明,你是一個(gè)從不停止學(xué)習(xí)的人。)
編寫代碼的另一個(gè)好處是它強(qiáng)迫你自己去解決問題。你不能把這些難啃的問題留給別人,所以它會(huì)讓你過早地尋求幫助。
專業(yè)提示:不要只選擇那些你永遠(yuǎn)不會(huì)失敗的個(gè)人項(xiàng)目。你需要失敗!但是你可能不想在工作中失敗,或者給你限定期限時(shí)你也不想失敗。
7.盡一切可能做到與其他開發(fā)人員面對(duì)面的工作
傾聽別人的意見是很有幫助的。這可能意味著結(jié)對(duì)編程,或者參加黑客馬拉松,或者加入一個(gè)編程用戶組(比如Vermont Coders Connection)。當(dāng)你為一個(gè)開源項(xiàng)目做貢獻(xiàn)時(shí),要關(guān)注一下你從用戶和其他開發(fā)者得到的反饋意見。你在他們的批評(píng)中看到了什么共同點(diǎn)?
這樣做你可能會(huì)很幸運(yùn)地認(rèn)識(shí)了一位可以完全信任的導(dǎo)師,無路是編碼技術(shù)還是職業(yè)決策,你都可以完全信任他。所以不要浪費(fèi)這些機(jī)會(huì)。
8.你是在學(xué)習(xí)技術(shù),而不是在學(xué)如何使用工具
編程語言、工具和方法這些都只是一時(shí)的。這就是為什么需要你在這么多的語言和框架中盡可能多的獲得經(jīng)驗(yàn)。重點(diǎn)關(guān)注編程基礎(chǔ),因?yàn)榛A(chǔ)永遠(yuǎn)不會(huì)改變;更關(guān)注體系結(jié)構(gòu)而不是如何編程。如果你覺得做某件事只有一種正確的方式,那可能是時(shí)候進(jìn)行現(xiàn)實(shí)核查了。條條框框的限制會(huì)妨礙你學(xué)習(xí)新事物的能力,也會(huì)使你很難適應(yīng)變化。
我可以繼續(xù)前進(jìn),但自我提升的關(guān)鍵原則是知道何時(shí)停止。深圳網(wǎng)站建設(shè)公司博納網(wǎng)絡(luò)編輯整理,也許本文對(duì)您的程序編寫工作能帶來一些啟迪。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【qin@198bona.com 】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
技術(shù)咨詢
價(jià)格咨詢
建議投訴
0755-82538016
關(guān)閉窗口