寫一年技術文章的心得
November 23, 2017寫了部落格一年 砸了無數小時 念了不下二十本CS相關書籍 差不多可以說一下這一年來的心得體會
本文的重點是鼓勵所有在乎自己職涯發展的工程師寫技術文章
看完effective engineer後 我覺得要分享不應該只是心靈雞湯式的說為什麼應該做什麼事情跟有什麼好處 應該給實質的建議以及如何跨出第一步
先來總結一下
總發文數: 58
總觀看數: 32194
我寫部落格的理由
當初雅虎情況不好想跳槽 除了刷題之外 那陣子準備了很多資料念了很多書 包含system design還有multithread的東西 第一個動機是當時唸完後就覺得這些東西如果不寫起來 下次我準備跳槽的時候大概又要花差不多同樣的時間去唸
第二個動機是我當時在雅虎學到的東西大概不到30%是帶的走的知識(transferrable knowledge) 當我到了一個新的公司環境時 我跟new grad並不會有太大差別
印象深刻的是我在面airbnb的時候的system design我徹底的被電得不成人形 這讓我感覺到了警訊 讓我覺得我在矽谷前一年半待下來 我只專注於公司的工作內容 沒有花太多時間去學習技能 (adjacent-disciplines) 這點我在讀到Effective Engineer的花時間學習新技能才大徹大悟 徹底了解得過且過跟上進認真的差別 才決定做些改變
我什麼都不會要寫什麼
這是讓最多人難起步的理由之一 但我開始寫了之後才知道原來寫部落格或寫書不是你會了之後才寫出來教別人 而是你決定要寫了之後 你才開始必須要去會
所以剛寫部落格的時候 不要在乎有沒有人看 不要在乎你的文筆如何 不要在乎你寫的東西很無聊
只有直到你開始寫了以後 你才會知道 要寫大量文章唯有靠大量的閱讀 沒有輸入是不會有輸出的 等你大量的閱讀之後 你寫的東西就會越來越有內容 就會越來越多人看 文筆就會越來越好
沒有開始是進不了正向循環的迴圈的
可是還是有人會認為 你讀得再猛再厲害 都有其他人比你更猛 何必獻醜和增加丟臉的機會呢 這個問題就要refer到huli大的一個資淺工程師年末的自我省視
這篇文章說到 很多技術的入門應該要是新手來教超級新手 所以不要覺得自己是新手就不寫 新手寫的效果比數年經驗老手還要好 所以我才厚顏無恥只寫了一年的部落格就在鼓勵人家寫部落格 因為我的經驗也許比眾多寫了數年的大神們更為鮮明
寫文章的過程
當你決定要寫一個主題 你會開始找資料去讀 讀了之後好像會了就可以動筆寫 寫一寫又會發現某個地方其實沒有弄懂 然後再去找出為什麼當初要這樣設計 理由是什麼 似懂非懂跟完全懂中間的gap 就需要靠寫作來彌補 如果你不需要寫作的話 中間那塊你就會覺得不懂也沒什麼關係 反正我也沒有要教別人 反正沒有人知道我不懂
這就是 讀懂跟寫出來最大的差別
所以以下才是你寫文章的步驟
1.決定要寫某個主題 最好是可以先公開說要寫哪些主題
2.開始唸書 找資料(覺得自己要認真)
3.資料素材備齊 開始動筆(覺得自己很屌)
4.寫到一半發現某些你以為懂的東西 某些部分沒想通 再回step2(覺得自己很廢)
5.寫完
等到這個loop重複幾次後文章完成 重新讀幾次發現沒什麼問題之後 才發現第一次找完的素材大概是最終用的素材的一半左右 這個時候你就會覺得 好險有決定要寫下來 比只想讀懂多會了好多東西
寫部落格甚至做學問就是一直進入
覺得自己要認真 -> 覺得自己很屌 -> 覺得自己很廢 ->覺得自己要認真 -> …
的循環
寫下來的話 學習步驟是1(234)*5 如果不寫部落格 就是23 你對於那方面的知識就是停留在覺得自己很屌 而且過一陣子忘了之後 又要花一樣長的時間複習
寫文章的壞處
花了你很多時間 沒了
寫文章的好處
1.讓你從似懂非懂變成真懂
2.表達能力的練習
3.演講出書機會
4.讓你再次複習的時候非常省時: 即使是現在 突然問起一些我寫過的文章細節 我都想不起來了 但我只要花不到五分鐘的時間 我就可以想起來當時的學習過程 因為全世界的所有文獻中 自己的筆記是讓你恢復記憶最快的方式 所以任何資訊想要存的久就不能只是存在RAM裡 要存在Disk裡
我認為光是這一點就夠抵掉寫文章的壞處了
5.除了吸收新知識 也是個很好的機會去檢視你之前學過的東西 寫部落格就是把新的資訊跟自己過去的知識與經驗慢慢建立連結
或是說 把遙遠的過去 和遙遠的未來連接在一起
為什麼不寫英文
不可諱言的 第一個理由是用英文寫產出會差很多 而且同樣的主題 很有可能世界上有其他人寫過 寫部落格不是為了告訴世界說我會什麼好棒棒 而是傳播你學到的知識 所以主要客群就是看得懂中文的人
當然有一部分內心是認為如果你真的寫得夠好 會有人主動跟你聯絡 翻譯成英文或其他語言 要是沒有人聯絡你 那就代表你根本就寫得很差 那還不趕快精進技術還花時間自己翻譯自己文章?
最後一個理由 是我相信分享的正面循環會讓整個社群變得更強 每個人吸收過的知識都整理出來分享 之後其他人事半功倍 省下來的時間指數成長 效果會相當驚人
如果今天開始所有台灣開發者 每個禮拜都寫一篇文章 兩年內所有講中文的人瀏覽器都需要一個繁簡互換的extension
如果今天開始所有講中文的每個開發者每個禮拜都寫一篇技術文章 兩年內就是美國人需要學中文來學習技術
挫敗感
我先提前告訴你當你認真努力寫完文章後 你會體會到的失落感 先看完你之後才不會打擊太大悵然若失
你會失落不是因為你寫的文章沒人看 而是你寫得越認真的文章越少人看 花越多時間寫的通常都是難的東西 而越難的東西讀者群就越少
我的部落格中觀看數目最多的文章
1.如何辭職
3.系統設計
並不是說這些文章我寫的不認真 而是相較於其他篇 我進入(234)迴圈的次數相對少 基本上我拿到所有素材後就霹靂啪辣一次寫完了 不像Design Pattern我每個主題都是看了7個左右不同的reference 一次一次的精煉成我的想法 再把它用好懂的方式寫出來
但你主要的成就感來源卻是那些你花了很多時間的深入的技術文章 雖然越深入看得懂的人就越少
所以寫部落格心態要對 是為自己而寫
我在follow的週刊們
介紹一些我固定在訂閱的刊物 我都是直接訂閱到公司信箱 上班等code build的時候看
如果還有什麼推薦的週刊請分享給我 多多益善
我在follow的博客
通常不會是你聽到一個人很有名 然後去follow他 通常都是先訂一些週刊 每個周刊每個禮拜選的文章中挑有興趣的看 看到好的文章後就會自然想看一下作者是誰 多看幾次有印象的 就會想要去看他個人部落格寫的其他文章
以下的部落格是長期讀文章下來 其中幾個我覺得很會寫的博客 不論是內容還是文筆 當然有其他很好的博客只是跟我領域差太多 久而久之就沒在follow
持之以恆是唯一秘訣
在軟技能一書第21章 標題是 “創建大獲成功的博客”(Creating a wildly successful blog) 我是覺得這個標題取得不好 感覺增加了要當部落客的門檻 我認為應該要改成 “創建定期更新的博客”
當你持之以恆的學習 持之以恆的寫作 自然而然會帶著你往對的方向前進
Follow excellence and success will chase you. 三個傻瓜
我的作法建議
想寫一些相關主題的時候 先畫一些大餅 在開始往下寫 不要寫到哪裡公佈到哪裡 自己督促自己的話在遇到小困難後就放棄了 大餅先畫完 你進度落後得時候就會覺得自己很廢 會寫得比較快
決定之後 今天就開始寫吧!
以身作則
我的下一塊大餅就是想要寫一本關於JVM的書 其實對JVM有興趣的客群非常小 因為實際上你並不需要知道JVM是怎麼回事就可以寫Java了 如之前所說 越細節的東西大家越沒有興趣 但明知不可為而為之就是做學問的精神 所以這是我的下一個目標
總結
寫文章不是要證明自己多厲害 而是訓練自己思考 把眾多網路世界的input 轉化成自己能快速度複習的output 存進Disk(Long term memory裡面)
把你的創作分享 如果你有寫錯的地方 會有人跟你說 你會變得更好
如果你已經寫得很好 那你終將建立起你的影響力 變得更好
希望大家看完這篇文章後能有所啟發
大餅畫完 該去揉麵團囉
下一篇: 十分鐘在AWS架好個人部落格