国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

成為優秀碼農的十二項自我修養

譯文
新聞 前端
業界有著這樣一個普遍的誤解:要成為一名優秀的程序員,就必須掌握許多種編程語言和工具。實際情況是這樣嗎?也許本文給出的十二條建議會讓您或多或少地改變對此的認同感。

[[278185]]

【51CTO.com快譯】業界有著這樣一個普遍的誤解:要成為一名優秀的程序員,就必須掌握許多種編程語言和工具。實際情況是這樣嗎?也許下面給出的十二條建議會讓您或多或少地改變對此的認同感。

1.研究數據結構

計算機科學家Niklaus Wirth曾經有過一個著名論斷:“數據結構+算法=程序”。可見,數據結構是計算機程序的基礎,它們就像構造房屋的磚頭一樣。實際上,數據結構決定了程序將如何快速有效地解決問題。一旦使用了正確的數據結構,您的程序方案會變得既簡單,又省時。

那么,我們該如何研究數據結構呢?

  • 首先,選擇一本好書,以理解并掌握有關如何設計和執行數據結構。在此,我推薦Narasimha Karumanchi撰寫的《輕松實現數據結構和算法》(Data Structures and Algorithms Made Easy,https://amzn.to/34DxomJ)一書。這是C/C++版本的,您也可以通過鏈接:https://amzn.to/2NZ3W4E,找到其對應的Java版本。
  • 其次,嘗試從頭開始實現一些數據結構,例如:列表、堆棧和隊列。您不僅可以深刻地理解到它們的工作原理,而且還能夠通過“重新發明”這些數據結構來提高編程的技能。
  • 第三,試用那些由自己常用的編程語言所提供的內置數據結構(如果是Java,則對應的是Collections框架)。例如:使用不同的列表,通過索引來快速訪問各種元素;將集合用于元素的隨機排列;使用隊列進行producer-consumer的處理等。
  • 第四,在編寫代碼之前,請認真思考并選擇出最適合于解決問題的數據結構。當然,您不必重復造輪子,請盡量利用當前編程語言所提供的現有數據結構。

2.學習算法

如果說數據結構抽象出了問題的輸入和輸出的話,那么算法則決定了系統該如何解決問題。優秀的程序員一般都能善于使用經過實際檢驗的算法、并編寫出新的算法。

由于算法不僅需要良好的邏輯思維,而且需要一定的數學能力,因此它是編程中最難學習的部分之一。如果您能夠靈活運用自己擅長的各種算法,那么您將很容易從編程人群中脫穎而出。

不過,好消息是:您不必從頭開始發明各種算法,只需要學習和使用那些經過實際檢驗的實用算法便可。我建議您至少對如下基本算法有一定的了解:排序(快速排序、合并排序等),二進制搜索,遞歸,圖檢索,greedy,密碼學相關基礎知識,以及復雜的big O表示法。

那么,我們應該如何學習算法呢?除了上述提到的數​​據結構書籍之外,我建議您通過選讀《算法簡介》(Introduction to Algorithms,https://amzn.to/2NWOoyw)一書,以獲取相關的概念,并從頭開始實現那些熱門的算法。通常,您可以試著通過自行編程來模擬算法的運作原理。例如,您可以編寫一個程序,以可視化的方式顯示快速排序算法的工作方式。籍此,您不但可以學到許多相關概念,并且能夠大幅提高自己的編碼技能。

3.研究設計模式

雖說編程就是為問題尋找的某種解決方案,但是方案本身也可能會面臨各種問題與挑戰。例如,我們往往需要更好的性能、更靈活的設計、更可靠的體系結構、更少的錯誤、以及更少的潛在瓶頸。因此,設計模式是解決在軟件設計中各種常見問題的一種行之有效的解決方法。

要成為一名優秀的程序員,您應該能夠將恰當的設計模式應用到程序的技術實現上。那么我們應該如何學習設計模式呢?在此,我建議您從著名的設計類書籍:《設計模式:可重用的面向對象軟件的要素(C/C ++實現)》(Design Patterns: Elements of Reusable Object-Oriented Software,https://amzn.to/2Q6B2Cy)入手。如果您經常使用的是Java的話,我建議您閱讀《深入淺出設計模式》(Head First Design Patterns,https://amzn.to/2LtXu44)。通過學習,您可以迅速地掌握各種基礎的設計模式,其中包括factory、builder、strategy、command、template、facade、visitor、singleton。

當然,這是一個反復的過程,您只有通過閱讀案例,研究設計模式,編寫各種代碼,測試不同的模式,才能真正理解并自信地將自己的設計模式應用到程序之中。

4.讀書

您會堅持每年閱讀幾本編程書籍嗎?如果您的答案是少于三本的話,那么您該適當地反省一下了。畢竟,那些優秀的程序員都會表現出對新知識的如饑似渴。因此,我建議您每年至少閱讀五本書。這些書籍不但是過往經驗的集合,而且能夠拓寬您的視野,幫助您更快地獲取新知,以及向您展示如何以正確的方式實現軟件與產品的功能。

那么,我們應該閱讀哪些書籍呢?我推薦您從如下的必讀書目開始:

  • 程序員修煉之道(The Pragmatic Programmer,https://amzn.to/2Q6NUso)
  • 代碼大全(Code Complete,https://amzn.to/2IhRA4f)
  • 程序員職業規劃之道(The Passionate Programmer,https://amzn.to/2NXF0uz)
  • 軟件工藝(Software Craftmanship,https://amzn.to/2Lv7kTv)

而對于Java編程愛好者而言,《Java 高效編程》(Effective Java,https://amzn.to/2Q82yzr)也是必讀書目。擇日不如撞日,咱們現在就開始規劃一年內需要閱讀的書籍吧。

不過,您在閱讀時請記住如下兩點:

  • 不必從頭到尾地讀一本書。這樣您可能沒有足夠的時間和耐心。請試著采用一種明智的方式:首先只閱讀您需要的內容,然后在有時間的情況下閱讀其他的部分。例如,如果您需要應用Strategy模式,則應當重點閱讀涉及到該模式的章節;而如果您需要編寫servlet,則請關注servlet的相關章節。
  • 請認真做好筆記與練習,好腦筋不如爛筆頭,這樣會加深您的閱讀印象與效果。

5.閱讀各種博客與雜志

眾所周知:為了留存和吸引讀者,博客總是比書籍要更新得多。您可以在自己的細分市場與領域中找到一個權威性的博客或網站,堅持閱讀那里您所感興趣的各種帖子。例如:您可以通過每周閱讀一篇新文章的方式,讓自己與當今快速變化的技術保持更新。

在此,我會推薦DZone.com網站,這是一個最初為Java開發人員構建的社區。如今,它已成為了網絡中最大的軟件專業人員的交流社區之一。您可以在DZone上找到從Java到Javascript,從Web開發到敏捷(Agile)方法,從大數據到云計算等,幾乎所有類別的技術實用文章、見解和建議。

此外,您也可以訂閱自己相關領域的傳統或電子雜志。例如:對于Java而言,我建議您閱讀由Oracle發行的雙月刊Java Magazine(https://www.oracle.com/technetwork/java/javamagazine/index.html),它涉及到了Java技術管理的方方面面。

6.使用單元測試

在編程項目中,您可能聽說過“先寫測試,后寫代碼”的說法。我們需要將普通的需求轉換為非常具體的測試用例,然后編寫代碼,以實現業務邏輯,并確保它們能夠通過所有的測試。因此,我們應當通過編寫代碼,來測試每個程序的類,以及每個類的方法。

在編程界,大家普遍采用的是單元測試的方法。其好處包括:能夠及早地發現問題,促進代碼的更改與重構,簡化各種集成測試,為系統提供實時的文檔等方面。

單元測試直接導致了測試驅動開發(Test Driven Development,TDD)方法的出現。如今,TDD已被許多程序員運用到了多種編程語言中。

那么,我們應該如何學習單元測試呢?我建議您閱讀《單元測試的藝術》(The Art of Unit Testing,https://amzn.to/2NbbiCG)一書。它是有關單元測試與TDD方面極好的書籍。

而對于Java而言,由于JUnit是Java開發中非常受歡迎的測試框架之一,因此您可以從《Junit教程:設置、編寫與運行Java單元測試》(JUnit Tutorial: Setting Up, Writing, and Running Java Unit Tests,https://dzone.com/articles/junit-tutorial-setting-up-writing-and-running-java-1)開始。可以說,如果您從未使用過任何單元測試框架的話,那么您勢必缺少了軟件開發環節中的一項有力工具。

7.參與自由項目

以兼職或全職的方式參與自由項目,以提高編程的技能,是成為一名優秀程序員的快捷方法之一。簡而言之,自由項目意味著您可以在線查找項目,通過遠程工作的方式獲得在線的報酬。更棒的是,您可以選擇自己喜歡的項目類型,例如:PC端、Web應用、移動應用、設計、編程、測試、乃至某些硬件項目。這些都可以讓您在各個領域積累并拓展自己的編程經驗,提升面對挑戰的能力。

相比公司里的那些循規蹈矩的項目,自由項目雖然顯得更豐富、更精彩。但是,成為一名自由職業者可一點也不輕松。自由職業的市場往往充滿了激烈的競爭,您要面對成千上萬個其他自由職業者的爭搶與挑戰。因此,我強烈建議您最好在保留當前工作的前提下,逐漸參與或領取自由項目。

那么我們應該如何當一名自由職業者,開展自由項目呢?我建議您去訪問Freelancer.com網站。它是網絡上最大的自由職業市場之一,您可以在其中找到幾乎任何種類的工作。自2009年以來,我持續參加了該網站上的各類項目,目前已完成了142個項目,平均評分為4.8/5。當然,我從中也積累了豐富的編程經驗。

8.做編外項目

如果您不喜歡做自由項目的話,那么可以通過接手一些有趣的小項目,來打發空閑的時間。處理此類項目可幫助您提高各個階段的編程技能,其中包括:編碼、測試、設計、文檔編制、以及部署等方面。與您在公司參與到的主要工作相比,這些編外項目向您提供了軟件開發的整個過程,而不僅僅是編碼這一個階段。

那么我們應該如何參與編外項目呢?常言道:不積跬步,無以至千里。我的建議是“從小開始”。由于一開始您并沒有足夠的資源與經驗,因此最好不要馬上開展大型的項目。另外,您需要管理好自己的時間,一般以兩到三個月內完成一個項目為宜。

9.參加編程比賽

也許這是激發您自己成為一名優秀程序員的最具挑戰性的方式。為了參加比賽,您必須投入大量的時間和資源,并高度重視具體的開發環節,但是這對于提高您整體的編程技能是大有好處的。

請記住:重要的不是獲獎,而是在比賽中的成長。我曾經參加了幾次移動應用和桌面端游戲的競賽,雖然并未獲得任何獎勵,但是我承認自己在努力保證按時提交程序作品的時候,已經學到了不少的東西。

當然,您也可以嘗試一些著名的編程競賽,例如:微軟的Imagine Cup(https://www.imaginecup.com/);由IBM贊助的ACM-ICPC(https://icpc.baylor.edu/),以及TopCoder(https://www.topcoder.com/)。前兩個是面向學生的,而最后一個則是面向所有程序員的。另外,您還可以尋找并參與本國、本地區、乃至本公司舉辦的各類競賽。不要擔心自己是否擁有足夠的經驗,大膽注冊,一切隨緣!

10.進行規范性審查

代碼審查工作應當定期在項目團隊中開展。您既可以對他人的代碼進行規范性審查,也可以讓其他程序員來審查您的代碼。一系列的審查工作,不但能夠規范大家編寫程序代碼的習慣,而且有助于團隊成員之間相互學習、取長補短。

我建議您使用Sonar Qube(https://www.sonarqube.org/)之類的代碼分析工具。此工具可掃描整個代碼庫,并根據各種代碼的質量標準生成詳細的報告。一般而言,您需要持續修復代碼中的問題,直到該工具不再出現“紅色報警”為止。當然,某些代碼分析工具還能夠與您的IDE(如,Eclipse或NetBeans)很好地集成在一起,使得代碼的檢查過程更加順暢自然。

11.閱讀代碼

與檢查代碼不同的是,我們也需要花時間去認真閱讀其他程序員寫出的代碼。通過這一過程,您將學到更多的東西。正所謂:“一千個人心中有一千個哈姆雷特”,面對同樣的軟件需求,不同的編程專家會編寫出截然不同的代碼解決方案。只要您能夠潛下心來仔細閱讀,就能收獲到各種設計上的創新和編程上的經驗。

對于Java用戶而言,我建議您閱讀Java Collections框架(https://www.codejava.net/java-core/collections)的源代碼。您可以在JDK的安裝目錄下,通過src.zip文件找到它。當然,您也可以試著去閱讀諸如Spring、Hibernate、以及Struts等流行框架的源代碼。

12.開展與編程相關的教學

常言道:“最好的學習方法是進行教學”。您可以通過錄制視頻、撰寫文章、創作書籍、甚至是組織編程課程等形式,以幫助其他人學習編程。通常情況下,單純的編程目的是為了使程序代碼能夠“起作用”,而您在準備教學的過程中,往往會學習研究那些與目標課程主題相關的所有內容。“教學相長”就是這個道理。

在此,我強烈建議您選擇一種最適合自己的教學方式。例如:在創建自己的網站--CodeJava.net(https://www.codejava.net/)和Java Youtube(https://www.youtube.com/codejava)頻道之前,我曾經持續為一些編程網站編寫了各種各樣的Java教程。而且,我還在Udemy上開設過一些Java課程。

至此,我已經和您討論了成為優秀程序員的十二項自我修養。當然,這些只是我的經驗之談,希望您也能分享自己的觀點。

原文標題:12 Practices That Make You a Good Programmer,作者:Nam Ha Minh

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:張燕妮 來源: 51CTO
相關推薦

2019-08-26 08:56:38

碼農總監技術

2022-05-05 11:50:58

網絡安全安全人才網絡安全崗位

2015-07-17 08:27:19

EMMBYOD

2015-07-20 09:11:19

企業移動管理EMMBYOD安全

2019-08-18 23:02:43

碼農程序員開發

2011-12-27 16:31:27

程序員

2023-03-03 14:39:50

數字化

2021-07-29 10:37:13

漏洞管理自我修養漏洞

2015-10-28 13:39:25

2014-12-04 10:02:55

2014-05-12 10:02:56

數據可視化

2020-04-17 10:58:12

UI設計師按鈕

2013-06-26 10:34:56

工程師?谷歌

2017-10-20 17:21:16

華為

2020-10-23 09:07:17

開源代碼開發

2023-03-07 07:05:29

生產數據庫運維

2022-11-30 14:57:39

產業互聯網

2014-09-25 09:41:07

設計師

2023-02-09 08:47:48

TCP協議FTP

2022-12-20 16:39:09

智能駕駛智駕產品
點贊
收藏

51CTO技術棧公眾號

蜜桃传媒视频麻豆第一区免费观看| 九九精品久久| 久久香蕉国产线看观看网| 日韩精品dvd| 视频在线观看成人| 亚洲丝袜自拍清纯另类| 日本在线视频中文有码| 久久亚洲欧美日韩精品专区 | 黄色免费高清视频| 亚洲成人高清在线| 制服诱惑亚洲| 成人综合电影| 欧美激情自拍偷拍| 国产91足控脚交在线观看| 人人爽久久涩噜噜噜网站| 国产麻豆一精品一av一免费| 亚洲大胆精品| 98精品在线视频| 粉嫩高潮美女一区二区三区| 你懂的视频在线免费| 午夜精品久久久久久久99黑人| 轻轻草成人在线| 在线免费黄色毛片| 欧美激情乱人伦一区| 久久精品久久精品| 92国产在线视频| 国产精品久久久久免费a∨大胸| 成人污污视频在线观看| 国产成人l区| 国产精品国产精品| 亚洲va欧美va国产va天堂影院| 精品入口麻豆88视频| 成人短视频在线看| 欧美一级日韩免费不卡| 麻豆av在线播放| 久热国产在线| 正在播放精油久久| 黄色另类av| 超碰超碰97| 美女精品视频一区| 久久99精品国产麻豆婷婷洗澡| 电影av在线| 国产综合色香蕉精品| 亚洲人123区| 精品国产一区二区三区成人影院| 免费超爽大片黄| 亚洲日本成人网| 精品亚洲国内自在自线福利| 在线观看电影av| 美媛馆国产精品一区二区| 欧美又粗又大又爽| 欧美另类专区| 亚州av电影免费在线观看| 青青草成人在线| 国产精品九色蝌蚪自拍| 日韩一级淫片| 成人免费黄色网址| 四虎4545www精品视频| 国产男女无遮挡| 国产福利精品视频| 日本精品视频一区二区| 国产精品99久| 成人黄色在线| 黑巨人与欧美精品一区| 99这里都是精品| 国产精品影视网| 国产一二在线观看| 成人午夜电影免费在线观看| 午夜不卡av免费| 真实国产乱子伦精品一区二区三区| 4480yy私人影院高清不卡| 91在线国产电影| 欧美美女一区二区在线观看| 日本成人中文字幕在线视频| 小h片在线观看| 国产超级av在线| 午夜精品久久久久久久男人的天堂 | 一本色道久久综合| 午夜国产福利在线| 日本一区精品| 最近2019中文字幕mv免费看 | 久久91精品国产91久久小草| 日韩大片欧美大片| 日本三级免费观看| 高清欧美性猛交xxxx黑人猛交| 亚洲激情男女视频| 欧美全黄视频| 精品精品导航| 日韩av片在线看| 国产精品444| 欧美在线观看视频一区二区三区| 老司机一区二区三区| 欧美人与性动交xxⅹxx| 99热在线观看免费| 国产精品成人一区二区三区| 日韩欧美一区二区在线视频| 不卡视频一二三四| 老汉色老汉首页av亚洲| 欧洲亚洲精品视频| 伊人狠狠色丁香综合尤物| 久久国产加勒比精品无码| 亚洲福利视频三区| 日韩精品三区四区| 96sao精品免费视频观看| 国产视频在线观看一区| 国产成人精品av| 久久免费少妇高潮久久精品99| 亚洲人免费视频| 久久成人综合视频| 一区二区在线免费视频| 亚洲欧美日韩国产精品| 日韩av中文字幕在线免费观看| 欧美区在线观看| 欧美日本韩国一区二区三区视频| 午夜精品久久久久久久久| 一区二区三区中文免费| 亚洲国产成人av网| 日韩免费一区二区| 色综合久久久久网| 91久久国产综合久久| 国产欧美精品一区二区色综合| 欧美激情理论| 伊人久久综合影院| 欧美性久久久| 欧美日韩视频第一区| 日韩成人午夜影院| 在线一区二区视频| 免费在线视频一区| 黄色欧美在线| 男女在线观看视频| a√免费观看在线网址www| 日韩久久久久久久| 国产精品久久久久不卡| 亚洲男人天天操| 91久久奴性调教| 久久影院午夜论| 性一交一乱一区二区洋洋av| 欧美交a欧美精品喷水| 超碰在线最新网址| 中文字幕高清在线| 免费毛片小视频| 欧美亚州在线观看| 国产精品扒开腿做爽爽爽的视频| 亚洲色图第一页| 欧美人动与zoxxxx乱| 亚洲女厕所小便bbb| va亚洲va日韩不卡在线观看| 在线一区免费观看| 成人无号精品一区二区三区| 九九久久国产| 123区在线| 黄网在线免费| 久久午夜剧场| 激情五月开心婷婷| 亚洲一区综合| 好吊色欧美一区二区三区| 国产成人精品一区二区| 欧美久久久精品| 日韩无一区二区| 色哟哟国产精品| 亚洲欧美激情视频在线观看一区二区三区| 精品一区二区三区日韩| 在线日韩中文| 91亚洲国产| 欧美精美视频| 日本超碰一区二区| 国产成人精品一区二区三区在线 | 亚洲日产av中文字幕| 久久久久伊人| av免费不卡| 成人欧美在线| 91xxx在线观看| 天堂а在线中文在线无限看推荐| 网上成人av| 成年人小视频网站| 免费无码不卡视频在线观看| 在线观看精品视频| 亚洲a∨一区二区三区| 欧美日本国产精品| 麻豆av福利av久久av| 国产精品高清一区二区三区| 成人福利免费观看| 国产精品久久久久久久天堂| 57pao成人国产永久免费| 欧美激情免费视频| 欧美伦理91i| 久99久在线视频| 欧美丰满老妇厨房牲生活 | 男人的天堂99| 国产美女在线一区| 成人毛片一区二区| 中文精品无码中文字幕无码专区| 伊人色综合久久天天五月婷| 一级日韩一区在线观看| 五月天色一区| 亚洲一区二区在线免费观看| 香蕉视频在线网址| 久久综合久久网| 成人一级片网站| 一道本在线免费视频|