天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 論文百科 > 英文數(shù)據(jù)庫 >

如何成為一個(gè)牛逼的程序員

發(fā)布時(shí)間:2017-04-27 11:12

  本文關(guān)鍵詞:高效能程序員的修煉,由筆耕文化傳播整理發(fā)布。


如何成為一個(gè)牛逼的程序員

  作為程序員,身邊總是有牛逼的前輩、后輩或者同輩。牛逼的人總是讓人羨慕。比如自己苦搞一天的 BUG ,頭發(fā)快抓掉完了,人家掃上兩眼,改一行代碼,問題就解決了;比如自己干了十年開發(fā),薪水還不到 10K ,人家才畢業(yè)就簽了 16K 的合同;比如我要天天辛苦加班工作還干不完,人家嘛事兒不干每天就喝喝咖啡,結(jié)果寫出來的軟件居然比我的穩(wěn)定多了好用多了。這樣的事情太多太多,怎么辦?

陳勝起義時(shí)說:王侯將相寧有種乎!

  作為程序員,面對(duì)牛逼的同類,其實(shí)我們也可以憤而追之:大丈夫當(dāng)如是也!

  有夢(mèng)想有追求總是好的,關(guān)鍵是,如何才能牛逼起來耶?

 

程序員的分類
  早上翻看陸其明陸老師翻譯的Jeff Atwood的書《高效能程序員的修煉》,里面有一篇文章,名字是《程序員的八種境界》,講得很好,受益匪淺。不過我打算從另外一個(gè)角度為程序員分一分類。

來自古老的儒家經(jīng)典《論語》的說法:"生而知之者,上也;學(xué)而知之者,次也;困而學(xué)之,又其次也;困而不學(xué),民斯為下矣。”

  博主魯鈍,不知道誰能生而知之,我本人是困而學(xué)之,而后學(xué)而知之。一切從自我出發(fā),,竊以為困而學(xué)之、學(xué)而知之這兩類,都可以牛逼起來。有興趣的話,可以評(píng)估一下自己是哪種類型的。

 

10000個(gè)小時(shí)法則
  邁阿密大學(xué)的 AndersEricsson 教授寫過一篇論文——《有目的的訓(xùn)練在專業(yè)人才培養(yǎng)中的作用》(The Role of Deliberate Practice in the Acquisition of Expert Performance),介紹了他在研究“最好的音樂家”有什么共同點(diǎn)時(shí)的發(fā)現(xiàn):卓越的音樂家的練琴時(shí)間,沒有一個(gè)人小于 10000 小時(shí)。

  2008 年,暢銷書作家 Malcolm Gladwell ,將這篇論文寫進(jìn)了他的新書《異類:成功人士的故事》(Outliers: The Story of Success)。Malcolm Gladwell 概念化了原始論文的結(jié)論,宣稱存在一個(gè)“ 10000 小時(shí)法則”(10000 hour rule),即成功至少需要 10000 個(gè)小時(shí)的投入。你造嗎,這本書出版后,成為《紐約時(shí)報(bào)》暢銷書排行榜的第一名。

  10000 個(gè)小時(shí)法則背后的思想是:真正決定一個(gè)人成就的,不是天分,也不是運(yùn)氣,而是嚴(yán)格的自律和高強(qiáng)度的付出。看到這里你可能以為博主扯淡又扯遠(yuǎn)了……其實(shí)不是的,剛開始而已,真正扯的在下面。我想很多人看過古龍大師的《邊城浪子》,里面的主角是傅紅雪,傅紅雪的絕技是拔刀術(shù)。我靠,簡單吧。蒼白的手,漆黑的刀,刀過人亡,血還沒見著刀又還鞘了。這就是傅紅雪的拔刀、收刀之術(shù),關(guān)鍵在一“快”字。天下武功,唯快不破。傅紅雪的刀,已超越了速度的極限?墒悄阍靻,傅紅雪是癲癇癥患者,資質(zhì)也僅僅是中等,比起葉開,那是差了一大截,比到處留情的楚香帥,也差了一大截。關(guān)鍵是,傅紅雪永遠(yuǎn)看著都那么苦逼:在蒼茫的關(guān)外,握著刀,拖著腿,背負(fù)著于己無關(guān)的血海深仇,在“一入萬馬堂,刀斷刃,人斷腸”的歌聲里尋覓不是仇人的仇人。這下扯大發(fā)了,其實(shí)我想說的是,撿來的孩子傅紅雪,資質(zhì)平庸又身有殘疾,結(jié)果卻煉成了舉世無雙的刀法,其秘訣非常之簡單,賣油翁一言概之:無他,惟手熟爾。要知道,傅紅雪被不是媽媽的媽媽每天逼著練一本殘缺到只有拔刀式的白家刀法,苦逼地每天拔刀兩千次以上,拔了十幾年,你試試,要是你拔刀拔十幾年,不瘋掉的話肯定也能煉成個(gè)無影刀什么的。

  傅紅雪是另一個(gè) 10000 小時(shí)法則的實(shí)例。

 

愛是眾妙之門
  我在前面介紹了“ 10000 小時(shí)法則”,當(dāng)然那只是一個(gè)必要條件,不是充分條件。我以為要想讓 10000 小時(shí)法則有效,還有一個(gè)條件。

安·蘭德說過:“為了將事情做好,首先你得喜歡做這件事,而不是喜歡這件事情的結(jié)果,那僅僅是第二位。”

  想牛逼的程序員,不能僅僅盯著一個(gè)項(xiàng)目干完后的獎(jiǎng)金吧,也不能老想著忙過這陣子就可以休息了吧,也不能盼著應(yīng)用能 Run 就交差了吧……也不能老想著我學(xué)了 Scala 就能拿到 20K 的薪水吧……

牛逼的程序員很多是醬紫的:喜歡干,干得牛逼了,收益來了,機(jī)會(huì)多了。

  要說你不喜歡一件事情,有時(shí)被逼著也能勝任,但要說你討厭一件事又能干得出類拔萃,那我不相信,最好你也別讓我相信——我懷疑你早晚有一天會(huì)人格分裂。

  偉大的科學(xué)家愛因斯坦(晚年研究神學(xué))說過:“興趣是最好的老師。”這就是說,一個(gè)人一旦對(duì)某事物有了濃厚的興趣,就會(huì)主動(dòng)去求知、去探索、去實(shí)踐,并在求知、探索、實(shí)踐中產(chǎn)生愉快的情緒和體驗(yàn),而這種愉快的情緒和體驗(yàn)反過來又會(huì)促使他繼續(xù)去求知、探索、實(shí)踐。這樣就產(chǎn)生了良性循環(huán)。“成為達(dá)人”的欲求就會(huì)推動(dòng)著你不斷前行。

  你愛編程,享受做設(shè)計(jì)、寫代碼、解決問題的過程,再遵循 10000 小時(shí)法則,那你想不牛逼都難啊。

 

牛逼的方法論
  前面是開胃酸湯,現(xiàn)在到正題了,我們來聊聊一個(gè)程序員,要如何才能一步一步慢慢牛逼起來。

1)編碼

  毫無疑問,你必須得編碼,持續(xù)不斷地編碼,要達(dá)到一定的量。

  量變會(huì)引起質(zhì)變,但不是必然。

  持續(xù)編碼的結(jié)果有兩個(gè),一個(gè)是達(dá)到質(zhì)變,水平不斷提升;一個(gè)是重復(fù)重復(fù)再重復(fù)最終麻木。要哪個(gè)?

2)回顧與思考
  要想質(zhì)變與提升,必須有目的地停下編碼!只編碼,不走心,那是萬萬不行的。不走心的程序員很多,干多少年了水平還和初干時(shí)差不多,十年如一日。走心就不一樣,走心一日如十年。

  我們要周期性的回顧自己,看看以前的代碼,分析下現(xiàn)在的設(shè)計(jì),看看哪些可以改善,有多少種改善思路……這樣就能看出以前的自己與現(xiàn)在的自己這兩者之間的差距。如果你覺得自己以前的代碼是翔,那恭喜你,你絕對(duì)提升了不少。

  要回顧以前,還要分析現(xiàn)在。程序員還要經(jīng)常梳理一下自己的狀態(tài),看看我現(xiàn)在都掌握了什么技能,在哪些方向和領(lǐng)域有所成就,再加上對(duì)過去的回顧,看看哪些是延續(xù)性的前進(jìn),哪些是無心插柳,哪些是冤枉路,哪些是意外之喜。這樣就會(huì)對(duì)自己的能力邊界有所了解,知道自己知道什么,也知道自己不知道什么,更重要的是,你會(huì)發(fā)現(xiàn)自己能把什么東西學(xué)好用好,還能發(fā)現(xiàn)自己為什么可以把這些東西學(xué)好,那樣你就可以找到自己擅長的方向,做得更好。

  回顧了以前,分析了現(xiàn)在,還要想想將來。在技術(shù)上,我要在哪些方向繼續(xù)前行深入挖掘?這點(diǎn)非常重要。我們佇立現(xiàn)在,回首過去,仰望未來,這是上山的姿勢(shì)啊。哈哈,上山好啊,值得期待的只有前方。

  有人說上到山頂就只有下山嘍……那,這也是真的,不過,顧城有首詩《避免》可以看看:

你說

你不愛種花

因?yàn)楹ε驴匆娀ㄒ黄牡蚵?/p>

所以

為了避免一切的結(jié)束

你拒絕了所有的開始

  作為有追求的程序員,我們不必這樣擔(dān)心吧。只管積累我們的 10000 小時(shí)去,只管思考如何有效地利用這 10000 小時(shí)去,不但過程是美麗的,將來也會(huì)是美麗的。

3)多學(xué)一點(diǎn)點(diǎn)
  臺(tái)上一分鐘,臺(tái)下十年功。那些牛逼的程序員,無一不是付出了比普通程序員更多的精力。

  我們?cè)陂_發(fā)時(shí),會(huì)接觸各種各樣的新技術(shù)。有時(shí)因?yàn)轫?xiàng)目時(shí)間原因,很多技術(shù)只能是走馬觀花的用,解決問題為目的,項(xiàng)目結(jié)束了可能就扔一邊兒去了。但要想讓自己有更大的成長,那我們就應(yīng)該學(xué)多一點(diǎn),用一分學(xué)兩分,廣里一分,深里一分,不能不求甚解一帶而過。對(duì)于用過的技術(shù),最好在當(dāng)時(shí),項(xiàng)目的間隙或者項(xiàng)目結(jié)束時(shí),抽時(shí)間了解它的背景、長處、機(jī)理,讓自己對(duì)用到的技術(shù)都有相當(dāng)程度的了解。惟其如此,我們的知識(shí)面和技術(shù)深度,才會(huì)隨著開發(fā)經(jīng)驗(yàn)而不斷遞進(jìn)。

4)實(shí)踐新技術(shù)
  選擇或者學(xué)習(xí)一門新的技術(shù),必須要實(shí)踐。可以把它應(yīng)用到工作中的項(xiàng)目,如果工作條件限制,那也要自己定義一個(gè)自己喜歡的項(xiàng)目,堅(jiān)持使用你的新技術(shù)做下來。唯有實(shí)踐,你的新技術(shù)才能理解得更為深刻。知道有那么一門技術(shù),與實(shí)際使用過,其間的差異可不止一點(diǎn)。

5)溝通

  很多人覺得程序員比較難溝通,說程序員不會(huì)好好說話……你覺得呢?

  我想說的是:要想成為牛逼的程序員,溝通一定要過硬!

  程序員是干嘛的?不是寫代碼的,而是解決問題的。

  解決問題才是程序員的職責(zé)。

  要解決問題,離不開溝通。

  客戶會(huì)找你,市場(chǎng)會(huì)找你,產(chǎn)品經(jīng)理會(huì)找你,UI設(shè)計(jì)師會(huì)找你,開發(fā)同事會(huì)找你,測(cè)試妹妹會(huì)找你,老板也會(huì)找你,女盆友會(huì)因?yàn)槟愕耐度肱c執(zhí)著愛上你也會(huì)在愛上你后因?yàn)檫@些而不斷與你爭執(zhí)……

  哪一樣離得開溝通呢?

  當(dāng)然我不是說程序員要像銷售、市場(chǎng)、營銷等等崗位的兄弟姐妹們一樣妙語生花,其實(shí)溝通最重要的是能聽懂別人說什么,能把你想說的以對(duì)方能理解的方式說出來。至于是妙語連珠還是磕磕絆絆,是語言溝通、眼神溝通還是書面溝通,只要達(dá)到目的即可。

  有人說我天生不愛說話,跟機(jī)器打交道才覺得踏實(shí)。其實(shí)這沒關(guān)系,你要找到自己的溝通方式,看怎樣才能讓別人理解,也調(diào)整自己的聆聽和理解方式,看怎樣才能理解別人說的話。

  怎樣才能讓別人正確理解你的話,怎樣你才能正確聽懂別人的話,這都需要不斷的學(xué)習(xí)、練習(xí),這方面有很多的書啊視頻啊,可供參考。這沒什么不好意思的啊,我認(rèn)識(shí)一些朋友,覺得學(xué)習(xí)說話技巧是很不好意思的一件事兒,好像這樣做就說明自己心懷鬼胎就多丟人似的。其實(shí)不必,我們的目的不是巧舌如簧地騙取別人的信任然后來謀取利益,我們的目的很簡單,就是讓別人理解我們也讓自己理解別人。

6)理解溝通模型
  溝通這事兒真是一門學(xué)問,雖然我在這方面一向魯鈍,還是想以我們程序員的方式,打個(gè)比方來說明一下溝通模型。

  首先每個(gè)人心里都有一個(gè) TCP Server ,監(jiān)聽到某個(gè)端口上,等待陌生人或者熟人或者半生不熟的人來訪問。

  其次呢,不同的人對(duì)自己的端口是否開放持不同的態(tài)度,OPEN的人就會(huì)監(jiān)聽到知名端口,比如80、21、7、13、22、23等等,這樣別人就知道我們找這個(gè) OPEN 的家伙說事兒該連接哪個(gè)端口。當(dāng)然,只開放端口還不夠,靈慧的人還會(huì)慢慢把自己的協(xié)議 SHOW 給別人,這樣想找他聊天的人就可以遵循這個(gè)協(xié)議來說,事情就容易多了,雙方就都能理解。

  最后呢,如果你要想向別人說明你的意圖并讓別人按你的意圖去做某件事,那就要花費(fèi)精力去研究如何找到對(duì)方監(jiān)聽的端口、使用的協(xié)議。和 OPEN 的人溝通比較容易,訪問 80 端口,走 HTTP 就行了,或者夜半三更FQ過去幽會(huì)也能成。而針對(duì)那些隱藏了端口和協(xié)議的,就要啟用端口掃描這種神器,掃到端口,再抓包分析協(xié)議,成功的可能性總是有的,只不過費(fèi)些力氣罷了。

用這種模型來解釋現(xiàn)實(shí)生活中的溝通問題,程序員們就可以釋然了:啊哈,原來我給他說的事兒他老不反應(yīng),是搞錯(cuò)了端口或者走錯(cuò)了協(xié)議。

7)表達(dá)自己
  理解了溝通模型,找到了對(duì)方的端口和協(xié)議,還有一個(gè)問題需要解決:你怎么準(zhǔn)確地表達(dá)你的意圖。

  對(duì)于相當(dāng)一部分程序員,這是個(gè)難題。有的人本身就寡言少語(我是這類的);有的人很厲害,與別人說話時(shí)腦子轉(zhuǎn)得比別人快幾倍,腦子里轉(zhuǎn)的是長長的帶上下文的句子,從嘴里出來后就成了嘎嘣脆的詞語,還以為自己說過了別人都能理解;有的人寫代碼一二三四條理清楚,說話時(shí)就比較發(fā)散,正說股票呢忽然就轉(zhuǎn)到APEC藍(lán)上了;有的人比較羞澀,大男人說話卻聲若蚊蠅……總之各類情況都有,你見到的絕對(duì)比想到的多。

  不管你屬于哪一類,要想能順暢地與人溝通,先要訓(xùn)練自己,讓自己可以準(zhǔn)確地表達(dá)。

  我是不會(huì)表達(dá)的人呢,你看我洋洋灑灑長文千字,其實(shí)我不大會(huì)說話。不過我要說的是:如果你說不好,那就想辦法先寫好。

  “寫”這個(gè)事情,比說更容易讓人條理清楚,因?yàn)閷戇@個(gè)過程時(shí)間相對(duì)寬松,上下文簡單,不像與人溝通那樣你來我往還要時(shí)刻注意話外音整個(gè)過程比較復(fù)雜。所以,寫,是一個(gè)很好的鍛煉自我表達(dá)的手段。寫作能訓(xùn)練你表達(dá)的準(zhǔn)確度。

  你可以通過寫博客,寫日志等等手段,把自己的想法表達(dá)出來。然后呢,過一段時(shí)間,你能通過寫作來表達(dá)自己的了,再回頭來影響說話,你把嘴上說的當(dāng)作紙上寫的,多練習(xí)練習(xí),就能準(zhǔn)確的表達(dá)自己的意圖了。你看人家領(lǐng)導(dǎo)人講話還需要先打打草稿呢不是,更甚之的還有念稿子的。

8)找到你的小伙伴

  程序員干的是技術(shù)活,找到一個(gè)談得來的小伙伴很重要,可以相互促進(jìn),消除登頂路上的寂寞。

  胡一刀和苗人鳳就是好伙伴,兩人經(jīng)常切磋,水平都很高。

  可能你需要在不同的階段找不同的伙伴,最好是找某方面比你牛的人一起研究技術(shù),這樣可以學(xué)到東西。

  或曰:牛人為毛要搭理我撒……

  “在你所有的能耐中,至少應(yīng)該有一樣是拿得出手的。不會(huì)做很多事情并不可怕,可怕的是沒有一件事情能做好。”

  要培養(yǎng)自己在某方面的長處,這樣就可以互補(bǔ)嘍。

  其實(shí)有相當(dāng)一部分程序員離職的一個(gè)原因是:在這個(gè)公司真的太寂寞了,都找不到一個(gè)可以討論技術(shù)相互促進(jìn)的人!

9)分享
  這個(gè),真的很重要,千萬別掖著藏著,對(duì)待向我們求助的兄弟姐妹,要像春天般的溫暖……

此處略去5w字……

 

posted @


  本文關(guān)鍵詞:高效能程序員的修煉,由筆耕文化傳播整理發(fā)布。



本文編號(hào):330512

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/mishujinen/330512.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶ae41f***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com