专注和游离
轉載自池建強的博客:http://macshuo.com/?p=1307
該專注的時候,你游離了;該游離的時候,你專注了。
最近一些讀者的提問,包括與團隊成員的交流,都涉及到了一個問題,如何才能快速的提升自己的能力,或者說為什么我提升的這么慢呢?
這里面其實存在一個誤區,世界上根本不存在快速提升的神奇方法,什么21天學通 Linux C 編程,7天自學 Java 語言,17天搞定 GRE 單詞,等等,都特么是騙人的。小時候書在我的眼中非常神圣,看到類似的標題我砰然心動,仿佛看到初戀情人,還沒入手就開始幻想自己21天之后拔劍四顧滿腹經綸的嘴臉。結果買了書之后,一個月發現自己只看了第一章節,而且每次都看第一章節,所以別提學通和搞定了,門都沒入。
根本沒有什么快速的提升,如果你在某段時間覺得自己提升得很快,那是因為你身邊的大部分人成長得更慢,或者,他們安于現狀,沒有提升。提升從來穩定的,持續的,漸進的。在大部分領域,圍棋、繪畫、寫作、編程、球類等,沒有十年的持續學習和實踐,基本上很難達到專家級別的水準。
既然明白了這一點,我們「不期速成,日拱一卒」就好了嘛,每天堅持在某個領域學習和實踐兩小時,那成功不就指日可待了么?有這么簡單就好了!事實上,在這個到處充滿誘惑力和信息碎片滿天飛的時代,能夠做到「日拱一卒」的人,少之又少。基本上,由于人的天性,大部分人不可能像苦行僧那樣去學習和生活,我們常常是在需要專注的時候,游走在朋友圈、微博、美劇、游戲和各種無聊的垃圾信息之間;在需要游離放松的時候,我們卻極度專注,打游戲或刷新朋友圈到深夜或凌晨。
一小部分天才和異人可以非常順暢的在專注和游離狀態之間切換,你看他們在刷微信,其實他們在閱讀,你看他們在看美劇,其實他們在編程,這些人具備異乎常人的多線程處理能力,而且能做到「品學兼優」,玩得開心,學得高興。
這叫天賦,我們普通人是學不了的。我直到三十歲以后,才慢慢找到了適合自己的方法和平衡點。等我搞明白了這一切之后,十年的差距已經過去了,想一想還是挺悲哀的。為了給自己打氣,我就對自己說,你們這些少年天才也就那么回事,不就是比我們早十年想明白了很多事嗎?不就是我們還在摸索的時候你們已經還是奔跑了嗎?跑得再快能有劉翔快嗎?能有喬布斯和蓋茨看的遠嗎?也就那么回事,都不是神,道哥餓幾頓眼里照樣沒神,說話照樣有氣無力!我們當北京的程序員,杭州的產品經理,野百合一樣有春天!
有了這樣的信念,我得以堅強的活到了今天。我的方法很簡單,就是把每天晚上完整的時間歸一堆,然后用刀切成兩半,一半用來專注,一半用來游離。
狀態好的時候我就會先專注的干一些事情,這段時間里我會屏蔽掉電話、微信、微博、美劇等一切干擾噪聲,把相對完整的時間留給寫作、編程、讀書,或專心研究點什么,堅持一段時間,你的效率就會大大提升,你會發現自己的提升好像比以前快了那么一點點。
狀態不好的時候,我就會處于游離的場景里,刷朋友圈,看微博和推特,看訂閱的 Blog,讀一些閑書,看美劇,拓展視野,尋找信息,徹底放松。這段時間就是用來消耗的,同時尋找有價值的東西,記下來,留在專注的階段細細閱讀和理解。
專注和游離狀態交替進行,對我來說,似乎是最好的選擇。一旦專注,你的效率就會比別人高那么一點點。一旦游離,你的視野就會比別人廣那么一點點。假以時日,你的高度和廣度上就會大大超越常人,把那些稀里糊涂過日子的人拋在腦后,同時可以遠遠的看見那些天才們的后腦勺或腳底板,這叫大器晚成。
寫到這我想起了著名程序員、計算機博士徐宥翻譯的一篇文章,叫做「十年學會程序設計」,結果去翻他的博客,居然不能訪問了,頗為傷感。還好我摘錄過他的一些文字,分享給大家。
關于編程上一些建議:
1、對編程產生感興趣并因為樂趣而寫程序。確信你自始至終都能樂在其中,這樣你才愿意將十年光陰投入編程事業.
2、與其他程序員交流;閱讀別人的代碼。這比任何書任何培訓都重要。
3、不斷地編寫。 最好的學習方法是在實踐中學習 。從技術角度說,「在特定領域的個人最高效率并不因為經驗夠多就會自動獲得;但若有意識的通過努力去提升經驗,個人效率會變高」而 「高效的學習一般需要明確的任務和因人而異的適當難度,以及及時的反饋和重復或者修正錯誤的機會」(20~21頁)Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life (實踐中認知:心智、數學與日常文化) 是這個觀點的一本有趣參考書籍。
4、跟其他程序員一起完成項目。在一些項目中成為最好的程序員;在一些中則充當最差的一個。當你是最佳的,你要測試自己領導項目的能力,并以你的能力鼓勵他人。當你是最差的,要看看高手做些什么,他們不喜歡做什么 (因為他們會叫你去幫他們做).
5、接手別的程序員完成項目。全心投入并理解別人的程序。當原作者不在的時候,看看在理解與修改時有什么要注意的。想想如何設計你的程序使得后來維護的人容易上手。
6、至少學會六門編程語言。一種要支持類/對象(class abstractions)的語言,如Java或C++;一種函數式(functional abstraction)語言,如 LISP 或 ML;一種支持語法抽象(syntactic abstraction) 的語言 如 LISP;一種聲明式語言,如Prolog或 C++模版;一種支持協同式(coroutines)編程,如 Icon 或 Scheme;還有一種支持并行(parallelism)的語言,如 Sisal。
7、并具備良好的判斷力,也別老糾纏在語言標準化上。
至少要六門編程語言,想一想自己接觸了幾門,熟悉了什么,掌握了多少,共勉!
總結
- 上一篇: 给年轻程序员的话
- 下一篇: 为何大公司看起来都那么糟?