更多精彩內容,請關注微信公眾號:后端技術小屋
如果把大腦比作一個CPU, 我們日常的作業、生活、學習類似CPU處理前臺任務,而暗時間就像CPU處理后臺任務,雖然看不見也沒有產生直接成果,但是如果一個人能充分利用這些時間進行思考、消化平時所讀所看,便能使得認識更系統、全面、深入,也能無形之中擁有更多的時間,
這就是《暗時間》這本書標題的由來,作者劉未鵬,微軟程式員,除了老本行計算機外,作者對心理學、認知科學、時間管理等領域有著濃厚的興趣,在春節回家的火車上一口氣看完了這本書,書中關于如何讀書、學習、思考、寫作、競爭都有一些實操性很強的總結,結合自己這些年走過的彎路,閱讀程序中竟有相見恨晚之感,本文為閱讀《暗時間》的讀書筆記,
思考
有人用 10 年才能領悟一個道理,因為他們是被動領悟——只有在現實撞到他臉上的時候才感到疼,疼完了之后還是不記得時時提醒自己,結果很快時過境遷拋之腦后,等到第二次遇到同一個坑的時候早忘了曾經跌過跟頭了,像這樣的效率,除非天天摔坑里,否則遺忘的效率總是大過吃虧長的記性,
專注
“投入時間”這個說法本身就是荒唐的,實際投入的是時間和效率的乘積,
任務切換的暗時間看似非常不明顯,甚至很多人認為“多任務”是件很好的事情(有時候的確是),但榷訓月累起來就會發現,消耗在切換上的時間越來越多,
迅速進入狀態的能力是可以鍛煉的,根據我個人的經驗,至少可以縮短到 3-5 分鐘,
能夠迅速進入專注狀態,以及能夠長期保持專注狀態,是高效學習的兩個最重要習慣,
規劃
善于規劃的人,會將目標分割成一個個的里程碑,再將里程碑分割成 TODO 串列
如果你對整個目標的幾個重大步驟有清晰的界定,能夠對每個步驟的耗時作出靠譜的上界估計,你就不會被不確定的未來,不確定的時間投入感到恐懼,就不會被這種不確定感壓迫到過早退出,
興趣遍地都是,專注和持之以恒才是真正稀缺的
靠專業技能的成功是最具可復制性的
一生的知識積累,自學的起碼占90%
作為程式員如果沒有查過 wikipedia ,沒有看過幾本原版電子書,沒有在國內外主要郵件串列里面提過問題吵過架,沒有用技術博客記錄學習的獨特體會,沒有訂閱技術牛人們的博客,怎么好意思說身在這個行業呢?
如何有效地記憶與學習
用自己的話復述一遍之后理解得更深刻
我們在從既有經驗中總結知識的時候,應利用適當的抽象來得出適用范圍更廣的知識(而不僅僅是一個蘿卜一個坑);另一方面,在遇到新問題的時候,同樣應該對問題進行抽象,觸及其本質,去除不相干因素避免干擾,從而有效提取之前抽象出來的知識,
- 養成習慣,經常主動回顧一段時間學到的東西(老生長談了)
- 創造回憶的機會:
2.1) 經常與別人討論,或者講給別人聽,
2.2) 整理筆記:經常整理你的筆記——如果你沒有做筆記,現在就開始
2.3) 書寫:將一段時間學習的知識按照一個主題系統地“串”起來大大地豐富了知識之間的關聯,平添無數提取線索 - 聯系 / 比較自身的經歷:將別人的經歷或者通過閱讀和觀察得來的經歷和自身的經歷進行比較,常常能夠得到非常有價值的結論,
人類大腦最杰出的能力之一就是強大的歸納推理( inductive reasoning ),或者我們常說的:泛化、推廣、舉一反三、抽象,
觀察、閱讀,并別忘帶著你的理性去審視(包括本文),弄清娛樂是娛樂,知識是知識,如果你想真正得到一些知識,最好過濾一下你的資訊,
學習密度與專注力
盡管學習時間很長,但學習密度極低,效果也不會好
如果一個人要靠自制力去強迫自己不受干擾,那只能說還是尋常人 (mediocre) ,真正的效率源自于內心對一個東西強烈的熱忱,也就是我們俗稱的追求
“思維體力”的概念,所謂思維體力就是能夠持續集中注意力的時間,注意力造就非凡專家,天才來源于長期的專注的訓練,
《高效能人士的七個習慣》里面提到的第四代時間管理法則,即要事第一(指重要但不緊迫的事,即長遠積累會對你今后人生產生重大影響的事)法則就非常有效,而對于不重要的事情讓它們自己來找你就可以了,即中斷式被動關注,后者可以防止空轉輪詢浪費的時間,從而把最集中注意力的時間利用在最重要的事情上,
高效學習與思考
- Google&Wiki (遇到問題做的第一件事情,也是學習某個東西做功課( homework )最先用到的東西,
- 看書挑剔,只看經典,如何選擇經典,可以到網上做做功課,看看評價,綜合分析一下,
- 做讀書筆記,一是將自己閱讀的時候的思考(包括閃念)總結下來,二是將書中的好例子摘抄下來,(這個習慣是一年前才養成的,發現受益極大,)
- 感到焦慮的時候不妨思考吧,甚至完全可以去理性分析和思考導致焦慮的問題本身,將其拆解,分析來源,在不知不覺中,大腦的作業重心就從情緒模塊轉向了推理模塊了,而且這思考也可能順帶更有效地解決了導致焦慮的問題呢 ??
- 重要的事情優先
- 重要的事情營造比較大的時間塊來完成,比如一本好書,或者一個重要的知識點,最好不要切得太瑣碎了看,否則看了后面忘了前面,不利于知識的組織 & 聯系,
- 善于利用小塊時間
話說回來,為什么說起來容易做起來難,是因為“說”只是理性上承認正確,并沒有考慮到我們每個人大腦中居住的那個非理性自我,這個自我以強大的情緒力量為動機,以習慣為己任,每時每刻都驅使著我們的行為,
時間管理
能否講出來是判斷是否真正理解的最佳辦法
養成反駁自己的想法的習慣:在有一個想法的時候,習慣性地去反駁它,問自己“這個難道就一定成立嗎?”、“有沒有反例或例外?”、“果真如此嗎?”之類的問題,
大量的新技術其實只是一層皮,背后的支撐技術其實都是十來年不變的東西,底層知識永遠都不過時,演算法資料結構永遠都不過時,基本的程式設計理論永遠都不過時,良好的編碼習慣永遠都不過時,分析問題和解決問題的能力永遠都不過時,強大的學習能力和旺盛的求知欲永遠都不過時,你大腦的思維方式永遠都不過時
重視積累的強大力量,萬事提前準備:計劃訂長一點,自然就可以多獲得準備的時間,設想你若干年后會在做什么事情,需要哪些技能,現在就開始準備,
你的時間就是你的資源,你投入這些資源來掌握知識,所以到呼叫來掌握哪些知識是一個很重要的問題,僅僅遵循興趣是不夠的,人會對很多次要的東西產生興趣,并一頭鉆進去浪費好多時間,所以判斷一個東西值不值得學習是很重要的,
有時間嗎?總結總結最近得到的新知識吧,一般來說,我在一段時間內學習的一些東西總是會在這段時間內一直在腦子里打轉,一有時間空隙(譬如走路,吃飯)它們就會自己蹦出來,促使我去進一步思考和總結,
有時間嗎?看本書吧,(傳統的)閱讀和思考永遠優于所謂的在互聯網上汲取新知識,后者往往淺表、不系統、乃至根本沒價值
閱讀方法
學習一個東西之前,首先在大腦中積累充分的“疑惑感”,即弄清面臨的問題到底是什么,在瀏覽方法本身之前,最好先使勁問問自己能想到什么方法,一個公認的事實是,你對問題的疑惑越大,在之前做的自己的思考越多,當看到解答之后印象就越深刻
- 趁著對一件事情有熱情的時候,一股腦兒把萬事開頭那個最難的階段熬過去,
- 根據主題來查閱資料,而不是根據資料來查閱主題,
- 好資料,壞資料,好資料的特點:從問題出發;重點介紹方法背后的理念( rationale ),注重直觀解釋,而不是方法的技術細節;壞資料的特點是好資料的反面:上來就講方法細節,仿佛某方法是從天上掉下來的,他們往往這樣寫“我們定義
- 有選擇地閱讀,
- 為什么看不懂?如果看不懂一個知識,一般有如下幾個可能的原因: 1) 你看得不夠使勁;2) 其中涉及到了你不懂的概念,這是技術性的不理解,這種情況就需要 Cross Reference , 3) 作者講述的順序不對,你接著往下看,也許看到后面就明白了前面的了
- 如何在閱讀之前就能獲得對一本書質量的大致評估,1) 看作者,牛作者寫的書一般都不錯,2) 看目錄和簡介 3)看 Amazon 上的評價 4) 看樣章, Amazon 上一般都可以隨機瀏覽一些章節的
知識結構
把知識分為 essential 的和 non-essential 的,對于前者采取提前深入掌握牢靠的辦法,對于后者采取待用到的時刻 RTM (Read the manual) 方法(用本),
對程式員來說,硬體體系結構是 essential 的,作業系統的一些重要的實作機制是 essential 的,主流編程范式( OO 、 FP )是為了滿足什么需求出現的(出現是為了解決什么問題),是怎么解決的,自身又引入了哪些新的問題,從而適用哪些場景)
《 Computer Systems: A Programmer’s Perspective 》就是為此目的,針對程式員的需求總結出那些 essential knowledge 的好書,
再好的分析能力也并不是每個問題都能分析出該用哪些知識然后再去查手冊的,很多時候是在工具和問題之間比較,聯想,試探性的拼湊來解決問題;這就使得一個好的既有知識基變得至關重要,如果你不知道某個工具的存在,遇到問題的時候是很難想到需要使用這么樣一個工具的, essential knowldge 就是使用最為廣泛的工具
我在之前的 part 里面也提到我在學習新知識的時候常常問自己三個問題:該知識的(體系或層次)結構是什么、本質是什么、第一原則是什么,另外還有一些我認為是 essential knowledge 的例子:分析問題解決問題的思維方法(這個東西很難讀一兩本書就掌握,需要很長時間的鍛煉和反思)、判斷與決策的方法(生活中需要進行判斷與決策的地方遠遠多于我們的想象)
學習一個小領域的時候,時時把“最終能夠寫出一篇漂亮的 Survey”放在大腦中提醒自己
我在南大的七年
我在博客上總結自己學習編程中走過的彎路,孟巖先生說到,是不是彎路,不是那么容易界定的,
我想,雖然有很多人本科就明白自己想做什么,我多花了兩年多,總還不算太晚,
為什么一定要親身經歷了之后才能明白?
- 切身體驗,親身經歷一個負性事件帶來的情緒記憶要比看著或聽說別人遭受一個同樣的事件所感受到的強烈得多,形成的負性條件反射也遠遠更持久,
- 別人口中的故事,別人口中的故事也許只是事情的一個方面,難免受到他們自己觀念的影響而產生偏見,
- 為什么,別人在告訴你一個道理的時候往往只能告訴你怎么 (how) 做,而難以說清為什么 (why) 要這么做,遑論“為什么一定 (have to) 要這么做”了
- 世界是復雜的,更何況,很多時候人們根本無法確切地向你保證 A 選項一定優于 B 選項:
- 情緒對照,經歷了失敗之后,我們在做“正確”的事情的時候便會覺得更理直氣壯,如果沒有經歷失敗后的糟糕記憶,我們就算理性地認識到目前的做法是更合適的,也很難從情緒上強烈地感受到這么做的“正確感”
這個世界有太多因素是不確定的,除了自己的因素比較可控之外,外界的機遇因素幾乎完全不是能夠控制或預測的,我們最多只能做好頭腦準備,盡量不錯失機遇
如果我們先入為主地不想聽取別人的意見,就很容易自己說服(欺騙)自己說“情況不一樣,所以道理不適用”(而實際上到底哪些情況不一樣,為什么道理不適用,是不是真的不適用,我們根本就不去深究了)
如何解決這個“知識經驗跨情境轉移失敗”的問題?除了多多反省觀察自己之外,在面對問題的時候多抽象其本質也是一個有力的辦法
從資訊收集者的角度來說,世界上沒有成功或失敗,失敗的事情中揭露出來的資訊一點也不比成功事件中的資訊少,或許往往還能得到更多的東西,
貪婪、嫉妒、短視、投機,這些天性也許在遠古社會曾經成功地讓我們的祖先占取了生存繁殖優勢,然而現代社會的情境已經改變,分享、合作、交流、長遠、誠實,這些才是在現代社會獲得成就的方法
事實上,我們的直覺的確有不少時候是很靈的(《 Blink 》、《 Gut Feelings 》),但也有不少時候是失靈的(前文已經有例子了),正確的做法不是一概而論地聽取直覺的意見或者一概而論地不聽取,而是將它當成一個啟發式的判斷,然后利用自己的理性大腦對其進行進一步的客觀的、邏輯的檢驗( Critical Thinking )
普通人從自己的錯誤中學習,聰明人從別人的錯誤中學習,人類最強大的另一個能力則是歸納和推理—— 我們在大腦中走得越遠,在現實中就走得越穩,我們在大腦中失敗的次數越多,在現實中失敗的次數就越少
事實上,現代社會人最重要的能力之一就是能否從別人的錯誤中學習,往往是這類人能夠迅速走在別人的前面,在別人跌倒的地方跳過去,如果我們事必躬親,那么歷史絕對不會進步,我們只會每個人從生下來開始都將別人犯過的錯誤再犯一遍,將別人趟過的泥潭再趟一遍,陽光底下就真的沒有新鮮事了,歷史就真的永遠重復他自己了,然而歷史告訴我們絕非如此,雖然很多人都會甚至需要自己犯一犯某些錯誤,但同樣也有很多人能夠在別人的錯誤中學習,
理智與情感
社會心理學研究發現,我們會對那些對自己有利的證據不加細查,而對那些對自己不利的證據則死摳爛打揪住一點小辮子就不放;同樣,我們還會傾向于勤勞收集有利證據,并忽視不利證據,事實是,當我們內心的天平早已經傾斜了之后,看來荒謬無比的理由也變得光輝燦爛,別人很有道理的反駁也能被摳出“致命”漏洞,
Artemus Ward 曾經說過:并不是那些我們不知道的事情讓我們陷入麻煩,而是那些我們認定自己知道,卻實際上是錯誤的知識,讓我們陷入麻煩
書寫是為了更好的思考 書寫是對思維的備忘: 書寫是對思維的快取:書寫是與自己的對話
為什么你應該(從現在開始就)寫博客
- 能夠交到很多志同道合的朋友,我
- 書寫是為了更好的思考,
- “教”是最好的“學”,如果一件事情你不能講清楚,十有八九你還沒有完全理解,絕大多數人應該都知道在程式員行業面試官經常要求你講解一個東西給他聽
- 討論是絕佳的反思
- 一個長期的價值博客是一份很好的簡歷,
就像那句經常被人傳閱的話:只做你最感興趣的事情,錢會隨之而來
問題的困難程度不在于想通了之后還覺得有多難,而在于從你覺得它難到你覺得它簡單需要耗費多少思維體力,你耗費的時間越長,說明有越多的人最侄訓是沒有想明白
我不想與我不能
簡而言之自利歸因就是把一件事情發生的原因歸結為對自己有利的那種情況,
俗語有謀事在人,成事在天的說法,其實這話說的是,我們的努力是為了增大結果發生的幾率,而不是為了那個確定的結果
無論外因如何,只要不是到了人力所不能抗的地步,發揮一下自己的自由意志和主觀能動性,總能獲得同樣好的結果
困難的路越走越容易,容易的路越走越難,
什么才是你的不可替代性和核心競爭力
這個行業里擁擠著上百萬聰明人,彼此之間真正的不同在哪里?不在于你學的是什么技術,學得多深, IQ 多少,而在于你身上有別人沒有的獨特的個性、背景、知識和經驗的組合
- 專業領域技能:成為一個專業領域的專家,你的專業技能越強,在這個領域的不可替代性就越高,這個自是不用多說的,
- 跨領域的技能:解決問題的能力,創新思維,判斷與決策能力,Critical-Thinking ,表達溝通能力,Open Mind 等等,
- 學習能力:嚴格來說學習能力也屬于跨領域的技能,但由于實在太重要,并且跨任何領域,所以獨立出來,如何培養學習能力,到目前為止我所知道的最有效的辦法就是持續學習和思考新知識,
- 性格要素:嚴格來說這也屬于跨領域技能,理由同上,一些我相信很重要的性格要素包括:專注、持之以恒、自省(意識到自己的問題所在的能力,這是改進自身的大前提)、好奇心、自信、謙卑(自信和謙卑是不悖的,前者是相信別人能夠做到的自己也能夠做到,后者是不要總認為自己確信正確的就一定是正確的,Keep an open mind )等等,
推薦閱讀
- 30分鐘入門Vim
- 30分鐘入門GDB
- STL原始碼分析--vector
- zookeeper client原理總結
- redis實作分布式鎖
- 推薦幾個好用的效率神器
- C/C++關鍵字之restrict
- 現代C++之右值語意
- Python亂碼九問
- Linux Shell腳本攻略讀書筆記
更多精彩內容,請掃碼關注微信公眾號:后端技術小屋,如果覺得文章對你有幫助的話,請多多分享、轉發、在看,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264398.html
標籤:其他

