1. 程式人生 > >自學前端開發,現在手握大廠offer,我的故事還在繼續

自學前端開發,現在手握大廠offer,我的故事還在繼續

簡要背景

我是一個非科班出身的程式設計師,而且是連續跨專業者,用一句話總結就是:16 屆本科學完物流,保送研究生轉交通,自學前端開發的休學創業者。

17 年休學創業,正式開始學習前端,離開創業公司後,我又回爐深造,期間一直沒有放棄前端開發的自主學習,在 19 年秋招(20 年畢業)大戰中也收穫了一些 offer。

列舉一部分 SP(Special Offer):

  • 美團(專注吃喝玩樂的 O2O 網際網路公司)
  • 小米(2019 年世界 500 強中最年輕的公司)
  • 順豐(物流行業中高階市場扛把子)
  • 雲從(人工智慧行業四大明星獨角獸之一)
  • 一加(中高階手機市場新貴)

具體的薪資水平,都是在傳統的物流和交通行業之上的,可以上一些平臺比較。

找到滿意得工作後,我現在想通過自己的努力,幫助到有志於從事前端開發工作的各位朋友,收穫適合自己的 offer。

大學教育賦予了我們的自學能力,只要感興趣,肯用心,轉行吃碗熱飯是可以的。

下面我將仔細講述親身經歷得故事,不堆砌詞藻,但求真實,也許會給你帶來一些啟發。

經歷不可複製,經驗卻可以流傳。

在校求學

本科專業是物流工程,研究生專業是交通工程。本科期間我只學過 VB(Visual Basic)和 R 語言。研究生沒有上過任何計算機課程,全靠自學。

當然,也在本科期間參與過大大小小的科技競賽,數學建模比賽,對物流專業的管理學知識漸漸興趣不大。於是,在保研深造的時候,我選擇了一個更偏工科的專業——交通工程,我當時清楚地認識到自己的計算機知識有限,當時就沒有選擇正兒八經的計算機專業。

不過讀研有個好處,可以自己選方向。我選擇了資料視覺化作為研究方向。資料視覺化和計算機是緊密結合在一起的。現在看起來,我的選擇是正確的。所在的實驗室完全就是在和計算機專業的同學搶飯吃,畢業的師兄師姐從事的工作基本上也是和計算機打交道。有點遺憾的是,從事網際網路行業的師兄師姐並不多。我是組內為數不多想去網際網路行業發展的同學。

縱觀本科和研究生的求學經歷,我一直有清晰的目標,本科的目標就是拿到好學校的深造offer,研究生的目標就是拿到網際網路公司的offer。學校裡的教育只是給我增加了許多見識,認識了很多朋友,他們分佈在各行各業,透過他們的眼睛,我看到傳統行業的薪資待遇和晉升機會存在天花板。

所以早些確定自己的目標很關鍵,現在還很迷茫的同學,應該好好靜下心來,思考一下自己未來三年要做什麼,未來五年要做什麼。只有把一切都思考清楚了,才會有清晰的目標,剩下的就看執行力。當然,堅持執行是最難的部分。

學校裡的學習時光是很寶貴的,很容易被我們浪費。我曾也有一段時間迷茫過,保研結束以後,覺得沒有什麼事情做,我選擇用來做兼職,白天去肯德基打工,晚上去做家教掙錢。

雖然那段時間沒有用家裡的錢,實現了經濟獨立。但是如果讓現在的我來選擇,我一定會用來學習計算機。

李笑來在《財富自由之路》中提到,未來人類必須要掌握的三大技能:英語、計算機、理財。我相信他的判斷是正確的,看完他的描述以後,我注意到,身邊的少兒程式設計教育開始興起,現在就連潘石屹每天都在學 Python。

所以非科班的朋友看到這篇文章後,應該計劃著多多少少學一點計算機知識。如果想要吃 IT 這碗飯的,更應該花時間在計算機知識的積累上。切莫在課外兼職、遊戲娛樂上花過多的精力,切切。

總結來說,我的大學就一個“忙”字,打比賽,寫論文,搞科研,做公益,大學四年下來獎證書塞滿了一個鞋盒。

雖然不是計算機專業的,但我掌握了連夜突擊學習,查詢資料的快速學習的能力。

臨近大學畢業,我又瞄準了另一個新鮮玩意兒——創業,而且是認真地做,真槍實彈地做。

參與創業

我的經歷有一些特殊,休過學,創過業,和一群人吃過大鍋飯,睡過大通鋪。當時自己帶電腦,買二手顯示器,每個月領500元補貼,全情投入到創業中。合夥人一起哭過,喝醉過,爭吵過,最後分道揚鑣,現在各自安好。

早在 2016 年 4 月份,我大學即將畢業,臨時決定跟同屆的校友同學一起創業。我們從一個小小的微信公眾號做起,那年 7 月份在哈爾濱設立了一家小公司。後來公司發展得不錯就搬到了北京,12月份設立了新的公司,叫做北京優尼沃特科技有限公司。公司的業務主要是面向考研學子的網際網路教育,為此我們做了一個品牌叫做雲逸未來。

當時的網際網路流量紅利還在,QQ 群還能拉新,分享一些盜版視訊和考研資料,就為我們微信公眾號積累了 30 多萬粉絲。於是,我們哥兒幾個想把事業擴大一點,說不定就財富自由了。

公司勢頭髮展得很好,17 年 2 月份,公眾號粉絲突破 40 萬,我決定從中山大學休學一年,幫助公司成長。在經歷了一個公司的嬰兒成長期後,18 年 2 月份,由於一些人為因素,我離開了親手創辦的公司。現在雲逸未來依然存在,但所做的事情我完全不認可。不過,我離開公司後,雲逸未來跟我也沒有任何關係了。

我是怎麼踏上前端開發這條道路的呢?16 年公司剛成立的時候,我和一個在天津大學讀研的同學,一起學 Dreamweaver(一個寫網頁的工具),準備搭建一個網頁供大家下載資料。

由於本科沒有系統性地學過前端開發,只在一次創新創業比賽中,為了迎合評選老師的獵奇,用 Dreamweaver 寫出了人生中的第一個網頁,但只能在本地預覽,最後並沒有上線。

所以,網頁是怎麼構成的,它又是怎麼被部署在網上的,這一切我不知道怎麼做。做了兩個月的切圖仔(前端工程師自我戲稱)後,我們發現上線都成問題。

後來,被逼無奈之下我們尋求外包,起初想讓哈爾濱一家資訊科技公司幫我們搭建網頁,幾個合夥人吭哧吭哧跑到他們公司,聽工程師吹了半天牛,對方表示我們想要做的網站太複雜,整體做下來大概需要 12 萬,而且網站的原始碼還不會給我們,以後升級還得請他們做,當然我們也要再給一筆維護費用。那天我們灰溜溜地回來了,還是自己開發吧,哪有那麼多錢做。

機緣巧合下,我們認識了遠在西安的濤哥。濤哥在一家軍工企業做技術開發,主要做後端,但是他也懂前端的開發。我們當時著急做那個網站,來不及考慮太多,起草了一個外包協議以後,就把網站交給濤哥去開發了。當時花了 1 萬元不到,功能基本上都能達到。

網站有著落了,但是維護依然是一個問題。濤哥用的是基於 JAVA 語言的一套框架——CMC(內容管理系統)開發的,當時我們團隊裡沒有一個成熟的 JAVA 開發,濤哥用的那套東西需要有人去專門學習。加上國內很少人用 CMS 去做網頁開發,我們讓濤哥開發完公司官網以後,就拜他為師,請他作為技術顧問,花半年的時間幫助我們成長。

團隊裡已經有兩個同學做後端了,公司裡還沒有人做前端,我和天大的同學就選擇做前端開發。我們又一切從零開始,丟掉以往開發網頁的工具,直接上手當時大火的 React,腳手架工具用的是阿里巴巴的 Dva,照貓畫虎,勉勉強強開發出來了第一個資料上傳系統。

就這樣,我稀裡糊塗地進了 IT 行業。

濤哥用了一個星期的時間教會我們寫 Todolist,然後告訴我們可以開始做產品了。那時候的我根本不懂什麼叫設計模式,也不知道為什麼開發網頁要用 React 全家桶,他們的作用是什麼,我完全不關心,只需要把頁面開發出來。

創業公司就是這樣,產品需要快速迭代,功能上滿足即可,安全性、規範性、相容性等我們是統統先不考慮。

做了一年的前端開發後,React 框架被我玩轉了,基本上什麼功能,只要運營同學和使用者需要,我們去調研一下,用 React 仿寫出來,就算開發完成,工作挑戰性不大。

所以,那一年時間裡,我算是在入門前端開發,算不上一個成熟的前端開發。掌握了 JS、HTML、CSS 三者基本的 API,搬 React 輪子技巧,產品開發的基本流程,還有團隊的協作(Git 版本管理)。

此時,我依然心裡沒有底,因為我連紅寶書(《javascript 高階程式設計》)都沒有看過,連 js 的基本資料型別有多少個都回答不出來。

於是,我復學後,又重新撿起書本,一頁一頁地看,做筆記,重新梳理了知識體系,我才發現原來之前經歷的前端開發,只是浮在水面上的冰山,更多重要的東西在於語言特性,計算機原理,資料結構和演算法。

總之,非常感謝這段經歷帶給我的成長,無論是技術的成長,還是認知的提升,都是一筆不小的財富。

這段創業經歷在我身上發生了很多事情,感興趣的可以看我以下的文章,想要看簡版就看第一篇即可,詳細的可以看後面的“連續劇”:

  • 紀念我的第一次創業
  • 我的創業故事(一)團隊成立
  • 還有部分文章寫完未發,我保證會發。

深化學習

以前我們公司的產品是前後端分離的,所以我只需要負責用 React 框架做前端開發,能夠搭建出設計師做好的頁面就可以了。

現在經歷過了一個秋招以後,我才重新梳理了自己的知識點,重新審視前端工程師這個職業,也才在大中小廠前後近百場面試的蹂躪中確定前端工程師應該具有怎樣的素質。

前端工程師很難,一邊要頂著 IT 鄙視鏈前行,一邊又要學全面的計算機知識。現在想從事前端工作,掌握紮實的計算機基礎非常重要,再也不是從前那個由後端工程師隨隨便便代工就可以搞定的職位了。

經歷了那麼多場校招面試下來,我總結了前端工程師必須要掌握這幾個方面的內容:

  • 前端三板斧及其新版本(JS、HTML、CSS)
  • 演算法和資料結構
  • 計算機系統
  • 計算機網路
  • 瀏覽器
  • 效能優化
  • 前端工程化
  • 加分點:資料庫、前端框架、小程式、設計模式、資料視覺化

結合我的實踐經驗,總結整理了一份適合應屆生(新手)的 面試手冊,內容涵蓋以上我提到的內容。準備分享給有志於從事前端開發的同學。這個手冊主要的特點有三點:

  • 力求最簡。前端開發知識點又多,又雜,如果長篇大論,很多人望而卻步。
  • 問答形式。讓剛開始接觸到前端的同學循序漸進地學習前端結構化的知識。
  • 思維導圖。為了輔助記憶,我還給大家準備了幾張思維導圖,搭配手冊來準備面試,效果更佳。

無論是科班的,還是非科班的同學,我相信通過我這個面試手冊的拋磚引玉,一定會幫助大家找到理想的工作。

先說明一下,這個手冊會是收費的,當然也有免費的線上專案 front-end-interview-guide 供大家參考學習 ,手冊的內容會更系統,而開源專案會更粗略。手冊現在還在不斷完善當中,不久就會和大家見面。

本來我只想做免費的,但是收費有兩方面的好處,一方面可以為我提供正反饋,激勵我不斷生產更好的經驗和內容。另一方面,付費會讓學習者更加重視,畢竟花錢買的東西,自己也要用心對待。

最後,通過這幾年得自學,我的經驗是,對於新手學習的最好方式並不是去看原始碼,看標準,而是從最小知識集合入手,激發自己的興趣,產生成就感,然後在自己的能力範圍內拓展。 你可能突然有一天,發現自己原來也可以這麼 X 逼(X 自己填)。

不多說了,讓我們一起向上生長吧