從增查改刪到貢獻開源:個人 2017 年度總結

區區一年的時間足夠發生太多事情。去年的這個時候,我確定不會想到如今的我會在廈門去往杭州參加 D2 的高鐵上寫下這篇總結。回顧 2017,有太多的事情值得記下,這裏謹挑出和前端相關的地方和你們分享吧。前端

小事記

今年年中,我辭掉了畢業後的第一份工做,來到了廈門的這個團隊。這個過程裏的細節不太值得在此提起,不過在過了半年多以後回顧這段經歷時,從中確實能看到一些有趣的東西:jquery

關於離職

上一家公司 X 有着美味的食堂、融洽的團隊和穩定的前景,那麼爲何我選擇在畢業不到一年之際離開呢?當時的我其實並無徹底想清楚,但如今對於『何時應該選擇離職』這個話題,個人理解是,只要考慮清楚下面這三個問題就足夠了:git

  • 你在公司的發展前景好嗎? 雖然這麼說有些自負,但大概在入職三個月轉正的時候,我感受在純粹的前端技術上,已經沒有人可以『指導』我了——潦草的 jQuery 麪條代碼沒有學習價值;沒有人有 Scale Up 前端項目的經驗;調研中的新技術選型,結果仍是早就落伍的老框架……這些技術細節其實都不是什麼問題,但靠譜導師的缺少,使得我做爲新人很難獨立判斷好技術的趨勢和學習的方向。這麼說來,去年那頂『最佳新人』的帽子背後其實仍是挺涼的 🙃
  • 你的發展對公司有價值嗎? 很遺憾,就好像庫克在基因裏就不須要看 AV 同樣,這家標榜着 AI 驅動的技術公司在基因裏其實也並不須要重視前端。做爲例子,我能想到這幾點:
    • 在離開之前,我負責的項目比起和它對標的老項目,減小了一半的代碼量,弱網下加載速度翻了一番——但這有什麼用呢?畫的這幾個破網頁也沒多少人看呀。
    • 我搭了內網的私有 npm 倉庫,在上面發佈了十多個私有依賴——可是它掛了的時候歷來不會有人提起:複製一下 jquery.min.js 不就好了嗎?
    • 離開前的最後一個項目裏,我花了一個月左右從頭實現了一個埋點分析庫,附帶了大量的文檔和測試用例。QA 測試後認爲質量不錯,因而在績效裏多了 100 塊錢做爲獎勵——是的,整整 100 塊人民幣,我很是感動。
  • 你工做得開心嗎? 絕大多數時間還不錯,只不過對 Leader 的吹捧和一幫普通同事之間動輒 x 總、x 神 的互吹式稱呼感到比較尷尬。另外,我感興趣的什麼函數式、什麼編譯原理之類的東西都不是同事們熱衷的談資,他們更喜歡討論股價、房價和掙外快一類的話題。固然了,和家裏人聊這些也挺有趣的,不過和技術同事不能聊技術,多少會有些不合羣的感受吧。最後,一些管理的混亂也讓我不知道對誰負責、向誰彙報,還會有攪屎棍但願爲了項目的控制權來作一些莫名其妙的技術方案……如今回想起來,可能這就是傳說中的辦公室政治吧。

我還記得去廈門面試的那天是我這個『優秀新人』畢業以來第一次請假,那天老東家的大樓還前所未有地停電了——這就是所謂的緣分吧。對於老東家每一位個體層面的同事,我仍是很是尊敬並但願他們過得愈來愈好的。不過我和這個宏觀的羣體,可能不是那麼合適吧。github

關於二線城市

從某種角度說,我來到廈門只是從一座二線城市換到另外一座而已。爲何不選擇互聯網資源集聚的北上廣呢?下面是一點點本身的考量。面試

畢業前我在上海的鵝廠實習了一段時間,雖然做爲區區實習生沒有負責多麼重要的工做,但在光鮮以外,大城市不那麼美好的一面也給了我很深的印象。除了老生常談的住房問題外,漫長的通勤時間是最難以容忍的:天天在班車或地鐵上花費兩小時是一筆巨大的時間成本——天天花一小時學外語都很難堅持了,更況且強制性的兩小時。npm

不過,在前端這個領域裏,幾年內一線城市應當仍然是第一流人才的第一選擇。有人整理了一份 Github 上中國開發者的 Top 1000 排行,在這 1000 人中,城市信息寫着 Beijing / Shanghai / Shenzhen / Hangzhou 的各自有 100 到 200 人,而在其他城市的人數則是數量級地少於這幾個超級城市。做爲例子,這裏面 Xiamen 的人數大約是十幾人。按照目前的趨勢,明年我應該可讓榜單裏 Xiamen 的人數加 1,不過這是在順應歷史的進程嗎?我不知道。編程

技術積累

上面記錄的只是一些我的的變故。而在技術層面,這一年來我仍是作到了很多進步值得分享,正如本文的標題:『從增查改刪到貢獻開源』。前端框架

參與開源

我卻是很早以前就在使用 Github 了,在上面也放了很多玩具級的編譯器、解釋器、模擬器之類的項目。但要真正參與到一個活躍的大型開源項目裏併成爲主要貢獻者之一,這件事我纔剛剛作到。框架

作到這個事情的動機,和咱們團隊項目中用到的富文本編輯器有直接的關係:咱們選擇了定製性很強的 Slate.js 框架,這個框架雖然 star 數量很多(目前已經超過 6k)而且 API 很是強大,但穩定性一直不夠。很快咱們就發現等待上游的更新是不現實的,必須本身動手。在投入一些努力後,我在這個框架的 100+ 貢獻者裏得到了前十的排名,修復了一些關於歷史記錄棧、輸入法和文檔變換 API 的 bug,而且翻譯了一份中文文檔。要說貢獻開源對我的有什麼幫助的話,我體會最深的大概有這幾點吧:編輯器

  • 我瞭解到了正經維護開源項目和往 Github 上扔做業代碼和玩具代碼的區別,明白了一個細分領域最優秀的框架代碼維護方式原來也不過如此。
  • 維護者對 PR 經常會給出詳盡的 Review 意見,這些來自頂級開發者的 Review 能讓人跳出寫業務邏輯的一畝三分地,更完善地考慮代碼質量——雞湯地說,進步的最好方式就是向比本身更優秀的人學習。
  • 直接地和框架做者討論的過程給了我更多的自信。做爲反作用,我在懟人(吵技術架)的時候有把握多了 😈
  • 代碼併入主幹給了我很大的成就感。若是說今年我最滿意的代碼是什麼,應該是這個一行解決 4 個 Issue 的 PR 吧。

去年的這個時候,只有幾個月經驗的我還很是仰望那些向開源項目貢獻各類 PR 的開發者們。而今天我更以爲他們也沒有那麼遙不可及,這應該就是一種進步吧。

博客分享

我一樣在很早以前就開始寫技術博客了,但要說在掘金一類的技術社區上發表專欄,這仍是半年以來纔剛剛開始的。在分享技術的這個方向上,今年的成果仍是挺讓我本身滿意的。

在半年前剛剛開始寫專欄的時候,我對關注者數量仍是沒有任何要求的——我寫我想寫的東西就夠了,並不圖這些虛的東西。不過恰好在今天,掘金上的關注者數量已經突破 3000 人——我沒有網紅的個性,這個數量很是很是多了!我絕對沒有把關注者數量做爲本身的 KPI 指標,但仍是很是感謝你們的承認……😅

而在博客的數量和質量上,今年除了作到了年初所但願的月更,還有一些細微的不一樣:

  • 博客沒有更新任何《XX 入門》和《XX 新手教程》一類的內容。這些動輒上千讚的新手向內容不是我所感興趣的,在可見的將來也不會有,除非介紹咱們團隊造的新輪子。
  • 博客沒有更新任何《XX 源碼解析》一類看似高深實則難讀的內容。相反,我專門寫了一篇文章指出這類內容的問題。這是我對技術寫做的另外一個要求:不寫膚淺的新手向選題,但只要決定了題目,就必定要產出對讀者友好的內容。
  • 博客開始更新了一些『把技術和人文結合』的內容(雖然都還很幼稚)。好比,我討論了編程的變量命名和文科的語言學有什麼關係、新前端框架的出現是否符合《黑天鵝》裏的隨機性、變量的生命週期如何類比到《尋夢環遊記》裏的死亡和遺忘(這個想法竟然帶來了一篇小說)等等。這些選題的主要來源是近期我閱讀的一些『雜書』,把各個領域的書籍內容和當前的工做相結合時,那種 connecting the dots 的感受仍是至關有趣的!有機會的話,但願能和你們分享一份有意思的書單吧 😀
  • 博客開始關注批判性的技術討論,而不是單調的新技術介紹。好比,我會抨擊炫技的爛代碼、定量分析 Vue 是否抄襲了 Angular、提出對技術寫做行文方式的問題…如今太多平鋪直敘的技術文章讓社區顯得單調,我相信這個方向裏能寫的雜文還有不少。
  • 博客裏對於真正的『技術乾貨』,我但願更多地以 Github 上的 Issue 和 PR 的形式去沉澱,而不是寫一些在社區裏沒什麼人看的『深度』文章。

總的來講,在博客的更新上,我所面臨的最大問題其實和去年的這個時候相比,已經從『找不到有什麼好寫的』慢慢變成了『選題太多沒空寫』了……也許這確實是一種進步,不過也帶來了新的問題。做爲解決方案,個人博客源碼里加入了 Idea Pool 的概念,有時間的時候會從中選出題目來寫,有靈感的時候也會更新這個 Pool。至於效果如何,感興趣的同窗不妨關注下我期待一下吧~

總結與展望

到這裏,自吹自擂的部分應該就結束了。最後就是一些體會,和對即將到來的下一年的指望吧。

成長心得

這裏仍是列出感覺最深的三點吧:

  • 持續地關注代碼的質量能夠培養出一種鑑別代碼的『品味』,目前個人水平還不足以將這種抽象的概念完整地總結出來,但寬泛地說,在完成工做以外多作思考,多去考慮如何改進,這條路不會錯。
  • 不管是公司仍是開源社區,廣義上的交流都很是重要。除了工做中和 QA、PM 等夥伴的交流,在社區要推動一件事情,所須要的 Issue 描述比例一點也很多。從這個角度上說,公司的會議和社區裏的 Issue 等東西都是在代碼以外,很是重要的溝通渠道。咱們須要認可它們的價值,再去考慮如何作得高效。
  • 我的成長事件很是的『黑天鵝』,隨機性很是強,我沒法把握幾年後和我共事的人會是誰,但我的的技術進步可以讓咱們對這些事情有更多的把握:不被面試刷掉就是這樣的把握。這就是在這個階段,我對『且行好事,莫問前程』的理解了。

下年目標

不想立太多 flag,明年的我在技術上可以作到這些就很夠了:

  • 學習一門溫馨區外的新技術(好比學習某個前端框架就不算)。
  • 博客保持月更(忙起來的時候這其實很難)。
  • 能參與作出(而不是維護)一個在社區內有價值的開源項目,以我的或團隊的名義都算。
  • 保持工做和生活的平衡。以前閱讀到的一篇校友 Linux 大牛的訪談對我頗有觸動。我但願能在更長的時間段裏保持的興趣和熱情,而不是在長期的加班下最終 burn down。

總之但願明年還能繼續成長,最後在此與君共勉吧~

相關文章
相關標籤/搜索