成為優秀程式設計師的10個有效方法

2021-02-15 Crossin的編程教室

一個優秀的程式設計師就是那種即使是過單行道都要往兩邊看的人。

——Doug Linder

作為一個在IT行業的軟體程式設計師,每天促使我去上班的動力就是對編程的樂趣和激情。但是為了激發樂趣並獲得永恆的快感,我們需要學習和遵守一些基礎知識以成為一名優秀的程式設計師。

當然我總結的這些東西沒有那麼神,你說你要想學了之後就一定可以成為優秀程式設計師,那是不可能的。這只是從我的經驗角度出發提供的一些捷徑。對於優秀程式設計師的定義,此處可以理解為能開發出超棒的IT解決方案並且能促進行業整體發展的程式設計師。

1.掌握基礎知識

不管任何行業和任何工作,概念的理解都是成功的關鍵。除非你有強大的概念基礎,否則就不可能成為一名優秀的程式設計師。核心概念的理解有助於你用最佳的方式設計和實施解決方案。如果你覺得你現在還沒有好好掌握關於核心計算機科學和程式語言的特定概念,那麼現在回過頭去重新學習這些基礎知識猶未晚矣。

2.給自己寫的每個代碼集都貼上標籤(how,what)

我發現區分程式設計師優劣的一條很明顯的分割線就是,是否有這個熱情去知道「what and how」。有的程式設計師對於自己的代碼是如何執行的以及執行結果等知道得一清二楚。我也理解有時候因為時間緊迫,我們不得不在只知道這些代碼可以完成工作的情況下就立刻進行下一步。雖然這對解決問題而言,似乎是另一個方向的話題,但是作為一個程式設計師,我們應該儘可能地深入研究問題以達到最高水平。相信我,隨著時間的推移,你會在不知不覺中養成這個好習慣,然後受益無窮。。

3.通過幫助他人從而學到更多

可能我們中的大多數人只有在自己需要幫助的時候才會上論壇和群。有一條區別程式設計師是否優秀的分割線就是,優秀者經常會去這些地方以幫助他人。而且他們在幫助別人的同時,自己也能學到很多東西。如果是在一個團隊中,也應該互相幫助。相信我,理解別人的問題背景、研究並提出解決方案會讓你學到的更多,成長的更快。

4.代碼要寫得簡單、易懂、有邏輯

正如在生活中其他方面一樣,KISS(Keep it simple and short)規則同樣適用於編程領域。代碼要有邏輯,避免過於複雜。有些人之所以要將代碼寫得那麼複雜只是為了證明自己有寫複雜代碼的能力。但是我的經驗告訴我,簡單且邏輯化的代碼才能有效工作,不但問題少而且更易擴展。我記得有這麼一句話:

好的代碼本身就是最好的文檔。在你要添加注釋之前,先問問自己,「我怎麼改進代碼,才能不需要寫這個注釋?」

——Steve McConnell

5.多花時間分析問題,後面就可以少花時間去修復

多花點時間用來理解和分析問題,設計出最優的解決方案,然後你會發現接下來的工作將事半功倍。設計過程並不意味著一定要使用建模語言和工具,也可以很簡單,例如抬頭仰望天空,然後在腦子裡來一場頭腦風暴。那些一拿到問題就習慣性去噼裡啪啦寫代碼的程式設計師,最後拿出來的成果往往會與要求的不同。

你如果在洗澡的時候腦子裡還沒有程序的整體結構,那就意味著還沒有做好開工寫代碼的準備。

——Richard Pattis

6.第一個分析審核自己的代碼

雖然有點困難,但是在其他人發現之前自己先知道問題的所在,能讓你學會如何寫出「接近於無bug」的代碼。自己對自己的代碼審核要公正嚴謹,也要能毫無猶豫地接受他人的審核。近朱者赤,與優秀的程式設計師一起工作,積極聽取他們的反饋,必然也會幫助你成為一名優秀的程式設計師。

7.面對日新月異的技術千萬不要沮喪

最近一段時間在IT行業裡,我碰到的很多人——要麼念叨著對他們的工作失望了,要麼甚至於已經辭職在找新工作了——都一致表示,他們想要學習並使用最新的技術。對於這個願望我認為可以理解,但是這個詞「最新的」,我覺得不甚正確。我們每天都能聽到有人在說「現在又出來什麼新的工具、API、框架和其他方法等」可以使得編程工作更加的簡捷。這在技術領域其實一直在發生。真正需要我們去關注和理解的是核心和基本技術的轉變,在這個基礎上再去看新的框架、工具和API。舉個例子,在很多Java公司可能每隔一周就會換上新的web框架,但是其基於客戶端—服務端通信模式的需求方式、MVC模式、filters/servlets/JSP、資源綁定、XML解析等核心概念依然是相同的。所以,與其時刻擔心框架和工具的變化,還不如花點時間好好學習這些核心概念。相信我,在理解這些核心概念的基礎上,我們才可以更快地掌握新的框架、工具和API。

8.應急措施並不能長久有效

很多時候,軟體程式設計師可能會採取應急和變通的解決方案(或因為時間緊迫,或缺乏對問題的深刻認識,或技術經驗不足)。但是,這些應急方案會破壞代碼,導致其後期很難擴展和維護。我能理解,有的時候這種情況真的很難避免,但是就像我們都應該講實話一樣,你講了謊話,那就得知道謊言總有戳穿的那一天。

9.閱讀文檔

優秀程式設計師的基本習慣之一就是閱讀大量的文檔,技術指標、JSR、API文檔、教程等等。閱讀文檔為我們用最好的方式編程打下了必需的基石。

10.學習他人的代碼

我非常喜歡與那些在IDE裡有java原始碼的優秀程式設計師交流互動,閱讀/參考他們的代碼。因為這麼做不但能了解基本知識,還可以學會寫項目的新方法。閱讀和參考一些可靠和已知的開放源碼或者自己的高級代碼,也有助於我們更好地編程。

最後一點,前面沒有列進去的:不要和別人比

俗話說,人比人,氣死人,拿自己與別人作比較只會導致負面情緒,並演變成不良競爭。尺有所短寸有所長,每個人都有自己的長處和短處。我看到過很多次一些所謂的特別牛叉的程式設計師也會犯一些很愚蠢的錯誤。所以,剖析自己,列出不足之處,努力改進自己,才是正途。

編程是一種真正的樂趣,歡迎樂在其中。

「任何一個傻瓜,都寫得出能讓計算機理解的代碼,但是,優秀程式設計師寫出來的代碼,能讓全人類理解。」

——Martin Fowler

原文連結:http://ashisharya2003.blogspot.com/2010/12/10-effective-ways-to-become-good.html

譯文連結:http://www.codeceo.com/article/10-effective-way-good-programmer.html

翻譯作者:碼農網 – 小峰

#==== Crossin的編程教室 ====#

微信ID:crossincode

論壇:http://crossin.me

QQ群:241080058


感謝UPYUN對本微信的支持。UPYUN是國內領先的雲服務提供商,專注於為開發者提供靜態文件的雲存儲、雲處理和CDN加速服務。現在註冊www.upyun.com,即可免費體驗!

相關焦點

  • 10個習慣助你成為一名優秀的程式設計師 - OSCHINA - 中文開源技術交流...
    當談到編程時,很多人應該都有聽過10x程式設計師的說法。 據說一個10x程式設計師的效率大約是其他程式設計師的10倍。
  • 優秀而高效的程式設計師必需寫好代碼的10個技巧
    2.最小化共享狀態你應該最小化函數之間的隱式共享狀態,無論它是文件作用域變量還是對象的成員欄位,都支持顯式的值作為參數。當代碼明確了該函數需要什麼來產生期望的結果時,代碼就變得更容易理解和重用。這種情況下,你應該優先選擇靜態無狀態變量,而不應該選擇對象上的成員變量。
  • 優秀而高效的程式設計師必需寫好代碼的10個技巧,
    作者丨Christopher Diggins譯者丨Teixeira10【譯者注】在本文中,作者介紹了10個寫好代碼的建議,以自己切身編寫代碼的體會和經驗來告訴開發者這10個建議的好處,並指導讀者成為一個優秀而高效的程式設計師。以下為譯文:那麼怎樣才可以使代碼變得優秀呢?
  • 沒有學歷文憑,如何成為一名優秀的 Java 程式設計師?
    那麼,如何才能有效地避開這些誤區?又該如何快速實踐?在本文中,我們將一一為大家道來。在我多年的程式設計師生涯中,我學到了一些要點。但是,「如何成為一名優秀的Java程式設計師」不是隻字片語就能回答清楚的。無需任何正式的培訓,也不需要坐在教室裡學習、考文憑。沒有相關的學位證書,你也可以被稱為一名優秀的Java程式設計師。你只需集中精力,讀一兩本好書,主動利用網上豐富的資源,投入足夠的時間來學習這項技術。
  • 2020年,哪些習慣可以讓你成為優秀程式設計師?
    在這個世界上,有數百萬的人熱衷於軟體開發、網站開發,他們有很多名字,如:軟體工程師(Software Engineer)、程式設計師(Programmer)、編碼人(Coder)、開發人員(Developer)等等。經過一段時間後,這些人也許能夠成為一個優秀的編碼人員,他們會非常熟悉如何用計算機語言來完成自己的工作。
  • 成為優秀程式設計師必備的幾個學習網站(珍藏版)
    ,那如何獲取最新且比較優秀的知識成為了一個重要的問題,下邊就是總結了一些優秀的學習及資訊網站,時刻提高自己,避免重複造輪子。        因為目前很多網站都做的大而全,所以分類方法為國內外的優秀技術網站,具體的優勢單獨介紹,當然還有更多更好的功能需要你不斷去探索。國內篇1.CSDN(國內最大中文IT社區)國內的程式設計師入門級網站,內容很多很雜,包括論壇、資源下載、博客、各種資訊等等。
  • 良好的程式設計師與優秀的程式設計師究竟有何差異?
    所以,如果你是一名程式設計師且具有以上特徵,那麼恭喜!你是一名良好的程式設計師。你應該感到自豪。現在開始介紹優秀的程式設計師。· 罕見難有的人才。· 生產效率是良好程式設計師的3倍,是糟糕程式設計師的10倍。· 屬於頂尖的1%,不僅寫代碼,還擁有一系列無形的特質,使其在眾多程式設計師中脫穎而出。簡言之,優秀程式設計師=良好程式設計師+一系列無形特質。雖然這並不容易,但是如果你足夠努力,這裡有一些無形的特質,可以幫助你實現從良好程式設計師到優秀程式設計師的轉變。
  • 我是如何成為一名優秀的C+程式設計師?
    如今,對C++的需求很大,並且C/C++程式設計師主要是在信息技術領域招聘的。有關為什麼您應該學習C++的更多詳細信息,可以看看筆者以前的文章。 為了成為一名優秀的C/C++程式設計師,您必須專注於此處提到的某些事項: 1.弄清基礎知識 尋找一個好的知識來源
  • 程式設計師客棧:聚集稀缺程式設計師資源,做優秀人才的經紀人 | 獵雲網
    做「網際網路垂直招聘」的拉勾網進軍金融招聘,似乎垂直招聘也是個偽命題。但是,凡事也都有例外。區別於100offer專注程式設計師的招聘,程式設計師客棧要做優秀程式設計師的經紀人,獵雲網認為他還具備了輕社交的內涵,一起來了解一下。
  • 學什麼專業才能成為程式設計師?其實想成為程式設計師,遠不止計科和軟工
    在目前網際網路行業,計算機領域都離不開編程,程式設計師也受市場的大量需求,而且目前程式設計師的薪酬普遍很可觀,在北上廣深等一線城市,程式設計師的薪酬基本都是上萬,兩三萬一月的都有的是,甚至很多都直接講年薪,程式設計師在目前還是比較吃香的職的業。
  • 一名優秀的程式設計師需要精通幾種程式語言?
    有了這些新功能的幫助,程式設計師顯然可以輕鬆做到這些:使用Groovy處理可擴展標記語言(XML),或使用Scala處理嵌套結構,等等。10多年過去了,多語言程式設計師的概念依舊方興未艾。具體而言,多語言程式設計師至少要精通三種不同的程式語言。在理想情況下,混合使用語言可以提供強度、深度和多樣性,關鍵在於「截然不同」。
  • 中年程式設計師的經驗談:21個慘痛教訓
    錯誤2—不留後路 哪怕你已經是個強大優秀的編程精英,也不要不留後路,挑起無謂的爭端。軟體圈子並不大,如今斷下的退路很可能成為未來困擾自己的絕路。 做人留一線,日後好相見,是不是?
  • 成為一名優秀的程式設計師,應該如何開始並學習哪些計算機知識呢?
    程式設計師是現今比較熱門的職業,程式設計師也稱為軟體開發人員或者軟體工程師。如果要想成為一名程式設計師,必須學習相應的知識和技能。那麼一名優秀的程式設計師需要學習哪些計算機知識?如何開始呢?如果我們沒有任何的計算機基礎,而想學習軟體開發技術,成為一名優秀的軟體開發人員,那麼就從最基本的計算機基礎知識學起吧!
  • Java程式設計師必讀的10本書籍
    以下列出了10本書,對於任何希望提高Java知識和理解的Java程式設計師來說都是必不可少的。如果你是一名程式設計師,想知道如何提高你對Java的了解或者成為更好的Java開發人員,那你就來對地方了。在本文中,我將分享一些最好的Java書籍。這些書經受住了時間的考驗,隨著歲月的流逝變得越來越重要。
  • 優秀程式設計師需要具備的基礎能力
    Java是程式設計師最喜歡的語言,幾乎所有的IT論壇都有不少喜歡Java語言的人,也有不少人想成為Java程式設計師,但很多人不知道應該如何入門,不知道學什麼才能成為合格的Java程式設計師。下面就跟大家討論一下優秀程式設計師應該具備的能力。
  • 成為專業程式設計師的6個技巧
    4、專業程式設計師專業程式設計師的一個最重要的特點是有責任心。專業程式設計師會為他們的職業生涯、預算、日程安排承諾、錯誤、技能技巧負責。一個專業的程式設計師不會將責任推卸給別人。如果你是專業的,那麼你就需要為自己的職業生涯負責。你有責任去閱讀和學習。你有責任去時刻關注最新的產業和技術。但是許多程式設計師覺得這應該是他們僱主的工作。
  • 成為專業程式設計師路上用到的各種優秀資料、神器及框架
    :)前言成為一名專業程式設計師的道路上,需要堅持練習、學習與積累,技術方面既要有一定的廣度,更要有自己的深度。筆者作為一位tool mad,將工作以來用到的各種優秀資料、神器及框架整理在此,畢竟好記性不如爛鍵盤,此項目可以作為自己的不時之需。本人喜歡折騰,記錄的東西也比較雜,各方面都會有一些,內容按重要等級排序,大家各取所需。
  • 有效學習的10個方法
    技能學習讓技能實踐更有效。通過學習,你會更加理解為什麼要多花時間在關鍵技能訓練上。基於這點認識,我們總結出有效學習的10個方法:1. 收集信息;2.舉個例子來說吧,很多人為了追逐「搖滾夢」開始學習電吉他,學著學著卻發現成為搖滾巨星並不是一件容易的事。因為,在臺上你只有吉他彈得好還不夠,還得唱得好,還得秀出「搖滾範兒」。這裡面似乎很複雜,已經涉及除了「彈」以外的「唱」和「秀」兩項技能的學習了。因此,在投入時間和精力學習新技能前,有必要和內行聊一聊。
  • 程式設計師都應記住的 10 句編程諺語
    20世紀80年代,豐田公司的流水作業線因為它在缺陷預防方法上的革新變得出了名的高效。每個發現自己的部門有問題的成員都有權暫停生產。這個方法意在寧可發現問題後馬上暫定生產、解決問題,也不能由其繼續生產而導致更棘手且更高代價的修復/更換/召回後的問題。程式設計師總會做出生產率就等同於快速編碼的錯誤臆斷。許多程式設計師都會不假思索地直接著手代碼設計。
  • 如何成為一個設計師和程式設計師混合型人才
    優秀的設計師和程式設計師統治著網絡–畢竟是他們創建的網站。