我是如何從一個學物理的成為前端的 | 掘金年度徵文

Hopsken發表於2019-01-22

2018 對我而言是很特別的一年,也是我成長最快的一年。年初的時候,我還在抱著一本 GRE 紅寶書啃著單詞,心裡做著“美國夢”。年中,卻以前端實習生的身份加入了 Teambition,確立了自己的職業方向。

心態的轉變

說起來你可能不信,其實我的專業是物理。大學裡上過唯一一門和計算機沾邊的課就是公共的『C 語言程式設計』,還是簡化版的那種,你甚至不需要知道啥是指標就可以考滿分。不過,我一直都對程式碼有著濃厚的興趣,或者說喜歡折騰。大學幾年裡,折騰過各種亂七八糟的東西,用各種部落格程式搭部落格(就是沒寫過幾篇),自學了 Python,照著教程用 Flask 擼了個簡易的部落格,還自學了 Swift,為社團做了一個能跑起來的 iOS App(也只是能跑起來而已)。

三月份的時候,大三下學期開始了,這個時候大家都開始考慮其自己的前途來。不少人選擇了考研,可是我對科研沒有半點興趣,也不願意多花兩年時間去換取一張學位證照。還有些人選擇了出國留學,雖然我也考過了託福,可是我還有個可愛的女票。所以就這樣,我加入了春招的隊伍。

之所以選擇前端這個方向,是因為我覺得它離設計很近,離使用者也很近。幾行程式碼就能做出賞心悅目的效果,多棒。當然這只是我個人幼稚的想法。說實話,在決定成為前端工程師前,我對前端的瞭解還停留在很原始的地步。我知道 HTML 標籤是幹嘛的,但是不知道啥是語義化。我會用 CSS 實現簡單的樣式,但是不知道啥時 BFC,不知道 CSS3。我知道 jQuery,聽說過 Vue 和 React,不過卻連 JS 的基本資料型別也列不出來。

春招的經歷

既然選擇了前方,便只顧風雨兼程。

這是我很喜歡的一句話。既然決定好了,努力去做就好了。既然知道自己哪裡不足,努力去彌補就好了。於是我開始了一邊投簡歷,一邊複習備戰的生活。每天除了吃飯、睡覺、上課(和約會),就是泡在牛客網上,備戰春招。

不懂演算法,就去看《劍指 Offer》。不懂 CSS,就去看《精通 CSS:高階 Web 標準解決方案》。不懂 HTTP,就去看《圖解 HTTP》。不懂 JavaScript,就去看各種書,包括但不限於《JavaScript 實戰 300 例》、《鋒利的 jQuery》、《JavaScript 權威指南》、《JavaScript 高階程式設計》、《JavaScript 語言精粹》、《資料結構和演算法 JavaScript 描述》等。

為了簡歷上能有個能放出來的小專案,就去做了個 Hexo 的主題和一個倒放 Gif 的小工具

後來發現,現在都要求 Vue 或 React 至少會一個,於是就跑去看 Vue 官方文件,然後一邊對著 API、一邊跟著視訊教程做了個仿美團的頁面。還跑去看了 React,但是苦於其陡峭的學習曲線,也是一知半解。還順道去學了 Webpack 和 Gulp,知道它們是幹嘛的,然後自己試著配了一下。

過程中,也參加了幾個大廠的筆試,但是因為基礎實在太差,都沒能再往前一步。期間感覺堅持不下去的時候,就喜歡跑去看別人發的面經,看看別人的經歷,就有了堅持下來的動力。這裡,強烈推薦Alex007 的小冊《Web 前端面試指南與高頻考題解析》,對於查漏補缺很有幫助。

最後,很幸運,經過將近三個月的努力,拿到了 teambition 前端實習生的 offer。

實習的經歷

在 teambition 實習的三個月,是我成長最快的三個月。

實習期間,我開始潛下心來學習 React 及其周邊生態。學會如何從零開始去搭建一個專案的框架,學會如何去配置 Webpack,學會如何使用 TypeScript,學會如何使用 Redux 進行狀態管理,學會如何使用 git 進行版本管理和團隊協作。更重要的,得益於 teambition 優秀的技術氛圍,我瞭解到程式碼質量的重要性。

實習的幾個月裡,得到很多前輩的幫助,是他們讓我知道了自己的不足,讓我知道了自己前進的方向。是他們耐心的教導,讓我知道程式設計是門『手藝』,讓我不再像一個愣頭蒼蠅一樣四處亂撞。藉此機會,我想由衷地對他們說一聲『謝謝』!

生命不息,折騰不止

回到學校後,由於已經是大四了,課業還算輕鬆,我便開始試著實現一些自己的小想法。於是便有了 ColorKitty 這個專案,一來可以鍛鍊一下自己程式設計能力、提高『程式碼感』,二來可以做點東西出來、做個小小的『產品夢』。這個專案主要是想解決產品設計中『色彩選擇』這個問題。目前的功能還很簡單,基於『你需要的色彩就隱藏在圖片裡』這個理念,這個工具可以幫你從圖片中提取色彩,然後根據自己的需要進行組合、調整。

colorkitty.com

專案的架構很簡單,前端使用 React+TypeScript,部署在 Netlify 上;後端使用 Python + Flask,部署在 Heroku 上。之所以選擇這個架構,是因為我對這些都比較熟悉。中間也嘗試過 serverless 的架構,不過最終還是放棄了。serverless 是個好東西,只是現在還不是太成熟,用起來總感覺有些隔靴搔癢的感覺。

2019 展望

2019,我對自己有這些期望:

  1. 買一隻喵
  2. 持續輸出,一年至少完成 33 篇文章
  3. 專注技術,鞏固基礎,深入學習 JavaScript,看完《You don't know JS》
  4. 學習 Rust 語言
  5. 繼續完善 ColorKitty 這個專案
  6. 學習日語,至少到 N2 級別

Last but not least,新年快樂~

掘金年度徵文 | 2018 與我的技術之路 徵文活動正在進行中......

相關文章