九月份總結與十月份計劃
今天是24號。剛好是中秋的這一天。
這個月那,已經在pad上,表達了好多次對自己的失望。可是這些東西,都是個人隱私,不能發出來,是麼?
在過去的這24天裡,在技術方面,我只做了兩件事。一件是 跟著張宇的高數視訊學習高數
,一件是 學習Tensorflow
。其實後面的壓根就沒做,是看了一本書,叫做《Hands-On Machine Learning with Scikit-Learn and TensorFlow》,看了前半部分跟Scikit-Learn相關的各種演算法的實現。壓根就沒看TensorFlow相關的部分。
在中秋的這三天假裡,過去的兩天,我甚至都不知道自己做了什麼。跟死肥宅一樣,呆在家裡,也不知道出去走走。
花了十幾分鍾,大體翻閱了一遍高數筆記。看了《高數十八講》的第一講,翻了一遍《一萬小時定律》這本書。看了一個極光推送的架構推進的演講。就做了這麼幾件事。
其餘的時間,通通都是遊戲,看遊戲或者電影直播。
眼看著還有六天就要過去這個月了,自己制定的計劃,才完成了那麼一點點。
不過,有一個很大的收穫。我意識到,自己必須慢下來了。
在過去的半年時間裡,我總是追求速度,總是想光速的做完一件事。並且幻想著,能達到跟鑽研十幾年,幾十年的學者,一樣的水平。
痴人說夢,不是麼?就像大躍進一樣。
過去,我確實制定了很多計劃。不管是什麼樣的書,都要一週搞定。不管是什麼原始碼,都要在半個月甚至是更少的時間裡讀完。不管是什麼事情,我都想盡快把它完成。
可是,問題在於,時間上,我確實做到了。但是,質量上呢?
我回想學過的內容,發現我並記不得什麼。讀過的原始碼,還好有部分寫了解析,後來看起來才有點印象。讀過的書籍,只是走馬觀花一般。
我懷念去年的這個時候。去年的這個時候,為了找工作,我把一本演算法和資料結構的書籍,從頭到尾讀了一遍,並且書中幾百道練習題,都有過認真思考。當時花了也就十天左右。這麼快,是因為以前我為了找工作也做過《劍指Offer》這本書。
去年的這個時候,我在研究JVM,研究Java併發,研究Java集合的原始碼。這個時候,我學會了讀位元組碼,理解了Java記憶體模型,GC機制,併發機制等。我把很多一部分,講給一位朋友聽。這時候,我收穫了對這部分知識深刻的記憶。
去年的這個時候,我在研究分散式一致性演算法。為了理解Paxos,Raft和Zab,我花了不少時間,閱讀狀態機的論文,閱讀Lamport大神的論文,閱讀Raft和Zab的論文,閱讀一切跟它們相關的論文。為了徹底搞懂Zab,我還去認真研究了一遍ZooKeeper的原始碼,當然,主要是Zab的部分。為了搞懂Raft,我讀了一部分Etcd的原始碼。前前後後花了一個多月的時間。我懷念這段時光,因為我這時候,真的是在學習。雖然最後Paxos還是沒有搞懂,因為沒有找到它的開源實現。
去年的這個時候,我想參照Lighttpd寫一個HTTP伺服器。好像是為了鞏固Golang。不過,在閱讀了部分Lighttpd的原始碼以後,就失去了興趣。因為覺得只是RFC規範來解析而已,沒什麼意思。
去年的這個時候,我在準備面試。在碰到一個關於索引的題目時,由於不清楚為什麼答案會是那個樣子,就想去理解索引的原理。所以,我閱讀了《High Performance SQL/">MySQL》中,跟索引相關的部分,在徹底理解了以後,寫成了一篇很長的Blog,並講給我的幾位組員聽,讓她們也理解了索引背後的原理。
去年的這個時候,我懷著熱血,在探索。如新生嬰兒一般,懷著對世界的好奇,碰碰這個,碰碰那個,探索奇妙有趣的世界。
而去年十一月(還是十二月,記不清了),找到工作,到了上海以後,我就開始變了。我開始追求速度,並越來越不關心質量。在4月20號回學校以前,倒是也還好,雖然追求速度,但是質量也關心質量。這段時間,我還清楚地知道,我為什麼要學習一個東西,我為什麼要看一本書,我到底是哪裡不清楚,我想搞懂什麼。
4月20號以前,我閱讀了HDFS和YARN的原始碼。雖然花的時間也不長,但是我確實畫了幾十頁的流程圖,寫了幾十頁的筆記,雖然並沒有全部都放到簡書上,好多一部分甚至都被我丟掉了。但是,我確實是在學習。
而從七月份回來以後,經過了兩個月的休息,我發現我越來越浮躁,越來越沉不住氣。我還是追求速度,我還是想光速般地做完每一件事。但是,跟以前不同的是,這次,我並沒有關注質量。我甚至都不知道我為什麼學習某樣東西。
學習線性代數,學習概率論,是為了學習機器學習。但是,我為什麼要學習機器學習?記得剛開始,萌生學習機器學習的念頭時,似乎是從眾心理。只是為了看看這到底是個什麼東西,好玩不。在學習機器學習的過程中,發現要用到高數的東西,比如方向導數和梯度,以及拉格朗日乘數法等內容,才去學習的高數。
問題就在這,我學習高數,是照著張宇的考研視訊,全部學完的。可是,其實我最急切需要的是,拉格朗日乘數法,方向導數和梯度,以及凹函式等這些內容。我並不關心泰勒公式,並不關心柯西中值定理,我甚至並不需要關心積分,我只需要在乎微分。
這段時間的學習,我並不清楚自己究竟是哪裡不清楚,並沒有做到對症下藥。我只是全盤接收,並沒有轉化。對於數學,我並沒有做足夠的題目,來沉澱下去。對於機器學習,我並沒有寫blog來用自己的語言,將每個演算法講清楚。
這段時間的狀態,也很不理想。我的鬥志,對技術世界的好奇性,隨著對機器學習的瞭解,被一點點消磨掉。所以才有了過去20幾天沒有做什麼事情。
我也越來越對自己的軟技能著急,越來越焦慮。我發現以前雖然不聰明,但是也還不笨的腦子,越來越遲鈍。我越來越鑽牛角尖,越來越不知道轉彎,越來越不知道如何表達,對應地,也越來越不自信。
我想起了高中的時候,制定的某些榮譽準則。雖然那幾年,我在別人眼裡,都是一個SB,但是那些準則,確實對我的人生,對我的人格,起到了完善的作用。只不過當時年少,總是用理想的眼光來看世界,並沒有注意到,理想跟現實的溝壑。
現在是時候重新制定一份榮譽準則,並熟記於胸了。這次,不會跟以前一樣,浮空看世界了。
這段時間大體瞭解了一下機器學習的內容,是時候選擇幾個自己感興趣的領域了。在學校時,接觸了一下運維,前端,後端,大資料等。其中除了覺得前端有些煩,不喜歡以外,其他的都還好。這段時間對機器學習的瞭解,也發現對機器學習似乎並不是很感冒。主要是目前學習的都是理論,並沒有應用到實處,並沒有做出一個有趣的東西。目前對機器學習的相關的文章,看起來倒不那麼費勁了。
總體看下來,選擇這麼幾個領域:分散式計算,分散式儲存,機器學習。同時對後端,運維也保持一定的關注。
7月份回來以後,由於住的遠了,更重要的原因是,受不了以前那種強度的工作學習,現在週末不去公司了。但是,週末在家,學習效率非常低下。這又是非常焦慮的一點。
其實還不如週末出去走走。可是說實話吶,雖然有一個環遊世界的夢想,但是我並不是很喜歡在城市裡遊覽,我更喜歡的是,田園風光,自然景觀,可能跟我從小生活在農村相關吧。
這就基本上形成了一個死鎖,想多學習一些東西,不想浪費時間,又想出去走走轉轉,換取好的心情,又不喜歡在城市轉,所以出去轉心情也不會好到哪去。該怎麼打破這種死鎖啊。
今晚寫了這麼多,本想吐槽自己,沒想到拆開來看,過去做的事情也並不是一無是處。
依然有很多需要提高的地方,很多也是好幾年來的痛點,弱點。要解決這些毒瘤。
過去兩個月,讀文學作品比較多,讓我甚至一度認為,除了技術書籍,就是文學作品(我把哲學類的書籍,經濟類,旅遊期刊類的統歸為文學)。
然而,這兩天,才突然想起來,還有一種功利性的書籍。就是教人如何完善自己的人格的這種書籍。粗略的翻過幾本,感覺書中的反面教材就是我,手動捂臉--!
為了解決人格弱點,需要多花一些時間來閱讀一下這種書籍,找出來解決方案,並且實踐下去。
今天是20180930,9月份的最後一天。
這幾天,又翻了一遍概率論的內容。發現上文中,我說的我並不需要關注積分,是一個非常嚴重的錯誤。我不僅需要關注積分,而且應當花很多力氣來關注它。因為在概率論中,對連續型的隨機變數的分佈,比如正態分佈,它們的概率密度都是用積分來算的。包括引數估計,假設檢驗等,凡是用到連續型變數的分佈的地方,都需要用到積分。
而連續型隨即變數的分佈,由於中心極限定理的存在,使正態分佈成為最常用的分佈模型。
九月份的計劃。
- 把這兩個月做的全部筆記進行電子化,儲存起來,防止丟失(X)
- 跟著張宇的視訊學習《高等數學》(√)
- 做張宇的高等數學考研資料上的數學題(X)
- 多看幾遍《資料探勘導論》的筆記,並嘗試對自己講解(X)
- 再深入學習假設檢驗,梯度下降等數學知識。在學習完《高等數學》基礎班的課程以後,繼續閱讀《機器學習》(√)
- 學習Tensorflow,嘗試影象識別(√/X)
- 閱讀Spark的原始碼,只包括spark-core,不包括spark-sql, spark-streaming, spark-ml等部分(X)
- 不要忘記閱讀微信公眾號以及InfoQ中比較有深度的文章(√)
- 每週末找一兩個技術演講看一下(√)
- 閱讀《蘇菲的世界》(√)
- 閱讀《理想國》(√/X)
- 去五角場轉一下(X)
- 看《美國動物》這部電影(X)
20號左右,買了一本 《Spark核心設計的藝術》 。想通過這本書來了解一下Spark的實現。然而,讀了書的前200頁,就沒繼續下去。一是因為我把精力轉到了閱讀RDD的論文上,二是晚上的時間我都用來複習概率論的內容了。
因為對spark-core的疑惑點,主要是在RDD如何形成DAG,以及如何執行的比較感興趣。而讀得那部分,主要是介紹Spark內一些比較通用的分散式技術元件。這部分沒什麼新奇的。就轉而閱讀RDD的論文,期待在裡面獲取到答案。然而,RDD的論文,主要就是論述了RDD相對於分散式記憶體系統的優勢,以及相對於MapReduce的優勢,以及一些常見的分散式系統論文中的效能對比等。並沒有找到答案。
閱讀了《蘇菲的世界》,以及《理想國》。蘇菲的世界挺通俗易懂的。做了一些筆記。

滿滿的童心。
而閱讀《理想國》的體驗,就不怎麼好了。《理想國》是柏拉圖寫的,書中借蘇格拉底之口,闡述柏拉圖的觀點。總是覺得,書中的觀點,有問題。所以讀起來非常不舒服。在微信讀書上,我做了很多反駁。依我看,如果按照書中的方式建立一個國家,那麼一定跟《1984》中的大洋國一樣。所以,後半部分索性就不讀了。讀起來感覺就像在吵架一樣。
看了幾部電影:
- 《血觀音》
- 《大佛普拉斯》
這兩部電影,同時獲得了金馬獎。這兩部電影,也形成了鮮明的對比。社會底層的人,窮盡其力氣,努力活下去。而社會頂層的人,則為了自己的利益,費盡心機。
十月份計劃。
- 先搞懂Spark中RDD如何轉換成DAG圖
- 讀完《Spark核心設計的藝術》
- 繼續設計KiVi的RPC模組,測試效能
- 如果還有時間,就設計一致性模組
- 暫停一切機器學習相關方面的學習。數學方面繼續鞏固學習。
等Spark搞懂,並且KiVi完成以後,再繼續進行機器學習相關方面的學習。
慢下腳步,穩打穩紮,步步為營。
用番茄工作法規劃自己的工作和學習。
最重要的是,一定要出去走走!!!!!