在程序員這個職業里,究竟是天賦重要還是興趣和努力重要?
很多時候,別人眼裡的天賦是自己的興趣經過努力之後的表現。
關於天賦,先列兩本書。
異類 (豆瓣) ,它告訴我們,所謂天才都是一萬個小時練出來的。哪來的天才? (豆瓣) ,它告訴我們,天才是怎麼練一萬個小時的:「刻意練習」。還有一句話,以大多數人的努力程度之低,根本輪不到拼天賦。
這種關於天賦和努力的討論,廣泛適用於各個領域,許多人預期的答案是「天賦更重要」,這樣就可以推斷出另外一個結論,我的工作沒做好,不是我不努力,是天賦不好。
我接觸過許多優秀的程序員,他們的天賦按照通常的理解固然是驚人,但更可怕的是其努力的程度。在我們還討論某個概念是否實用時,他們已經做了幾個的東西進行了嘗試,並且告訴你不同方案之間的優劣。
我也接觸過一些程序員,你問他對什麼感興趣,他會說出一二三,當你問他在這些方面做過什麼時,他就會告訴你,他工作比較忙,沒有時間云云。所謂「興趣」,基本上是停留在上網看新聞的層面。
如果希望成為一代宗師,開宗立派,就計算機領域目前的工作,恐怕已經晚了,奠基性的工作大多已經完成。但是,這絲毫不影響我們做一個能為世界帶來一些改變的程序員,這個世界在很多領域都存在改進的空間,而我們程序員還有很多可以做的事情。
如果希望做一個在某些方面有所建樹的程序員,那就到對應的領域去奮戰,畢竟指望一天到晚寫頁面的程序員最終成為一個編譯器方面的專家不現實。
如果只是希望在這個行業里立足,這實在是太容易了,君不見一些培訓班號稱幾個月下來就能掙到多少錢,完全談不上天賦,至多和受教育程度有一些關聯。
如果我們把自己定位成普通人,我們不一定要用一萬個小時成為最頂尖的人物,但堅持「刻意練習」可以讓我們從大多數人中脫穎而出,畢竟大多數人只是把時間用在「想」上,而這種堅持我們通常稱之為「努力」。天生就有興趣也是天賦,天生能坐得住搞程序也是天賦
我從小學開始寫程序,在大學學業壓力不大之後尤為猛烈,大學還沒畢業就已經有了一萬小時的代碼經驗。
我認識的很多優秀的程序員朋友,也都是類似的狀況。
看上去好像跟所謂一萬小時理論有關,但請換個角度想一想:
假如入門時沒有程序的天賦,遭遇太多重重障礙,也許在這條路上我根本不會堅持這麼久。
假如沒有能耐得下心的天賦,不擅長與人交流的逆天賦,也許我也不會在這條路上如此的專心。假如真的沒有認真鑽研的死磕天賦,即使渾渾噩噩的泡上幾萬個小時,大抵也只是在「熟能生巧」的境界而已。我們都是普通人,我們和所有人一樣經歷著種種誘惑、種種迷茫。我們也沒有所謂驚人的毅力(實際上本人的自控能力可以說是相當的爛)。我們也愛看電視,愛玩遊戲,愛勾搭女孩子。而我們在程序上花費如此多的時間和努力,正是因為我們有程序的天賦。在別人看起來刻苦的學習、工作,對我們來說根本就是樂在其中的一種休閑。我猜測,其它行業的大部分「天才」,大抵也如此。PS:除了天賦,環境也同樣重要。
=========================================================
分割。來一段大段PS。前面說到了天賦對我的重要性,接下來說說天賦的由來。
1、遺傳。我無法證明,但我相信是有這方面原因的。
2、幼教。最近聽父母講對我小時候的教育很多。這裡不胡亂傳播我不知道是否正確的具體知識,但是我認為我父母的幼教對我的性格養成(包括好的方面和壞的方面)、智力養成、習慣養成 都產生了非常重要的作用。3、興趣被壓制還是被解放。對於這一點,我只能說,我很幸運。4、環境。是否有可以交流的人、是否有可以吸收知識的來源,這非常重要。這就是為什麼許多行業的「天賦」看似可以遺傳,除了遺傳的作用以外,環境的作用就是最主要的了。5、可能還有其它的原因。以上的前4條,在我的啟蒙時期,都是很難依靠我自己去改變的(包括環境)。所以我只能用「我很幸運」去形容。隨著時代的發展,第三條和第四條逐步變得更容易被自己改變了。所以我認為現在的孩子比以前更幸運。事實上,至少在程序員這個領域,我覺得現在的孩子確實比我們那時候優秀多了。興趣是勤奮的基礎,也是最好的天賦
興趣和努力重要,當程序員又不要像拿奧運會金牌那樣的天賦,程序員只是一個職業,有了興趣和努力基本上在這個行業能持續發展下去,真有天賦,要是再加上興趣和努力可能就是顛覆行業的瘋子啊
程序人生的寂靜歡喜
程序人生的寂靜歡喜
標題起得太大咯,是在故作老成么?
「程序人生的寂靜歡喜」——怎麼看都感覺像是某位已故計算機大師的墓志銘,可卻偏偏被一個菜得摳腳的毛頭小子拿來當做人生寄語——也是日了狗了!
人都沒生過,談什麼人生!?
莫怪我,我偏要「奢談」一下!
一.記敘
一開始我是拒絕的!因為我根本就不喜歡寫程序。
打高中數理化就不好,什麼排列組合、圓錐曲線、電磁場中一帶電粒子、水溶液中的水解電離,困擾我有如夢魘。
高考時,祖墳上冒出一縷青煙,數學創歷史新高考了88,理綜破有史記錄考了200,數據不僅太美太感人,而且大吉大利、元亨利貞!終於,我以總分522分考上了一所夢寐以求的2本就讀於計算機科學與技術1202班——命中犯2!
可是對於編程其實我是拒絕的——大一花了一年的時間來研究心理學,大二花了一年的時間來研究哲學,大三花了一年的時間來研究中醫——結果,《離散數學》掛了,《數字邏輯》掛了,《數據結構》掛了,《編譯原理》掛了——恨不得自掛東南枝!
人在做天在看,出來混總是要還的!曾堅信「天生我才必有用」,「我輩豈是蓬蒿人」;曾篤定「心所願力畢至」,「有志者事竟成」;曾夙願「天授其賦必賜其福」,「好風憑藉力,送我上青雲」。可是,一個冷峻若紫電青霜的問題劈面而來:不寫程序又能幹嘛呢?
然而我根本就不會寫程序!試想,一個打字只能用到右手食指、左手食指和左手無名指的人,敲代碼時是多麼捉急!試想,一個高數補考考了19分,滿腦子宏大敘事的理科弱智,寫程序時是多麼腦洞大開!
後來去公司實習,遇到的第一個項目就是要使用ESFramework通信框架,當我第一眼看到了開發手冊上的如下句子時,我就知道,春天不會再來了!
客戶端通過調用ESPlus.Application.Basic.Passive.IBasicOutter介面對應的方法以及預定其相關的事件,就可以完成基礎功能或得到相關狀態改變通知。我們可以從 ESPlus.Rapid.IRapidPassiveEngine暴露的BasicOutter屬性來獲取IBasicOutter引用。
介面、預定、事件、暴露、屬性、引用,你們一個一個來,我還大概能明白,你們群起而攻之,我便委地如泥了!
重載的Query方法(帶有CallbackHandler參數的)在發送請求信息後,不會阻塞而繼續向下執行,而框架在收到對應的回複信息時,會回調CallbackHandler委託指向的方法。由於調用線程與回復回調的線程不是同一個線程,所以稱這種機製為回復非同步調用。
再當我看到「重載」、看到「阻塞」時,我徹底憤怒了!而緊接著映入眼帘的「委託」、「回調」更使我出離憤怒!最後「線程」、「非同步」更令我萬念俱滅,心如死灰!
從此,我便以一種菜得摳腳的姿態狼狽不堪地行走在險象環生的程序世界裡。莫非是寒更雨歇,葬花天氣,獵獵北風襲單衣;荒原寂寂,遠聽猿啼,近看寒鴉起;鬼影幢幢,步步驚心,不知今夕何夕。
好多次我都想,別瞎費勁了,你不是寫程序的料!真正適合寫程序的人根本就不可能是這個樣子!
於是乎放棄。可是不寫程序又能幹嘛呢?好歹讀了四年大學,何況拉弓沒有回頭箭。還是要頂風逆水雄心在,不負人民養育情!
終於,苦水的浸泡痛徹了肌膚,磨練了身心,同時也澆灌出了涅槃之花!
某天我突然發現,那些原本看來佶屈聱牙的技術文檔如今看來卻直白如話,那些原本晦澀難懂的語法如今卻能夠熟練運用,那些原本看都看不懂的源碼如今也能夠在自己指下流淌,實習之前我連循環語句都寫不對,如今卻也能用ESFramework和OMCS等框架開發出像樣的網路通信應用。
二.議論
更重要的是,從當初的不喜歡、不擅長、不自信,到而今能夠懷揣著一顆歡喜之心來寫程序,能夠以樂在其中的心緒來開啟自己的程序人生,這不僅是我收穫到的莫大財富,更是我把握住的莫大幸福!
胡適先生的名言:「怕什麼真理無窮,進一寸有一寸的歡喜。」真理無窮並不可怕,因為我們在每一寸的前進中始終獲得歡喜。編程之路並非坦途,我們也並非天賦異稟,然而那個最幸福的人,並非是玩轉代碼的編程高手,也並非是億萬家資的IT精英,而是那個在流年中始終以歡喜之心書寫代碼,又通過書寫代碼恆久再獲歡喜之人!
常言道:「男怕入錯行,女怕嫁錯郎」。嫁郎要嫁有情郎——有情飲水飽,無情龍肉都無味!入行也是一樣。入了所愛之行,舉手投足皆得歡喜;入了所憎之行,坐卧立行儘是苦悲!嫁郎的幸福不在於嫁郎所獲得的富貴榮華,其根本在於郎本身。那些通過嫁郎以獲取外在利益的女子,她們充其量只是獲得了生意上的成功,而根本沒有獲得婚姻本身的幸福,而這何嘗不是一種買櫝還珠?同樣,那些以工作作為純粹手段的人,他們也從來沒有獲得過工作本身的幸福快樂。
由此看來,我想恐怕對於絕大多數的程序員而言——你不是真正的快樂!
所有程序員恐怕可以粗略的劃分為這五種狀態:
1.不愛,但是迫於生計
2.無感,反正亦步亦趨
3.熱愛,但卻身心俱疲
4.狂熱,打了雞血一般
5.歡喜,畢竟樂在其中
你是屬於哪一種呢?
如果要我來選,我一定會選5,因為唯其如此才能獲得程序人生的個中真昧,才能擁有彼此交融的內在完滿。而其他的幾種狀態在不同程度上都是殘缺的。
也許我們寫程序總是不可避免的為了各種外在的目的,但是寫程序時的那份小確幸的歡喜,卻始終是我們精神飛鳥的棲息地。 正如孔子贊顏回——子曰∶「賢哉回也,一簞食,一瓢飲,在陋巷,人不堪其憂,回也不改其樂 。賢哉回也!」
罷筆時風煙俱凈,但願自己剛剛開啟的程序人生能夠無關風月,寂靜歡喜。
天賦與興趣不是分離的。甚至可以說,興趣是天賦的組成部分。對某個領域問題的獨到理解掌管方向與進度,而興趣掌管獎賞與激勵。
天賦只可以決定你的高度,而興趣努力可以決定你是否成功
天賦的高低決定你的速度和高度,興趣決定你的堅韌度,努力決定你的持久度
三者獨佔其二,就足以讓你在程序員這個行業中很好的立足了但是如果想達到大牛的高低,三者都不能或缺,至少不能拖後腿!所謂的天賦是來源於所謂的興趣,1%的興趣固然很重要,但是光有100%的努力也是不行,沒有興趣就是白搭。興趣可以讓自己不僅僅是程序員。
所謂天賦,其實是一個過去所有知識積累的總和,他構築的是你進一步學習新知識的基礎。短期作用天賦重要,長期作用興趣和努力更重要。
但是努力不夠,還要掌握方法技巧,也就是提高效率。一般被稱為某方面有天賦的人通常在這個方面有較好的基礎和較好的學習技巧,同樣花費一天的時間學到的比你更多,看起來「不努力」卻學的很好。所以所謂的努力並不僅僅是花更多的時間。
推薦一本書,或許會有所幫助:《一萬小時天才理論》http://book.douban.com/subject/4726323/天賦。
天賦高學什麼都快,學什麼都容易獲得成就感,然後就會有興趣。至於努力,如果有天賦,競爭力保持在 top 1% 的層次上是不怎麼需要努力的。但要競爭力保持在同行的 top 1% 上努力還是很重要的,不過這也需要引入另一個同樣重要的變數:運氣。PS:所謂的競爭力,最後還是可以量化到賺的錢的多寡來衡量,至少,這是一個非常重要的指標。曾經有個同事,稱之為B吧,剛認識他的時候感覺他反應很慢,對事情的理解不如我周圍的同學
然而B的技術水平卻比周圍一半多的同學都要強,他是上海大學的,我是上海交通大學的第一次看到這孩子的github時候只能用慚愧兩個字形容自己的心情B是愛著這個行當的,不斷努力,堅持著寫自己的項目,堅持學習技術
從天賦方面,我相信周圍同學多數都是比他強的,不過技術上來說大概是反過來的吧不浪費時間在無聊的事情上,不"娛樂至死",多學習,天賦一般的人也可以得到比較高的評價
PS:說的容易做起來還是蠻難的 : p這個問題我一直想問,我喜歡編程,學的專業與編程也很相關,但我總覺得自己的天賦並不在這個上面。
興趣是第一重要的,有興趣至少能讓你把一件事情持續的做下去。
程序員也分很多種吧,研究演算法的可能確實需要些天賦,可是做應用的,也許真是興趣更重要呢。
應該是興趣,如果你讓牛頓去跳芭蕾舞,讓愛因斯坦去唱古典歌劇,那是多悲劇的事?
沒有興趣,沒有些許的天賦,程序的火花難以迸發而出。於是乎,努力的結果就是不編寫出太蹩腳,運行效率尚可的程序就不錯了。難以成為編程真正的大手。所以,天賦的作用是決定能否成為程序高手的關鍵吧。、
最重要是方向,其次是堅持。
經過幾個五年,有天賦沒有堅持也有可能已經回復平淡;
有努力方向不對也有可能正負得零;
只要對的一個方向堅持走下去,聚沙成塔。
推薦閱讀:
※為什麼c++程序中#define max 5000000 太大不能運行?
※為什麼有些人會覺得一個總是讓程序員加班的公司是可能以工程文化為中心的呢?
※為什麼易語言老是被人家說的一無是處?
※如何編程產生泊松分布的隨機數?
※你在學習 C++ 的過程中遇到的最大的困難是什麼?