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