當前位置:
首頁 > 科技 > 一名普通的程序員進階成為偉大程序員有哪8種途徑?

一名普通的程序員進階成為偉大程序員有哪8種途徑?

本文作者講述了8種方式幫助你如何從一名普通的程序員進階成為一名偉大的程序員,讓我們就從此時此刻開始提高自己的開發技能吧。

是時候開始認真考慮一下如何升級你的開發技術了。讓我們來認真地學習一下吧。

給自己設定一個提高開發技術的目標很容易,但是「想成為一名偉大的程序員」卻不是一個容易實現的目標。首先,說「我想變得更好」,是建立在你認識到「更好」的樣子基礎之上。另外,有太多的人追求進步而不知道如何去實現。

因此,讓我分享八個可實際操作的指導方針,你可以把它們作為提高編程技能的流程圖。這些智慧都是伴隨著計算機35年的發展沉澱下來的。

1. 時刻提醒自己:學習

學習某件事的第一步是承認你不知道。這聽起來很正常,但經驗豐富的程序員還記得要真正讓自己承認這一點需要花多長時間。很多計算機科學專業的學生畢業的時候,都有一種很傲慢的態度,就是「我知道最好的」,但其實這只是一種虛張聲勢,他們不知道從哪裡來的自信,就好像他們什麼都知道,並且需要向每一位新同事強烈的證明這一點。換句話說:你所謂的「我知道我在做什麼!」這種態度會妨礙你學習新的東西。

2. 不要試圖證明自己是正確的

要想成為優秀的人,你必須學會吃一塹長一智。但是千萬小心,經驗也可能教會我們重複一些不良行為,甚至也教會我們養成一些不好的習慣。我們都遇到過有8年經驗的程序員。對於他們來說,同樣的經歷,重複了8次。為了避免這種綜合症,看看你做的每一種事情,然後問自己:「我怎樣才能讓它變得更好?」

新手(以及很多經驗豐富的開發人員)會看著他們自己寫的代碼,欣賞它的奇妙。他們編寫測試來證明他們寫的代碼是可以運行的,而不是試圖讓它運行失敗。真正優秀的程序員會積極地尋找他們的錯誤在哪裡,因為他們知道最終用戶會發現這些遺漏的bug。

3. 「代碼可以運行了」這個目標不是終點,而是起點

是的,你的第一步總是想寫出質量很高的代碼,而且代碼上面都寫滿了注釋。但是一般的程序員在這一點上就退出,然後繼續下一件事。

但是一旦「完成」就停止了這種思想就像是拍一張快照,然後期待它是一件藝術品一樣。偉大的程序員都知道第一次迭代只是一次迭代。它運行起來了,恭喜你!但你的工作還有很多。現在,使它變的更好。

其實這個過程就是在定義「更好」的含義。讓它變得更快能有什麼價值嗎?可重用更高有什麼好處嗎?更可靠嗎?答案隨著每個應用程序的不同而不同,但是過程都是一樣的。

4. 寫三次代碼

好的程序員目標是寫出可以運行的軟體就可以了。偉大的程序員寫出來的軟體目標是運行得非常好。通過一次編寫這種情況幾乎不可能發生。最好的軟體通常被寫三次:

首先,編寫軟體以向你自己(或客戶)證明解決方案是可行的。其他人可能沒有意識到這只是一個概念驗證,但你確實這麼做了。

第二次可以讓它正常地運行。

第三次你能夠讓它平穩的運行。

當你看到最優秀的開發人員的工作時,這種級別的工作可能並不明顯。他們所做的一切看起來都很出色,但你沒有看到的是,即使是開發界的大腕兒,也可能在向其他人展示他們的軟體之前就已經拋棄了第一個和第二個版本。拋棄之前的代碼並開始編寫另一個版本是一種強大的方式,可以將「更好地」融入到您的個人工作流程中。

如果沒有其他情況,通過「寫三次代碼」可以告訴你解決問題的方法有多少種。而且它可以防止你陷入停滯不前的狀態。

5. 閱讀大量的代碼

你可能希望我能夠引導這個建議,實際上,這也是提高編程技能的最常見和最有價值的建議。閱讀他人代碼的原因也很重要,只是不是很明顯而已。

當閱讀其他人的代碼時,你會看到其他人是如何解決編程問題的。但不要把它當成是文學作品,而是把它當成一種教訓和一種挑戰。想要變得更好,問問自己:

那塊代碼我該怎麼寫呢?既然你已經看到了別人的解決方案,那你會有什麼思路呢?

我學到了什麼?我如何將這種技術應用到我過去編寫的代碼中?(「我從來沒有想過可以使用遞歸下降處理那塊的邏輯」)。

我如何改進這段代碼?如果這是一個開源項目,你對自己的解決方案更有信心,那就去做吧!

以作者的風格編寫代碼。練習這個可以幫助你進入作者的思維,這可以提高你的同情心。

不要只是漫不經心地思考這些步驟。寫下你自己的答案,無論是在個人日誌、博客、審查代碼的過程中,還是與其他開發人員交流的論壇中。就像向朋友解釋問題可以幫助你解決問題一樣,記錄和分享你的分析可以幫助你理解為什麼你會以一種特定的方式對別人的代碼做出反應。這是我之前提到的自省的一部分,幫助你冷靜地判斷你自己的優點和缺點。

警告:在不需要成為一名優秀程序員的情況下,很容易閱讀大量的代碼,就像一個想要成為作家的人可以在不提高自己散文的情況下閱讀偉大的文學作品一樣。很多開發人員都在尋找開源或其他軟體來「找到答案」,而且很可能是複製和粘貼代碼來解決類似的問題。這樣做實際上會讓你成為一個更糟糕的程序員,因為你盲目地接受別人的智慧而不去審視它。(另外,它可能比夏季野餐還要麻煩,但因為你沒有花時間去理解它,你永遠不會意識到你就像是大自然的搬運工一樣,只是在做體力勞動。)

6. 不要把編寫代碼僅僅看作是任務

從事個人編程項目有很多優勢。首先,它為你提供了一種學習工具以及學習技術的方法,而這些工具和技術在你當前的工作中是用不到的,但是這將使你在下一份工作中更有市場。無論你是為開源項目做貢獻,還是為當地社區組織做公益工作,你都能獲得技術技能和自信。(此外,你的個人項目向潛在僱主證明,你是一個從不停止學習的人。)

編寫代碼的另一個好處是它強迫你自己去解決問題。你不能把這些難啃的問題留給別人,所以它會讓你過早地尋求幫助。

專業提示:不要只選擇那些你永遠不會失敗的個人項目。你需要失敗!但是你可能不想在工作中失敗,或者給你限定期限時你也不想失敗。

7.盡一切可能做到與其他開發人員面對面的工作

傾聽別人的意見是很有幫助的。這可能意味著結對編程,或者參加黑客馬拉松,或者加入一個編程用戶組(比如Vermont Coders Connection)。當你為一個開源項目做貢獻時,要關注一下你從用戶和其他開發者得到的反饋意見。你在他們的批評中看到了什麼共同點?

這樣做你可能會很幸運地認識了一位可以完全信任的導師,無路是編碼技術還是職業決策,你都可以完全信任他。所以不要浪費這些機會。

8. 你是在學習技術,而不是在學如何使用工具

編程語言、工具和方法這些都只是一時的。這就是為什麼需要你在這麼多的語言和框架中儘可能多的獲得經驗。重點關注編程基礎,因為基礎永遠不會改變;更關注體系結構而不是如何編程。如果你覺得做某件事只有一種正確的方式,那可能是時候進行現實核查了。條條框框的限制會妨礙你學習新事物的能力,也會使你很難適應變化。

我可以繼續前進,但自我提升的關鍵原則是知道何時停止。

作者:Esther Schindler

翻譯:Vincent

來源:CSDN大數據

全球市場交易訓練營,讓你成為最優秀的金融人!上海訓練營來啦!

解讀華爾街對沖基金最新交易策略

跨市場套利波動率量化模型

量化模型分析基本面事件

揭秘宏觀對沖基金的策略研究方法

經典技術分析是為輸家準備的套路

量子物理對交易的啟示……

時間:

8月3日(周四):18:00-21:00

8月4日(周五):18:00-21:00

8月5日(周六):9:00-12:00;14:00-17:00;18:00-20:00(業內交流活動)

8月6日(周日):9:00-12:00

地點:上海市

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 大數據實驗室 的精彩文章:

量化系統班課程7月15日正式開課
現在的信息技術應用只相當於工業革命的蒸汽機時代
課程更新及老師布置作業——可量化的期貨基本面策略
匯總:生活中大數據分析案例以及背後的技術原理
上海財經大學纏論公開課7月8日正式開課啦!

TAG:大數據實驗室 |

您可能感興趣

一個女程序員的編程之路
優秀的程序員和一般的程序員差別在哪?
有哪些程序員的梗
頂級程序員和普通程序員在思維模式上的5個區別!
程序員業餘時間賺錢的8大途徑
大話程序員
程序員8大準則
程序員的出路會有哪些?
程序員進階必讀金句
程序員易踩的 9 大坑!
扎心!大齡程序員的出路在哪?
編程入門,這763位老程序員有話講!
進階深度學習?這裡有9個給程序員的建議
線程,進程,程序的區別
年過35歲的程序員都去哪了?一張圖道盡老程序員們的花樣出路
低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
孤獨的程序員
程序員學習過程的幾個困惑?
程序員編程10大原則
程序員的鄙視鏈