91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最牛B的編碼套路

m3eY_edn_china ? 來(lái)源:未知 ? 作者:李倩 ? 2018-03-09 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

我認(rèn)識(shí)很多杰出的程序員——這是在亞馬遜工作最好的額外“福利”之一。如果仔細(xì)觀察他們,你會(huì)發(fā)現(xiàn)他們時(shí)時(shí)都在鍛煉。他們已經(jīng)很優(yōu)秀了,但他們?nèi)匀徊煌憻?。他們鍛煉的方法林林總總,而我在這篇文章中只會(huì)介紹其中的幾種。

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

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

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

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

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

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

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

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

如果你想要看一些編碼套路的例子(也就是努力學(xué)習(xí)和磨練編程技能的方法),SteveYegge的文章里倒是提出了一些不錯(cuò)的建議。

他把它們稱(chēng)作為“實(shí)踐演練”:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

對(duì)于“努力的學(xué)習(xí)”,我無(wú)法像Steve,Peter或者Dave那樣提供一個(gè)長(zhǎng)長(zhǎng)的建議列表。我遠(yuǎn)不如他們有耐心。

實(shí)際上,在我看來(lái),“編程套路”只需兩個(gè)招式:

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    1040

    瀏覽量

    57045
  • 亞馬遜
    +關(guān)注

    關(guān)注

    8

    文章

    2733

    瀏覽量

    85838

原文標(biāo)題:最牛B的編碼套路

文章出處:【微信號(hào):edn-china,微信公眾號(hào):EDN電子技術(shù)設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    磁鐵在編碼器中的作用與應(yīng)用

    編碼器中,磁鐵的作用不可小覷,常用的磁性材料主要是釹鐵硼和鐵氧體,今天這篇文章主要介紹下磁鐵用于哪些編碼器類(lèi)型,以及其具體作用。磁鐵在編碼器中的作用(功能)是什么?在編碼器中,磁鐵主
    的頭像 發(fā)表于 03-19 14:42 ?124次閱讀
    磁鐵在<b class='flag-5'>編碼</b>器中的作用與應(yīng)用

    NAS原生應(yīng)用龍蝦PicoClaw上線,比OpenClaw輕99%,普通用戶(hù)權(quán)限更安全

    非常感謝飛社區(qū)小伙伴對(duì)PicoClaw的喜愛(ài)和詳細(xì)分享,這篇文章驗(yàn)證了PicoClaw部署在飛NAS上的可能性,并介紹了實(shí)操技巧,讓廣大飛NAS用戶(hù)都可以將自己的NAS升級(jí)為AINAS!想要
    的頭像 發(fā)表于 03-17 19:04 ?1571次閱讀
    飛<b class='flag-5'>牛</b>NAS原生應(yīng)用龍蝦PicoClaw上線,比OpenClaw輕99%,普通用戶(hù)權(quán)限更安全

    AGV為何“搞不定”田字托?

    AGV地與田字托盤(pán)的適配難題:結(jié)構(gòu)差異導(dǎo)致貨叉無(wú)法穩(wěn)定插入,精度要求嚴(yán)苛加劇識(shí)別困難,技術(shù)局限限制搬運(yùn)能力。
    的頭像 發(fā)表于 03-12 11:06 ?57次閱讀
    地<b class='flag-5'>牛</b>AGV為何“搞不定”田字托?

    【硬核搭檔】迅為RK3588成功適配飛FnNAS,你的私有云迎來(lái)性能猛獸!

    【硬核搭檔】迅為RK3588成功適配飛FnNAS,你的私有云迎來(lái)性能猛獸!
    的頭像 發(fā)表于 02-25 15:43 ?866次閱讀
    【硬核搭檔】迅為RK3588成功適配飛<b class='flag-5'>牛</b>FnNAS,你的私有云迎來(lái)性能猛獸!

    hcs301 編碼跳變編碼器應(yīng)用手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《hcs301 編碼跳變編碼器應(yīng)用手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 02-09 16:35 ?0次下載

    探索Broadcom AEAT - 901B系列增量式磁編碼器:特性、參數(shù)與應(yīng)用

    探索Broadcom AEAT - 901B系列增量式磁編碼器:特性、參數(shù)與應(yīng)用 在電子工程師的日常設(shè)計(jì)工作中,編碼器猶如一雙雙“電子眼睛”,為設(shè)備的運(yùn)動(dòng)控制和位置檢測(cè)提供關(guān)鍵信息。今天,我們就來(lái)
    的頭像 發(fā)表于 12-30 14:05 ?385次閱讀

    探索AEAT - 901B系列增量式磁編碼器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    探索AEAT - 901B系列增量式磁編碼器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子工程師的日常設(shè)計(jì)工作中,編碼器是實(shí)現(xiàn)精確運(yùn)動(dòng)控制和角度檢測(cè)不可或缺的關(guān)鍵組件。今天,我們就來(lái)深入探討一下Broadcom
    的頭像 發(fā)表于 12-30 11:50 ?522次閱讀

    BE30B4中空電渦流編碼器-DATASHEET

    電子發(fā)燒友網(wǎng)站提供《BE30B4中空電渦流編碼器-DATASHEET .pdf》資料免費(fèi)下載
    發(fā)表于 12-23 11:21 ?1次下載

    雙芯驅(qū)動(dòng)工業(yè)視覺(jué)革新:HDMI編碼板CM2001H與CM8210B的場(chǎng)景賦能之路

    在工業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,高清視覺(jué)信號(hào)的精準(zhǔn)采集與高效傳輸成為智能制造、無(wú)人巡檢等領(lǐng)域的核心需求。HDMI編碼板CM2001H與攝像模組CM8210B形成的"采集-編碼"黃金組合,憑借軍工級(jí)穩(wěn)定性
    的頭像 發(fā)表于 10-24 11:33 ?491次閱讀

    基于8位Booth編碼的公式推導(dǎo)

    我們使用基于8位的Booth編碼對(duì)乘法器進(jìn)行修改 首先介紹一下基于4位的Booth編碼公式推導(dǎo): 對(duì)于P=A*B來(lái)說(shuō),將B以2進(jìn)制碼表示,可以轉(zhuǎn)化為以下式子: 由于 將奇數(shù)位
    發(fā)表于 10-22 07:14

    絕對(duì)值編碼器與增量式編碼器相比有哪些優(yōu)勢(shì)?

    絕對(duì)值編碼器與增量式編碼器相比有哪些優(yōu)勢(shì)?核心功能:斷電后位置信息不丟失,絕對(duì)值編碼器:通過(guò)機(jī)械結(jié)構(gòu)或電子存儲(chǔ)(如電池備份),能實(shí)時(shí)輸出當(dāng)前位置的唯一絕對(duì)值編碼(如二進(jìn)制、格雷碼)。無(wú)
    的頭像 發(fā)表于 08-11 13:57 ?1745次閱讀
    絕對(duì)值<b class='flag-5'>編碼</b>器與增量式<b class='flag-5'>編碼</b>器相比有哪些優(yōu)勢(shì)?

    引腳定義藏玄機(jī):M12航空插頭的編碼選擇之道?

    防誤插設(shè)計(jì):不同編碼采用獨(dú)特鍵位,A編碼無(wú)法插入B編碼插座,配合標(biāo)配測(cè)試筆,校驗(yàn)效率提升60%。? 定制化能力:支持防爆等特殊引腳定義,100+工程師48小時(shí)出方案,某石油設(shè)備廠商
    的頭像 發(fā)表于 08-08 10:24 ?729次閱讀
    引腳定義藏玄機(jī):M12航空插頭的<b class='flag-5'>編碼</b>選擇之道?

    低頻段 LNA 前端模塊(B26/B5/B18/B19、B8、B20、B12/13/17、B28A、B28BB29) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()低頻段 LNA 前端模塊(B26/B5/B18/B19、B8、B20、
    發(fā)表于 06-27 18:32
    低頻段 LNA 前端模塊(<b class='flag-5'>B</b>26/<b class='flag-5'>B</b>5/<b class='flag-5'>B</b>18/<b class='flag-5'>B</b>19、<b class='flag-5'>B</b>8、<b class='flag-5'>B</b>20、<b class='flag-5'>B</b>12/13/17、<b class='flag-5'>B</b>28A、<b class='flag-5'>B28B</b> 和 <b class='flag-5'>B</b>29) skyworksinc

    絕對(duì)值編碼器選型流程 5步鎖定最優(yōu)型號(hào)

    絕對(duì)值編碼器選型流程 5步鎖定最優(yōu)型號(hào)!絕對(duì)值編碼器明確匹配電氣接口與協(xié)議 1、總線兼容性:西門(mén)子 PLC 優(yōu)先選 PROFINET 接口(如倍加福 PN 編碼器);日系設(shè)備常用 SSI 或
    的頭像 發(fā)表于 06-03 14:30 ?1251次閱讀
    絕對(duì)值<b class='flag-5'>編碼</b>器選型流程 5步鎖定最優(yōu)型號(hào)

    GPU顯卡維修避坑指南:手把手教你識(shí)別行業(yè)套路!

    你的顯卡維修被“套路”過(guò)嗎?“一塊H100顯卡維修報(bào)價(jià)5萬(wàn)?修完3個(gè)月又壞!”你是否也遇到過(guò)——高價(jià)采購(gòu)的顯卡突然故障,返廠維修耗時(shí)數(shù)月,第三方服務(wù)商張口就是“核心損壞,必須換新”?在算力需求激增
    的頭像 發(fā)表于 04-02 20:31 ?3957次閱讀
    GPU顯卡維修避坑指南:手把手教你識(shí)別行業(yè)<b class='flag-5'>套路</b>!