零基礎(chǔ)學前端開發(fā)需要多久時間(零基礎(chǔ)學前端開發(fā)應該從哪入手)

你好,我是宇哥。某天不經(jīng)意間打開了知乎,看到有人在我三年前寫的文章下留言。

不禁感嘆:一個機械專業(yè)的專科生,沒有參加過培訓班,全憑自學,竟然能夠轉(zhuǎn)行程序員,工作三年依然沒被辭退。
你是不是也很好奇我的個人經(jīng)歷呢?
??粕厴I(yè)進了工廠
2012 年,我的高考成績 444 分,差一分上當年的二本線。因為各種原因沒有選擇復讀,加上三本學院費用高昂,無奈之下只好選擇了讀???。沒有專業(yè)填報指導的我,在親戚長輩的建議下,選擇機械專業(yè)數(shù)控技術(shù)。
大一上學期,我報名了自考本科,當上了班里的學習委員,還參加了社團。隨著時間的推移,我漸漸以各種理由安慰自己:今天這堂課不用上,自考前再復習也來得及。正因為當時懶惰成性,后面為了這個自考本科文憑付出得更多(PS:文章后面會提到)。
轉(zhuǎn)移三年過去了,2015 年專科畢業(yè)的我一心只想著早點出來掙錢,于是跟幾個同學去了位于上海的一家蘋果代工廠。前期做著一些打雜和跑腿的工作,負責把技師們做好的樣品送到量儀室,等結(jié)果出來再把樣品取回來供他們分析數(shù)據(jù)。還要做的一件事是幫白班(夜班)負責人統(tǒng)計這一班生產(chǎn)樣品的數(shù)量、合格率、報廢原因等等。
這樣的情況一直持續(xù)了三個月,我才有機會跟著一位老師傅學習機床知識,了解一塊物料到成品需要經(jīng)歷哪些步驟,慢慢的有機會去實際操作機床。
待了半年之后,我與幾個同學跳槽去了福建泉州的一家工廠,開始獨立負責手機后殼生產(chǎn)工序中的某個環(huán)節(jié)。

但是這種小工廠如果沒有接到單子做,工資就會特別少。3 個月后我與同學又跳槽去了廈門一家工廠,做的還是技術(shù)含量較低且重復的工作。
為什么選擇轉(zhuǎn)行做前端開發(fā)?
在新工廠的待遇比盡管剛?cè)胄心菚禾嵘瞬簧?,但每天需要工?12-14 個小時,且常年無休,大部分時間都在上夜班。
閑暇時間我開始思考:除了工作我完全沒有生活,無法出去正常社交,也沒有多余的時間去提升自己,只能從這個工廠換到下一個工廠,或者待在一個工廠熬工齡。
經(jīng)歷過社會的毒打,我明白了年輕人還是應該多學習、多思考、用技能武裝自己。內(nèi)心深處有一個念頭:我一定要做朝九晚六、正常雙休、不可替代性高的工作。
碰巧我的一位大學同學畢業(yè)后就在成都做運營工作,他在電話里說:“你要不要試試轉(zhuǎn)行當程序員?我好幾個朋友都去參加培訓了,而且最近 Web 開發(fā)很火?!?/span>
于是我拿起手機,打開了知乎,搜索“怎樣成為一名程序員”、“程序員的工資待遇”、“零基礎(chǔ)怎么學習編程”等相關(guān)話題。在糾結(jié)選擇前端還是后端,iOS、Android 還是 Web,培訓還是自學……嘗試了入門后端語言,了解開發(fā)程序原生應用需要的設(shè)備和環(huán)境之后,我的智力和經(jīng)濟條件告訴我:你沒得選,自學 Web 前端吧。
于是我就開啟了一段長達 8 個月的自學經(jīng)歷。
我的自學規(guī)劃和路線
對于每一位零基礎(chǔ)自學 Web 前端的人來說,最難的是什么?
1、不知道學什么、怎么學
2、遇到問題誰幫我解決
3、想認識一些在職工作的前端程序員
起初,通過搜集網(wǎng)上的一些信息,我明白了想要找到一份前端工作,至少要掌握四門技術(shù)(我當時的理解)——HTML、CSS、JavaScript、AJAX。因為沒錢上培訓班,我的學習資料來源于百端云盤和一些免費的視頻教程,但都不夠系統(tǒng),我也區(qū)分不了難易程度。
然后我接觸到了 https://codecombat.163.com/play 這個網(wǎng)站,用游戲的方式學習編程。

但是礙于費用問題,試學完免費課程之后我就放棄了。
那么,有沒有一個組織或網(wǎng)站可以幫助到我這樣的萌新呢?
有!freeCodeCamp.org,簡稱 FCC。
偶然間我在知乎大佬余博倫的回答下看到了這個網(wǎng)站,他推薦說非常適合小白自學 Web。在此之前我始終未能找到一個合適且免費的平臺,可以幫助零基礎(chǔ)想學習編程的人,于是我抱著試一試的態(tài)度就點了進去。

我使用的是志愿者協(xié)同翻譯的中文版(最新中文版在 learn.freeCodeCamp.one,即將上線到官網(wǎng) freeCodeCamp.org)。哇,我整個人都驚呆了,HTML 基礎(chǔ),CSS 基礎(chǔ)、布局、視覺設(shè)計,JS、ES6 基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、算法基礎(chǔ)、框架……而且每一個章節(jié)都帶有項目實戰(zhàn),這不正是我所需要的嗎?

在工廠打工是不可能的,這輩子都不可能打工。培訓費又貴,只有靠在 FCC 自學前端,才有未來。喔喲,我超喜歡在里面學習的,全球?qū)W員線上聊天互相鼓勵,國內(nèi)多個城市有志愿者發(fā)起的線下社區(qū),經(jīng)常分享流行的前沿技術(shù),里面?zhèn)€個都是大佬,又喜歡自稱“萌新”,熱心解答你的每一個問題。
自學有太多的困難,有時候朋友會叫你出去玩,網(wǎng)友發(fā)來游戲邀請,三天打魚兩天曬網(wǎng),無法長期堅持。
自學的過程也是孤獨的,找不到志同道合的伙伴分享解決問題的那種喜悅,遇到難題也沒人提供思路。感謝 FCC 提供了這樣一個良好的學習氛圍,我可以和每一位自學的小伙伴交流,并且結(jié)識了一群志同道合的朋友。

FCC 深圳社區(qū)的小伙伴
自學那會兒有受到過前同事的嘲笑,身邊的朋友也不看好我能夠?qū)W完,找到工作。好在家里人非常支持我,為我提供一個舒適安靜的學習環(huán)境。我給自己訂的規(guī)劃是保證每天學習 8 小時。
早上一般是 10:00 – 12:00
下午 1:00 – 6:00
晚上 8:00 – 睡前(大部分實際在凌晨以后)
四個月的時間,我剛好學完了 FCC 上 HTML、CSS、JS 大部分基礎(chǔ)內(nèi)容,并跟著 FCC 的設(shè)計完成對應項目編寫。感覺沒理解的知識點,回頭又補看了一些視頻。
這期間我總共讀了四本書:《CSS權(quán)威指南》、《JavaScript DOM 編程藝術(shù)》、《鋒利的 jQuery》,粗讀了《JavaScript 高級程序設(shè)計》前 14 章,差不多 450 頁,看不懂的地方都先跳過了。
經(jīng)過這段時間的學習,我已基本掌握常見的頁面布局、樣式編寫,和用 JS 實現(xiàn)簡單的特效。
自學過程中的焦慮和迷茫
焦慮的原因一方面是看著很多培訓班的畢業(yè)生,要準備找工作了,怕自己錯失良機,另一方面裸辭在家經(jīng)濟壓力挺大。
9 月份我去了當?shù)匾患覚C構(gòu)給小學生輔導作業(yè),一直要做到他們放假,差不多 2017 年 1 月中旬的樣子。沒辦法這么快出去找工作,就有點迷茫不知道學啥了。
也在思考:如果我簡單自學 4 個月就能找到工作,那么科班生通過學習之后豈不是更容易?何況在學歷和計算機基礎(chǔ)都不占優(yōu)勢的情況,HR 很大概率不會選擇錄用我。加之在打聽到培訓班一般不會講算法和數(shù)據(jù)結(jié)構(gòu)之后,索性就沉下心來去繼續(xù)學習前端以外的知識,比如數(shù)據(jù)結(jié)構(gòu)和算法,HTTP 協(xié)議,設(shè)計模式等。
跟著 FCC 刷完它的初、中、高級算法之后,我對 JS 很多的 API 有了更深刻的理解,并把全部題解寫成了文章發(fā)到知乎和簡書上,雖然現(xiàn)在看來屬實寫得不怎樣,效率太低。原因是我缺少一些前置知識,便買了一本《學習 JavaScript 數(shù)據(jù)結(jié)構(gòu)與算法》,再去有名的刷題網(wǎng)站 LeetCode 刷題。
從 10 月份開始一直到 12 月底,我看完了《JavaScript 設(shè)計模式與開發(fā)實戰(zhàn)》與《HTTP 權(quán)威指南》中跟 Web 相關(guān)的部分,了解到真實的前端開發(fā)工作是要跟后端人員通過接口的形式進行數(shù)據(jù)傳遞,也明白企業(yè)級項目并不是我之前寫的那種面向過程式代碼,會思考怎么封裝、復用。
再回過頭看自己以前寫的代碼,恍惚間感覺自己提升了不少,也消除內(nèi)心的迷茫,更加堅定要走軟件開發(fā)這條路。
項目與簡歷
從完成自學到工作還有最后一道檻,那就是做一個拿得出手的項目,寫一份漂亮的簡歷。其實 FCC 準備項目已經(jīng)很出色,同時百度前端學院也有許多不錯的項目可供選擇。我做過一些 demo, 包括 2048、貪吃蛇、飛機大戰(zhàn)等小游戲。


2017 年可以稱得上前端三大框架崛起的一年,你不會其中一個,都不好意思去面試,所以我不得不抽時間看看 Vue 官方文檔,并完成了一個簡單的案例——Vue ToDoList。

盡管做了以上這些,離真正意義上的前端開發(fā)還是缺點味道,于是我找到了我的大學朋友。經(jīng)過半年他已經(jīng)從 UI 轉(zhuǎn)崗到了產(chǎn)品經(jīng)理,在我三番五次要求之下,他給我看了一些他們以前外包的項目,有完整的需求說明、UI 設(shè)計稿,有些還能直接訪問。這就是我想要的真實項目。
于是我對著設(shè)計稿自己實現(xiàn),盡量把自己想象成一位真正的開發(fā)人員:這個特效我會怎么實現(xiàn)?這里的布局為什么不用這樣?遇到不會的地方,我就記錄下來,然后通過搜索來解決。這樣如果面試官問我自學過程中,或者項目中有遇到什么最難的問題,我也能對答如流。
完成了項目的準備,這里簡單說下簡歷。對于沒有做過什么項目的小伙伴來說,我強烈建議你用前端代碼寫一份響應式簡歷,然后通過 GitHub Pages(一種網(wǎng)頁寄存服務(wù),可以讓任何人看你做的頁面) 讓面試官可以訪問到,這樣既能展示你的個人信息,也側(cè)面讓面試官康康你的代碼實力,一舉兩得?。≒S:更多關(guān)于項目與簡歷的詳細細節(jié),請關(guān)注我的 B 站個人賬號:宇哥在學習)
持續(xù)學習與成長
前端真的是一個看上去簡單,實際上知識點復雜且多樣的職業(yè),如下圖:

我當初找到第一份工作的時候,干活用到的技術(shù)真的就只有 HTML、CSS、jQuery、Bootstrap,連 ES6 都很少用到。到了 17 年中旬, Boss 直聘前端崗位技能要求 Vue、React 二者至少掌握一個,且熟悉其生態(tài)。
為了以后能有更好的就業(yè)機會,在公司技術(shù)體系已經(jīng)穩(wěn)定的情況下,我主動向領(lǐng)導申請,采用當時流行的 Vue + Vuex 技術(shù)開發(fā)單頁應用,并利用空閑時間和周末,去一些技術(shù)平臺(掘金、Segmentfault)看教程文章,按照樣例代碼一行一行地敲。
在半個月內(nèi),我做了一個簡易版的 demo,并向同事們和領(lǐng)導演示其效果,講明白這套技術(shù)相比之前的方案有了哪些改進和提升。得到老板的肯定后,我的方案被應用到新項目。
得益于這段經(jīng)歷,我成功跳槽,直接漲薪資 4K。我清晰記得第三輪的面試官問過一個問題:“你自學了 8 個月,現(xiàn)在才工作了半年多一點,就獨立負責過公司項目的技術(shù)選型,是什么在支撐著你?”
我回答到:“堅持學習和自信”。
在轉(zhuǎn)行學習程序開發(fā)之前,我內(nèi)心是比較自卑的,也不太敢在公眾場合發(fā)表自己的觀點,怕被質(zhì)疑和嘲笑。但是這段自學的經(jīng)歷給我?guī)砹朔浅4蟮母淖儯瑥臎]有像自學編程一樣堅持一件事情長達 8 個月,收獲了別人的肯定,最重要的是我變得更自信。
在 18 年初,我嘗試去一些大廠面試,但因為??茖W歷被拒絕了,這時才想起大學時我報名了一個自考本科。那會兒我人在深圳,為了拿到這個畢業(yè)證,除了學習工作上用到的知識,還要拾起自考課程和尋找一些考試相關(guān)資料,于是我每個周末都去圖書館,和那些考研的奮斗小伙伴們一起學習。
因為自考的院校在成都,所以每年的 4 月、10 月,我都要坐飛機回成都參加考試。終于在 19 年 5 月考完了所有課程,拿到了我夢寐以求的本科畢業(yè)證,同年參加了學位英語考試,算是彌補了我一生的遺憾吧。如果后面有機會我希望能再去讀一個在職研究生,認識更多優(yōu)秀的人。
最后想說的話
這就是我零基礎(chǔ)轉(zhuǎn)行 Web 前端開發(fā)的經(jīng)歷。
我現(xiàn)在也嘗試做一名 UP 主,這個決定從 19 年中旬就有了,現(xiàn)在終于邁出了第一步。
這是我做的一個視頻,我在視頻中留了三個問題,希望小伙伴們可以想一想。

不管你是否想要從事編程工作,想做什么就全力以赴去做,不斷學習,分享你的成長。即使大多數(shù)人不看好你的決定,你也要堅持,用結(jié)果證明給他們看。

如若轉(zhuǎn)載,請注明出處:http://www.qjsdgw.cn/85367.html