當你看到這行文字時,我假設你是一個準備轉行前端,或者正在轉行前端的人。我剛花了11個月轉行前端。和你聊聊我的故事吧。
轉行花了多久?11個月
準備轉行前端時,我看了很多過來人寫的轉行經驗。別人什麼條件,轉行花了多長時間。然後對比自己什麼條件,估計轉行成功率和自己需要的時間。
先看下網上的,大家轉行的情況。網上點贊較多的文章(自學程式設計),不少是一兩個月就轉行成功了。培訓班廣告中,整個培訓週期多為4到6個月。
再看看自己轉行前的條件。211本,工業設計;985碩,設計學;有點點程式設計基礎,有自己從頭搭建的WordPress網站;在上家公司也是主要靠寫程式吃飯;裸辭前攢了一個半月工資。
看起來條件應該是不錯的,當時就預估自己一個半月能找到下家吧。沒想到從我裸辭,到入職下家公司,足足經歷了11個月之久。要不是後來家裡人支援我伙食費和住宿的費用,早就流落街頭了。
如果你也準備轉行,不妨也看看我這個轉的慢的人是怎麼轉的。把11個月作為一種時間下限,在裸辭前多作一個參考。這也是我寫這篇文章的一個原因。
11個月都幹啥了
本人從裸辭到入職下家公司,共11個月。其實這包括前期選擇轉行方向、搞Unity遊戲開發的時間,已口頭錄取等正式offer的時間。真正從決定轉行前端到拿到現在公司的offer,8個月。有效努力時間150天,累計約771小時。日均5.14小時有效時間。
8個月學習前端的時間分配,統計大體如下:
用時 | 內容 |
---|---|
1個月 | HTML5,CSS,Bootstrap |
1個月 | JavaScript |
0.5個月 | ES6 |
1.5個月 | Vue及其H5、CSS深入 |
1.5個月 | React及函數語言程式設計 |
1個月 | 伺服器和API |
0.3個月 | PHP-MySQL |
1.2個月 | 刷題和麵試 |
注意,這個時間分配表只是事後統計,並不是“最佳實踐”。同時,知識是相互聯絡的,這個分類統計並不嚴格。搞Vue時,才發現我對html和CSS不夠熟悉。搞React時才發現以前以為的掌握JavaScript根本不叫掌握。之所以做這個表格,是想讓新人對知識塊的“體量”有個直觀的印象。不要像我當初那樣,以為一個星期就能掌握Vue開心找工作去了。
統計資料來源於自己的每天日誌整理。自己每天都有日誌簡單記錄幹了什麼事情。同時我也有使用iHour記錄時間開銷的習慣。不過,iHour上我把學前端都歸到“專項程式設計”一項,沒做細分。表格是根據iHour總時間記錄與每日的工作內容交叉對比整理而成,僅供萌新參考。
轉行期間,每週還是保留了一天做休整。畢竟,這是長跑。
11個月能不能壓縮
對轉行時間影響較大的因素有很多,這裡我只說“培訓班”和“裸辭”。
是否參加參加培訓班
參加培訓班確實是快速轉行的方法。有一個環境,能督促學生學習。有老師,不懂的坑可以問。同時,高昂的學費,參差不齊的教學質量與學生水平,也為人詬病。
但對我來說,非常不划算。對於學費,真的付不起。對於學習氛圍,像我這種在學校呆了21年的學生,也用不著別人監督。對於老師答疑,我有搜尋引擎。這8個月來,幾乎沒有搜尋引擎解決不了的技術疑問。當然,這裡的搜尋引擎包括“谷鴿”。
不參加培訓班還有一個重要原因:檢測自己是否真的適合做前端。對我來說,如果不能通過自學轉行前端,說明我不適合做程式設計師,不適合做前端。如果我參加培訓班的話,不管適合不適合,都能通過培訓達到能就業的水平。這就看不出自己是否適合做前端了。
不參加培訓班不等於不能利用培訓班的力量。你可以找培訓班公開的課程表,然後自己按照課程表的知識點,一點一點自學。
當然,是否參加培訓班因人而異。著急就業,報班也是一個選擇。為避免廣告嫌疑,這裡不作任何推薦。知識是客觀的。無論這些知識是你自己學來的,問人學到的,還是老師教你的,學到後都是無差別的。不必因為培訓班出身就自信不足。工作幾年後,這個“出身”就更加不重要了。
是否裸辭
業餘時間自學轉行是一種比較溫和的方法,既有收入保證,也有後路可以留。如果你的本職工作足夠輕鬆,也許可以一試。當然也意味著你不會有破釜沉舟的決心和氣勢,成功率不可保證。
我的上一份工作,經常加班到深夜甚至通宵,根本就不會有什麼“業餘時間”來學習技能。我只好選擇裸辭。裸辭意味著有足夠的時間保證去學習,但也意味著你要承受斷了收入的焦慮。不過,裸辭後全日制自學程式設計,確實效率高很多。不然這篇文章應該叫《我轉行前端花了XX年》了。
被“老虎”追趕的11個月
在我轉行的2018年,前端正好處於技術更新換代的時候。當時一種很強烈的感覺就是知識“一邊學一邊被淘汰”。
就像一個人在崎嶇不平的山路上奔跑。前面有一輛馬車,能追上去並上車,你就有工作,有飯吃。後面有一隻老虎(技術)在追馬車。老虎跑得快,前面的馬車也跑得快,夾在中間的自己也只能拼命快跑。如果被老虎追上,那你就妥妥的被“淘汰”了。這11個月來,我跑呀跑呀跑呀~
剛開始時學的是html5和css。這些是網頁的基礎,一直學下來也沒有太大變化,還算好。
接著,你必然會碰到一個叫做jQuery這個“活古董”輕量框架。因為這個框架是快要淘汰的,所以我稍微地學了一下,就放一邊了。沒想到日後面試時,jQuery還會常常露臉,而且每次都在這裡被扣分。
接著學Bootstrap,開發響應式的網頁應用。深入之後,甚至能自己寫出一個響應式框架。再深入之後,你會發現大公司現在已經不玩響應式了。響應式中,有的元素在手機訪問時隱藏,有的元素在桌面端訪問時隱藏。但不管什麼裝置訪問,所有元素都要下載下來。大公司對於桌面端和移動端寫兩套頁面,相容性更好,效能更高。
轉行的後面階段,基本在學框架。學框架時,你會明顯感覺到,以前的“開發模式”是落後淘汰的。直接寫html、css、js、jQuery,都是刀耕火種。用框架,那是開拖拉機了。Angular?React?Vue?新框架眼花繚亂,框架生態也生機勃勃。
JavaScript這門語言本身也是在不斷髮展的。當學到es6,那感覺簡直就像學了一門新的語言!
回到前面說到的山路。我是從老虎的身後起跑的,現在已經追上馬車,上車了。上了車的我才發現——這輛馬車哪來的馬?是人在拉車!當我還在驚恐中,前面一個拉車的老頭被石頭絆了一下,摔倒。馬車無情地從他身上壓過,估計再過幾秒老虎就會追上他。我沒有猶豫,拿起懸在空中的韁繩綁在自己身上。我默默拉著馬車向前奔跑,不忍回頭……
11個月來拿到什麼offer
11個月來累計拿到5個offer。選擇了最後一個offer,某一線大廠。篇幅有限,如果多人對此感興趣的話,另開文章寫這個過程。
尾巴
今天的故事主要是技術方面的。其實轉行還有心態、生活等難題。但我相信這些你自己能處理好,就無需我多說了。
希望2019的你能儘快找到工作,不要像我這樣折騰這麼久。