你們同樣不可能從現在這個點上看到將來;只有回頭看時,才會發現它們之間的關係。所以你必須相信,那些點點滴滴,會在你未來的生命裡,以某種方式串聯起來。
自我介紹
我是一位16年畢業211 CS專業的本科生,一直把自己定位為工程師,用技術解決問題。我之前很少寫文章,看著自己的頁面PV從零到上億,技術棧從 JQuery 到 Vue 到 React,覺得是時候回顧一下這工作的兩年半的成果和規劃下新年的學習路線,分享我的收穫與感悟。
2016 ~ 2018 從一到億,我的故事。
2016 從零起步
16年畢業7月後入職了第一家公司,技術棧是 JQuery + PHP ,經歷了一次比較艱難的轉型,因為大學的專案經歷主要是 Java ,對 JS 的認知只有可以做表單驗證,對 PHP 一竅不通,只能從零開始學習前端知識,也非常感謝當時的團隊對我非常寬容,給了我時間一點一點的進行學習,不得不說 PHP 是世界上最好的語言(手動狗頭),我看了不到一週就能開始給自己寫API了。
16年底我就自己負責了整個產品的前端部分,並且使用了 Vue 對舊的頁面進行重構,剛開始使用 Vue 還有沒用 Webpack 和 Babel ,想想自己當時 唯一的老師也就是部落格和 GitHub 了,但是這段時間寫了非常多的程式碼,因為 PHP 技術不精,使用 JS 寫了很多複雜的邏輯,甚至用 JS 刷了 LeetCode。
2017 漸入佳境
17年初開始將工作之外學習到的新技術帶入專案中,將專案的技術棧改進為 Vue + ES6 + Webpack 的 SPA,雖然開發人員只有我一個,但是還是非常享受將技術棧一步步更新的過程,並且讓我意識到 實踐是學習新技術的最佳方式。
17年下半年我開始了我的面試之旅,平均一週兩個,當時真的是經歷了一段非常痛苦的日子,對自己專案經歷的不自信,對自己技術水平的質疑,但是從來沒有停止學習,最終也收穫了很多 Offer 並選擇入職了一個非常滿意的團隊,主要業務是電商的 ToC 頁面,從小作坊進入了專業的前端團隊,並開始將技術棧向 React 遷移,整個下半年的主基調也是不停地做業務,看別人的程式碼,不斷地學習。
2018 厚積薄發
18年年初,作為一個剛剛入門 React 的新人,上線了第一個使用切僅 React 的專案,這個專案雖然簡單但是非常重要,因為我使用了 Context 和 Events.js 做了類似 Redux 和 Redux-Saga 的功能,這使得我之後可以快速理解 Redux 和 Redux-Saga 並上手使用,所以 理解工具的設計理念 是非常重要的。
18年6月,我完成了我人生中第一個PV破億的專案。專案做起來就像是對之前技術的一次大考,方方面面全都涉及,訪問量大了之後對頁面的相容,適配,容錯的要求都很高,這裡我就不講的非常細了,希望大家可以理解,總之這非常像是經歷了一次沒有準備的高考,卻發現自己可以從容應對。專案之後我閱讀了很多關於元件化的文章,看了一些元件化較好的實踐,對業務場景進行了場景的抽象,元件的功能結構進行了重寫,讓我在之後的專案中少加了很多班,也在做一些規範化元件進行輸出。經歷過這樣的專案最大的收穫是 自信和能跳出業務進行思考的能力。
三年感悟
從一開始工作的從零起步步步維艱,到如今厚積薄發獨當一面,三年裡有了一個長足的進步,收穫的不只是技術的提升,還有信心的建立與眼界的擴充。經歷了這些總歸是有一些自己的感悟。
在工作中積累知識
當我剛畢業時覺得工作經驗好像沒什麼用處,無非就是專案做得多而已,我和工作幾年的程式設計師差不了多少,現在的我覺得這種想法很蠢,因為專案做得多了真的可以積累到很多知識。當我做專案中遇到問題,我並不僅僅是 Google 一下解決方案,我會多看一些相關方面資料去理解問題,同時也會附帶地 看一些延伸的知識並進行積累,學習的知識也不限於前端,感興趣的都可以瞭解,並做好筆記,工作後真的通過這樣的方式積累了很多有用的知識並擴充了眼界。
CS基礎很重要
作為科班出身的前端,在大學中一直不是很理解大學在學什麼,等工作了之後才發現這些知識可以幫助我去理解程式的執行以及如何設計我的程式碼。比如我很容易就能理解 JS 中 0.1 + 0.2!= 0.3,這是一道計算機組成原理的填空題,感覺我自己當年臨時抱佛腳 61 分飄過的科目現在居然能排上用場。資料結構和演算法非常有用,可以幫助我更好地將業務場景抽象為解決問題的程式碼。編譯原理,計算機網路和設計模式等知識也滲透在工作中,幫到我很多。
做一名工程師
我一直把自己定位為工程師,我堅持用合適的工具,恰當的方法解決,並對 有能力對問題挺行抽象,設計實現一類問題的解決方案。語言,框架,庫就是我手裡的工具,首先要做的就是會用工具並理解工具的設計思想,以學習曲線陡峭的 React 為例,我覺得當時我最大的阻礙是將我設計程式碼的思路遷移到 React 的函數語言程式設計上來,一開始也是一直半解只是會用,覺得什麼都很彆扭,但是當做了幾個專案之後,在一點點開啟了函式式大門之後,就覺得 React 真的是太棒了,並且迫不及待的開始嘗試用 HOC,Props Render 進行邏輯抽象,重構之前的程式碼並嘗試做一些業務中的輪子。我並不覺得我是科學家,可以去研究出一些很前沿的技術,造一些很酷的新框架出來,我更願意去深入業務,利用這些先進的思想去為業務中的問題開發優秀的解決方案。
2019 新的起點
列個List吧,希望今年可以把立的Flag實現:
- 學習 RxJS 和 TS ,完成一個 React RxJS TS 的專案
- 深入學習 GraphQL ,造一個用 GraphQL API 的前端輪子(肯定是個方輪子)
- 做一個前端的工具,最好不用JS
- 多寫文章多沉澱,把之前的學習筆記分享出來
- 補一補數學,真的很差
- 補一補英語,文件看得頭疼
- 工作生活 balance ,之前可以說全身心投入工作中了
- 健身,工作之後一共胖了 20 斤
寫在最後
文章的開頭是賈伯斯的演講中關於因果的一句,我對此深信不疑。從小學學繪畫,到高中感興趣的 VB ,到大學的 CS 專業,這一切串起來,讓我走上了離視覺最近的前端道路。我也相信盡人事,聽天命,只要我不停下來,最會有所收穫。
你必須相信一些東西——你的勇氣、宿命、生活、因緣,隨便什麼——因為相信這些點滴能夠一路連線會給你帶來循從本覺的自信,它使你遠離平凡,變得與眾不同。