成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

愛好編程者可以看看 最牛B的編碼套路

開發(fā) 后端 前端
當(dāng)你能編寫精彩的代碼、并且能用精彩的言辭向世人解釋那些代碼時(shí),到那時(shí)候,我會覺得你已經(jīng)掌握了最牛的編碼套路!

最近,我大量閱讀了Steve Yegge的文章。其中有一篇叫“Practicing Programming”(練習(xí)編程),寫成于2005年,讀后令我驚訝不已:

與你所相信的恰恰相反,單純地每天埋頭于工作并不能算是真正意義上的鍛煉——參加會議并不能鍛煉你的人際交往能力;回復(fù)郵件并不能提高你的打字水平。你必須定期留出時(shí)間,集中鍛煉,這樣才能把事情做得更好。

我認(rèn)識很多杰出的程序員——這是在亞馬遜工作***的額外“福利”之一。如果仔細(xì)觀察他們,你會發(fā)現(xiàn)他們時(shí)時(shí)都在鍛煉。他們已經(jīng)很優(yōu)秀了,但他們?nèi)匀徊煌憻挕K麄冨憻挼姆椒至挚偪偅以谶@篇文章中只會介紹其中的幾種。

據(jù)我了解,這些杰出程序員之所以如此成功,就是因?yàn)樗麄円恢痹阱憻挕?**的身材要靠定期的鍛煉才能獲得,而且必須堅(jiān)持鍛煉才能保持,否則身材就會走形。對于編程和軟件工程來說,道理是一樣的。

這是一個(gè)重要的區(qū)別——我每天都開車去上班,但我的駕駛水平遠(yuǎn)遠(yuǎn)不如專業(yè)車手;類似的情況,天天編程可能并不足以使你成為一名專業(yè)的程序員。那么,什么才能把一個(gè)普通人變成一名專業(yè)車手或者專業(yè)程序員呢?你需要鍛煉什么呢?

答案就在《科學(xué)美國人》的一篇名為“The Expert Mind”(專家思維)的文章里:

愛立信提出,重要的并不是經(jīng)驗(yàn)本身,而是“努力的學(xué)習(xí)”,也就是要不斷地挑戰(zhàn)自身能力之外的東西。一些狂熱的愛好者花費(fèi)了 大量的時(shí)間去下棋、打高爾夫球或者玩樂器,但他們可能始終停留在業(yè)余水平上,而一個(gè)訓(xùn)練有素的學(xué)生卻可以在相對較短的時(shí)間里超越他們,原因就在這里。值得 注意的是,在提高水平方面,花費(fèi)在下棋上的大量時(shí)間(即使參加各種比賽)似乎還是比不過專門的訓(xùn)練來得更為有效。訓(xùn)練的主要價(jià)值在于發(fā)現(xiàn)弱點(diǎn),并有針對性 地進(jìn)行提高。

“努力的學(xué)習(xí)”意味著,要常常去處理那些剛好在你能力極限上的問題,也就是那些對你來說有很大可能失敗的事情。如果不經(jīng)歷一些失敗的話,你可能就不會成長。你必須不斷地挑戰(zhàn)自我,超越自己的極限。

那樣的挑戰(zhàn)有時(shí)會在工作中碰到,但也未必。將鍛煉從職業(yè)工作中分離出來,這在編程領(lǐng)域常被人稱為“編碼套路”(Code Kata)。

Code Kata的概念是由David Thomas提出的,他是《程序員修煉之道:從小工到專家》的作者之一。這個(gè)概念主要指的是,針對某一種特定技術(shù)或技能進(jìn)行重復(fù)性的練習(xí),從而將其熟練掌握。——譯者注

所謂套路,就是一系列的招式。這個(gè)概念借鑒于武術(shù)。

如果你想要看一些編碼套路的例子(也就是努力學(xué)習(xí)和磨練編程技能的方法),SteveYegge的文章里倒是提出了一些不錯(cuò)的建議。他把它們稱作為“實(shí)踐演練”:

1. 寫一份自己的簡歷。把自己所有的相關(guān)技能都羅列出來,然后把那些在100年后還用得到的標(biāo)出來。給每個(gè)技能打分,滿分為10分。

2. 羅列出你所景仰的程序員。盡量包括那些與你一起工作的人,因?yàn)槟銜诠ぷ髦袕乃麄兩砩汐@取一些技能。記錄下他們身上的1 ~ 2個(gè)閃光點(diǎn),也就是你希望自己有所提高的方面。

3. 查看維基百科上的“計(jì)算機(jī)科學(xué)”欄目,找到“計(jì)算機(jī)領(lǐng)域先驅(qū)者”這個(gè)分類,從這個(gè)列表中挑選一個(gè)人,閱讀他的事跡,并且在閱讀時(shí)打開任何你感興趣的鏈接。

4. 花20分鐘通讀別人的代碼。讀出色的代碼和讀糟糕的代碼都是有益的,兩者都要讀,輪流切換。如果你無法感覺出它們之間的區(qū)別,可以求助于一位你尊敬的程序員,讓他給你展示一下什么是出色的代碼、什么是糟糕的代碼。把你讀過的代碼給別人也看看,問問他們的看法。

5. 羅列出你最喜歡的10個(gè)編程工具——那些你覺得你用得最多、非有不行的工具。隨機(jī)挑選其中的一個(gè)工具,花一個(gè)小時(shí)去閱讀它的文檔。在這一個(gè)小時(shí)里,努力去學(xué)習(xí)這個(gè)工具的某個(gè)你不曾意識到的新功能,或者發(fā)現(xiàn)某種新的使用方法。

6. 想一想,除了編程之外你最擅長什么事情?再想一想,你是通過怎樣的鍛煉才變得如此熟練和專業(yè)的?這對于你的編程工作又有什么啟發(fā)呢?(怎么把這些經(jīng)驗(yàn)應(yīng)用到編程方面?)

7. 拿出一疊簡歷,并和一組面試官在同一個(gè)房間里待上一個(gè)小時(shí)。確保每份簡歷都至少被3個(gè)面試官看過,并且要給出1 ~ 3分的評分。針對那些不同面試官評判大相徑庭的簡歷展開討論。

8. 參與一個(gè)電話面試。事后寫下你的反饋,拋出你的觀點(diǎn),然后與主持電話面試的人聊一聊,看看你們是否達(dá)成了一致的結(jié)論。

9. 進(jìn)行一次技術(shù)面試,并且被面試的人應(yīng)該是某個(gè)你不太了解的領(lǐng)域里的專家。讓他假定聽眾在該領(lǐng)域里一無所知,因此請他從最基礎(chǔ)的講起。努力去理解他所說的,必要時(shí)問一些問題。

10. 有機(jī)會參與別人的技術(shù)面試。期間,你只是認(rèn)真地聽、認(rèn)真地學(xué)。在應(yīng)聘者努力解決技術(shù)問題的同時(shí),你也要在自己腦子里嘗試解決這些問題。

11. 找到一個(gè)能和你交換實(shí)際問題的人,每隔一周,相互交流編程問題。花10 ~ 15分鐘來嘗試解決這些問題,再用10 ~ 15分鐘進(jìn)行討論(無論能否解決)。

12. 當(dāng)你聽到任何你一時(shí)之間也無法解決的面試問題時(shí),趕緊回到你的座位上,把這個(gè)問題用電子郵件發(fā)給自己,以留作日后的提醒。在那一周里找出點(diǎn)時(shí)間,用自己最喜歡的編程語言來解決它。

我之所以喜歡Steve開出的這個(gè)清單,是因?yàn)樗瓷先ズ苋妗S行┏绦騿T一想到“鍛煉”,總認(rèn)為就是一些編碼上的難題。但在我看來,編程更在于人,而不是代碼。因此,通過解決世上所有的、并且晦澀的編程面試題目,在提高你的個(gè)人能力方面,這種方法是有局限的。

關(guān)于“努力的學(xué)習(xí)”,我也很喜歡Peter Norvig在“Teach Yourself Programming in TenYears”(花10年時(shí)間自學(xué)編程)一文中提出的諸多建議:

1. 與別的程序員交流。讀別人的代碼。這比任何書籍或培訓(xùn)課程都更重要。

2. 動(dòng)手寫程序!***的學(xué)習(xí)方法就是邊做邊學(xué)。

3. 在本科或研究生的課程中學(xué)習(xí)編程課程。

4. 找一些項(xiàng)目來做,并且需要與其他程序員形成團(tuán)隊(duì)來合作。在項(xiàng)目的進(jìn)行過程中,學(xué)會辨別最出色的程序員以及最糟糕的程序員。

5. 在項(xiàng)目中跟隨別的程序員一起工作,了解如何維護(hù)那些不是你寫的代碼,并且學(xué)習(xí)如何寫出利于他人維護(hù)的代碼。

6. 學(xué)習(xí)多種不同的編程語言,特別是那些與你現(xiàn)在所熟悉的語言有著不同的世界觀和編程模型的。

7. 了解硬件對軟件的影響。知道你的電腦執(zhí)行一條指令需要多少時(shí)間,從內(nèi)存中取出一個(gè)字(在有緩存或沒緩存的情況下)需要多少時(shí)間,在以太網(wǎng)(或者因特網(wǎng))上傳輸數(shù)據(jù)需要多少時(shí)間,從磁盤中讀取連續(xù)的數(shù)據(jù)或者在磁盤上跳轉(zhuǎn)到另一個(gè)位置需要多少時(shí)間,等等。

你還可以從Dave Thomas的21種實(shí)用的編碼套路中獲取靈感(CodeKata.com),或者你更愿意加入一個(gè)你家當(dāng)?shù)氐?ldquo;編程武館”(CodingDojo.org)。

對于“努力的學(xué)習(xí)”,我無法像Steve,Peter或者Dave那樣提供一個(gè)長長的建議列表。我遠(yuǎn)不如他們有耐心。實(shí)際上,在我看來,“編程套路”只需兩個(gè)招式:

1. 寫博客。我在2004年初創(chuàng)辦了CodingHorror.com博客,作為我自己努力學(xué)習(xí)的一種形式。它在一開始很不起眼,到后來成為我職業(yè)生涯中做過 的最重要的一件事。所以,你也應(yīng)該寫博客。***“聞達(dá)于天下”的人,往往就是那些能夠有效書寫和溝通的人。他們的聲音最響亮,是他們在制定游戲規(guī)則,并且 ***世界的潮流。

2. 積極參與著名的開源項(xiàng)目。所有的高談闊論聽起來都很好,但是,你是一個(gè)大話王還是一名實(shí)干家呢?別光說不練,這個(gè)非常重要,因?yàn)槿藗儠媚愕男袆?dòng)來衡量你,而不是你的言論。努力在公眾面前留下些實(shí)實(shí)在在有用的東西吧,到時(shí)候你就可以說,“我在那個(gè)項(xiàng)目中出過力。”

當(dāng)你能編寫精彩的代碼、并且能用精彩的言辭向世人解釋那些代碼時(shí),到那時(shí)候,我會覺得你已經(jīng)掌握了最牛的編碼套路!

責(zé)任編輯:王雪燕 來源: 陸其明的博客
相關(guān)推薦

2017-03-08 13:12:44

編程學(xué)習(xí)

2014-02-13 10:15:39

編程業(yè)余愛好

2013-12-26 10:32:30

編程學(xué)習(xí)

2015-04-17 10:10:35

FDDTDDNDD

2014-03-07 11:32:15

移動(dòng)電商云計(jì)算數(shù)據(jù)中心

2016-09-28 00:38:27

2011-05-30 13:58:56

PHP

2017-03-23 15:17:20

Linuxsudo棋盤

2018-06-12 07:38:05

Linux 開源

2019-08-09 10:15:14

機(jī)器學(xué)習(xí)人工智能監(jiān)督學(xué)習(xí)

2016-09-22 09:37:14

GCC內(nèi)聯(lián)語法

2012-06-12 10:07:22

Web

2023-08-13 16:32:12

JavaScript

2021-01-12 10:50:48

人工智能Instagramer科技

2012-10-18 18:40:24

2014-04-23 16:31:42

Windows背景音樂

2025-02-26 08:20:41

2015-11-12 16:26:46

編程編碼套路code kata

2014-01-03 15:14:22

編程業(yè)余愛好

2011-01-05 09:36:19

VirtualBSD
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品国产精品国产专区不片 | 国产黄色av电影 | 久久青草av| 欧美黄在线观看 | 亚洲国产欧美在线 | 91社区视频 | 国产91九色 | 日韩高清一区二区 | 99精品国产一区二区三区 | 玖玖精品视频 | 在线视频成人 | 亚洲精品一区二区 | 婷婷激情在线 | 午夜视频在线观看网站 | 亚洲免费视频一区 | 久草在线影 | 日韩手机在线看片 | 一区二区三区中文字幕 | 亚洲www | 色婷婷综合久久久中文字幕 | 久久亚洲春色中文字幕久久久 | 亚洲高清成人 | 香蕉一区| 黄色一级片在线播放 | 久久国产美女视频 | 国产成人精品a视频一区www | 91精品国产高清久久久久久久久 | 4h影视 | 成年人视频免费在线观看 | 国产午夜影院 | 国产一区中文字幕 | 丁香久久 | 91大神在线资源观看无广告 | 久久国产欧美日韩精品 | 亚洲久久| 日韩久久精品视频 | 久久69精品久久久久久国产越南 | 91麻豆精品国产91久久久久久 | 亚洲国产一区二区三区在线观看 | 九九热在线视频免费观看 | 国产亚洲网站 |