1. 程式人生 > >成為更好程式設計師的8種途徑

成為更好程式設計師的8種途徑

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

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

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

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

1.時刻提醒自己:學習



學習某件事的第一步是承認你不知道。這聽起來很正常,但經驗豐富的程式設計師還記得要真正讓自己承認這一點需要花多長時間。很多電腦科學專業的學生畢業的時候,都有一種很傲慢的態度,就是

“我知道最好的”,但其實這只是一種虛張聲勢,他們不知道從哪裡來的自信,就好像他們什麼都知道,並且需要向每一位新同事強烈的證明這一點。換句話說:你所謂的“我知道我在做什麼!”這種態度會妨礙你學習新的東西。

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

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

新手(以及很多經驗豐富的開發人員)會看著他們自己寫的程式碼,欣賞它的奇妙。他們編寫測試來證明他們寫的程式碼是可以執行的

,而不是試圖讓它執行失敗。真正優秀的程式設計師會積極地尋找他們的錯誤在哪裡,因為他們知道終端使用者會發現這些遺漏的bug。

3.“程式碼可以運行了”這個目標不是終點,而是起點

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

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

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

4.寫三次程式碼

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

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

  2. 第二次可以讓它正常地執行。

  3. 第三次你能夠讓它平穩的執行。

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

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

5.閱讀大量的程式碼



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

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

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

  • 我學到了什麼?我如何將這種技術應用到我過去編寫的程式碼中?(“我從來沒有想過可以使用遞迴下降處理那塊的邏輯”)

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

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

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

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

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

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

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

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

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



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

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

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

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

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

[這篇文章最初是在New Relic部落格上發表的,並經New Relic的許可後刊登的。]

相關推薦

成為程式設計師8途徑

譯者注:本文作者講述了8種方式幫助你如何從一名普通的程式設計師進階成為一名偉大的程式設計師,讓我們就從此時此刻開始提高自己的開發技能吧。以下為譯文。是時候開始認真考慮一下如何升級你的開發技術了。讓我們來認真地學習一下吧。給自己設定一個提高開發技術的目標很容易,但

6條成為程式設計師的建議

1、研究並持續改進吸收,不僅僅是學習。對自己做過的專案,功能模組,聯絡進行分析和優化。學習技術是不可或缺的,不斷對技術和做過的專案保持精益求精的態度,更加重要。 2、保持慣性。有規律的工作習慣,和每週至少3小時的運動量。至少當前一週,一天的工作要有明晰的目標。儘可能每1.5小時活動

專訪Josh Wills:從數學到程式設計,如何成為程式設計師

​​鑑於在少年時代著迷於微積分,長大後的Josh Wills前往杜克大學選修了理論數學專業。在大學的最後一年,他認識了統計學這樣一個學科,雖然比起偏微分方程,Josh更喜歡後者,但他確實在那一刻起就喜歡上了這一個學科。 在那之後,Josh去過IBM一小段時間,然後去得州大學奧斯汀分校成為一名

如何成為程式設計師

       最近在我的社交圈子裡出現了關於“更為更好的程式設計師”的方法的討論。基於這場討論,我決定與大家分享一下自己的更為更好的程式設計師的方法。我希望大家知道,我發現的方法經實踐證明是有用的,所以大家也可以將它們用到自己的生活中。  &nb

讓我們成為程式設計師

即使是很聰明的程式設計師也存在很大的成長空間,那麼現在,我們就來談談如何做個更有想法、更善於突破自我的程式設計師。 1.善於總自身找原因 在發生錯誤之後,要學會首先質疑自己和他人的預設情況,因為來自不同的供應商可能存在 內建不同的預設。當有人想你報告一個你無法重複的問題

五個方法成為程式設計師 .

  對我來說,一個好的程式設計師應該是努力去追求儘可能無錯的高質量的符合需求的程式碼實現。 一些人也許認為好的程式設計師是那些懂得多門程式語言,懂得很牛技術的程式設計師,是的,這在某些情況下是對的。但歸根到底,無論你用什麼樣的技術,什麼樣的語言,所有的程式被寫出來,其功能都

如何成為程式設計師

閱讀本文並瞭解如何使用具有功能組合的宣告性程式碼成為更好的程式設計師。 在許多情況下,具有功能組合的宣告性解決方案提供優於傳統命令式程式碼的程式碼度。閱讀本文並瞭解如何使用具有功能組合的宣告性程式碼成為更好的程式設計師。 在本文中,我們將仔細研究三個問題示例,並研究兩種不同的技術(命令式和宣告性)來解決這些問

2019 年,19 方法讓自己成為的 Node.js 工程師

原文作者:Yoni Goldberg 譯者:UC 國際研發 Jothy 寫在最前:歡迎你來到“UC國際技術”公眾號,我們將為大家提供與客戶端、服務端、演算法、測試、資料、前端等相關的高質量技術文章,不限於原創與翻譯。 編者按:文中作者為大家提供了19種方法,大多數方法後面都提供了例子,如果你對這些例

程式設計師Java教程分享Java的兩跳轉語句

好程式設計師Java教程分享Java的兩種跳轉語句,Java跳轉語句用於實現迴圈執行過程中程式流程的跳轉,在Java中的跳轉語句有

《自信力~成為的自己》晨讀筆記

是否 bsp 是什麽 自己的 後者 語言 放松 付出 管理 自信不是紙上談兵而需要身體力行。① 『彰顯自信的習慣』讓充滿自信的肢體語言成為習慣,你也會變得更自信,這在心理學上叫做「回溯理性原則」。人的大腦願意相信那些與信念一致的行為方式,所以一旦你在舉手投足

成為的自己

好的 空間 最好 而且 發生 公開課 沒有 自己 事情 幸福公開課裏說 Be all you can be 成為最好的自己 李開復寫過一本書叫《做最好的自己》 許久前看過的 只記得倆個字 自信 自信的重要性 事實上 我們也只能成為自己 自己做了尷尬的事兒 遇到因別人的過錯而

程式設計師的標準

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Web前端如日中天,成為優秀前端程式設計師的5個祕訣,你用了幾個?

近些年,越來越多的程式設計師轉移陣地,搞起前端開發。 有不少的Android開發的程式設計師直接轉到了前端開發。 而就拿JavaScript來說,就因前端流行使得它在各種程式語言排行榜上名列前茅。 那麼,如何做一名優秀、甚至卓越的WEB前端工程師? 雖然說小夥伴們的學習技巧各有差異,

成為Java頂尖程式設計師 ,要看這11本書

轉載地址:http://www.kuqin.com/shuoit/20160107/349896.html 學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。 個人認為看書有兩點好處:          &nbs

成為Java頂尖程式設計師,先過了下面問題!

一、資料結構與演算法基礎 說一下幾種常見的排序演算法和分別的複雜度。 用Java寫一個氣泡排序演算法 描述一下鏈式儲存結構。 如何遍歷一棵二叉樹? 倒排一個LinkedList。 用Java寫一個遞迴遍歷目錄下面的所有檔案。 二、Java基礎 介面與抽象類的區

一個程式設計師要扔掉多少程式碼,才能成為真正的程式設計師

俗語說,女怕嫁錯郎,男怕入錯行。 程式設計師這行當,不貧不富,靠技術吃飯,一直還算個體面職業。進了程式設計師這行的兄弟們,即便日後飛黃騰達了,談起早年的程式設計生涯,都還是自豪的。 不過呢,程式設計師這個職業,有個挺悲哀的地方,那就是無效工作的佔比極高。 直接點說,程式設計師辛辛

程式設計師面試揭祕之程式設計師靠什麼途徑去美國工作?

                對於國內程式設計師來說,通常有三種途徑去美國工作。1.進入跨國公司工作一年以上,然後內部轉組到美國的部門。例如,進入微軟中國工作一年後,申請轉組到美國總部工作,若能批准,則申請L-1簽證去美國工作。2.直接應聘美國公司。這其實沒有想象的那麼難。當前不少美國IT公司直接從國內招人

公司招了個漂亮女程式設計師什麼樣的體驗?

程式設計師,本來就被認為是奇葩的存在了,身上自帶光(biao)環(qian),說的好聽的就是人傻錢多好管理,還有另一種說法就是掙得多花的少死的早,在這裡心疼程式猿們一秒鐘。 然而除了程式猿,還有另外一種存在——程式媛,如果你覺得陌生,你可以想象她們是雌性的程式猿。可能你會見到過這樣的段子:對

程式設計師8月書訊

本月9本新書,有聖經級經典書升級版《Linux命令列與shell指令碼程式設計大全(第3版)》,有系列書的中卷《你不知道的JavaScript(中卷)》,加其他3本技術書,1本設計入門書,3本主題獨特的科普書,相信會帶給你驚喜~ 特別推薦 ○ Linu

所以你根本不想成為一名程式設計師

我收到過很多來自職業程式設計師的郵件,他們在這個行業工作了一段時間,最終決定不幹這行了。最近收到這封: 我去年獲得了電腦科學學位,做了一年Java EE。我大學裡對需求工程和“管理知識”更興趣,但我們總要面對這樣一個事實:你往往被驅使成為一名程式設計師。 我喜歡程式設計本身。我做得不錯,我甚至比一