回顧一路走來,從對編程的一無所知,到現(xiàn)在漸漸的得心應(yīng)手,感覺編程其實(shí)是一種人和機(jī)器的對話只是這個(gè)交流和對話不是像我們想象的那樣你說一句我說一句,很聰明的是,電腦是用機(jī)器語言交流的,通過我寫的代碼運(yùn)行時(shí)候的指令做出相應(yīng)的動作。這是人和計(jì)算機(jī)的互動。介紹了人和計(jì)算機(jī)如何對話之后接著開始切入我們今天主題,如何從零開始自學(xué)前端呢,這個(gè)問題對于在幾年前我未進(jìn)入編程領(lǐng)域時(shí)候,我也是一無所知。那么是什么改變了我讓我進(jìn)入了編程領(lǐng)域呢?
那是什么呢,是工作。
對于一個(gè)當(dāng)時(shí)快要畢業(yè)的我來說,如何拿到一份很好的工作offer,成為我當(dāng)時(shí)人生的最重要的目標(biāo)。當(dāng)時(shí)打開招聘網(wǎng)站幾乎很多大的招聘網(wǎng)站像智聯(lián)招聘,拉勾網(wǎng),獵聘網(wǎng)找的最多的就是編程技術(shù)人員,而且工資薪水什么都還不錯(cuò),這是讓我下定決心進(jìn)入的第一個(gè)原因。
看著很多的招聘我發(fā)現(xiàn)我?guī)缀跏裁炊疾粫膊欢?,?nèi)心很痛苦,感覺人生好像第一次走到低谷了。也許人生只有你走到低谷的時(shí)候才可以看清楚你自己吧,我那時(shí)就是每天都上網(wǎng)查詢找工作的崗位,然后就看到招聘web開發(fā)的工作崗位,這個(gè)要求少,然后會的我在網(wǎng)上查了下,好像沒有什么java,c++還有c#一類的崗位要求的項(xiàng)目多,而且給的薪水還蠻好,福利也高,這是讓我最終下定決心開始從這里開始的主要原因。
對于一個(gè)沒有接觸過前端的人來說,想要知道前端開發(fā)工作者是干嘛呢?就需要從零開始完整的認(rèn)識這個(gè)工作和這個(gè)工作需要掌握的知識和技能,這是你發(fā)現(xiàn)問題和解決問題培養(yǎng)自己思維的開始,在大學(xué)我們其實(shí)學(xué)的就是發(fā)現(xiàn)問題并解決問題的能力。
那么對于一個(gè)不會任何語言開發(fā)的新人又該如何去學(xué)習(xí)前端的知識呢,這個(gè)問題同樣也困擾著我,雖然我上網(wǎng)查過了網(wǎng)上給前端開發(fā)的定義是網(wǎng)頁制作演變而來的,名稱上有很多明顯的時(shí)代的特征。(當(dāng)時(shí)我可是上的谷歌查的,別問我為啥當(dāng)時(shí)會翻墻上谷歌,愛看美劇的朋友都知道)。然后看到介紹互聯(lián)網(wǎng)歷史反正說了一大堆,當(dāng)時(shí)記得就看到我們現(xiàn)在處于Web2.0時(shí)代,網(wǎng)頁不在像Web1.0時(shí)代那樣只是靜態(tài)界面了,現(xiàn)在的網(wǎng)頁利用交互形式可以為用戶提供更好的使用體驗(yàn),這些都是基于前端技術(shù)實(shí)現(xiàn)的。下面又列出了Web前端開發(fā)需要掌握的知識,需要掌握基礎(chǔ)的CSS還有Javascript,需要了解基本的linux,還有web服務(wù)器的配置,等等一系列的標(biāo)準(zhǔn)。反正看著就是我一個(gè)都不認(rèn)識,但是這些讓我對前端的工作開發(fā)有了個(gè)基本的認(rèn)識,也明白了到底前端開發(fā)是做什么工作的了! 這點(diǎn)很重要,這是發(fā)現(xiàn)問題,認(rèn)識問題的開始,那么接下來我就要解決這些問題了?
我當(dāng)時(shí)就上網(wǎng)查了,看到很多有的是教程,但是都是感覺一大堆東西,因?yàn)槟銓η岸碎_發(fā)工作沒有個(gè)完整的概念時(shí)候千萬不能盲目的去買書和看資料。古代兵家打仗都要做到知己知彼才能百戰(zhàn)不殆。所以自己更不能盲目去做事情了。
這個(gè)時(shí)候我看到了網(wǎng)上很多的論壇,幾乎每個(gè)論壇都有前端開發(fā)這個(gè)模塊點(diǎn)進(jìn)去有的是分享資料有的是提問,作為想要快速提升自己前端開發(fā)能力的人,我對這些是沒有任何興趣的,我的目的是想看看有沒有啥好的資料可以讓快速學(xué)習(xí)的。這個(gè)時(shí)間就是我在不斷尋求解決我目前困境的方式。當(dāng)時(shí)我在一個(gè)論壇看到了有人發(fā)的幾套免費(fèi)學(xué)習(xí)前端視頻,仿佛給了黑暗中前行的我光明的力量。其實(shí)現(xiàn)在你翻看各個(gè)網(wǎng)站其實(shí)都是有免費(fèi)前端視頻的,在深入的可能就要付費(fèi),也有很多前端培訓(xùn)機(jī)構(gòu),這個(gè)我不啰嗦了。
當(dāng)時(shí)我拿到這些視頻不是立馬去看去學(xué)的,我是對比了這些視頻講的內(nèi)容幾乎所有的都是從DIV,Html,Css開始講解的和我在谷歌上看到的是一樣的。那么我的編程之路也是從這里開始。
之所以我上面會啰嗦一大堆不切入正題都是為了闡述下,作為一個(gè)剛剛學(xué)習(xí)前端或者說是一個(gè)零基礎(chǔ)的人去學(xué)習(xí)和認(rèn)識前端的過程以及心路歷程,這些我想大多數(shù)自己去學(xué)習(xí)前端的新人都會迷茫的,有的可能會報(bào)培訓(xùn)去學(xué)習(xí),這里我們就不討論了!
首先我是自己在看視頻后給了自己定了一個(gè)計(jì)劃,我是讓自己結(jié)合著視頻還有w3c的文檔2個(gè)星期學(xué)會了HTML以及Css的學(xué)習(xí),接受一個(gè)新的事物的時(shí)候我們?nèi)四X都是有個(gè)反應(yīng)適應(yīng)期,用心做的人14天可以完完全全的改變一個(gè)人行為和習(xí)慣,那么我是這樣做的。每天學(xué)習(xí)差不多有10個(gè)小時(shí)左右,靠著在以前在考試之前理解以后去記憶的習(xí)慣,我當(dāng)時(shí)把Html拆分成頭部,底部還有內(nèi)容區(qū)域,然后又跟著視頻學(xué)習(xí)的時(shí)候繼續(xù)細(xì)分哪些是塊級元素,哪些是行內(nèi)元素,哪些是屬性,哪些是布局,哪些是顏色等等這些你細(xì)分之后在憑著上學(xué)時(shí)候記憶的本事,很容易在一個(gè)星期掌握。接著就是Css,這個(gè)就是用來修飾Html的,這個(gè)可能就是在逐步的提高你自己的認(rèn)知和做網(wǎng)頁怎么可以更加美化的問題上了,在Css的學(xué)習(xí)上也是我細(xì)分的過程,然后發(fā)現(xiàn)哪些樣式啊,框和模型邊距啊,定位啊還有選擇器啊等等這個(gè)是細(xì)分和定型的過程。
學(xué)過這些你就可以做出一個(gè)不錯(cuò)的網(wǎng)頁了,那我覺得我應(yīng)該提升下我自己我就做了一個(gè)工作,那就是做了一個(gè)支付寶的靜態(tài)頁面當(dāng)時(shí)就是模仿做的支付寶靜態(tài)頁面,依稀記得上面的一個(gè)圖片寫的”改變,因我而來”。多么深刻的一句話啊,可是但是就是覺得做的支付寶界面模仿挺好的,簡潔大方,我只是把背景圖片換成了一個(gè)美女圖片,這個(gè)既看著養(yǎng)眼,也有心里的滿足感!記住這是我要傳遞的第二個(gè)信息,就是一定要有階段性的提升,就是每次學(xué)習(xí)新的知識的時(shí)候,一定要學(xué)會去把所學(xué)化作在一部作品或者一個(gè)簡單的小項(xiàng)目中。
做完這個(gè)就是你階段性進(jìn)入編程的門檻了,然后真正的大的boss在后面呢,需要一個(gè)一個(gè)區(qū)戰(zhàn)勝(其實(shí)除此之外我別無選擇)。有點(diǎn)像我們小時(shí)候玩的游戲機(jī),一個(gè)關(guān)底都會出現(xiàn)一個(gè)boss的。這個(gè)時(shí)候我對前端已經(jīng)有了初步的認(rèn)識和認(rèn)知了,現(xiàn)在所寫的都是靜態(tài)的頁面,如何讓網(wǎng)頁上的元素動起來就是接下來的重頭戲出場了,沒錯(cuò)那就是Javascript。
Js絕對是你學(xué)習(xí)的一個(gè)重中之重,為什么這樣說呢因?yàn)榫W(wǎng)頁的構(gòu)成就是html是骨架,css是外衣,js就是它的運(yùn)動軌跡。
第一,其實(shí)對于javascript我是深有體會的,以我個(gè)人的學(xué)習(xí)來說也是從零開始的,那么怎么可以以最快的時(shí)間學(xué)好的。我是看了javascirpt的零基礎(chǔ)視頻學(xué)習(xí),從最基礎(chǔ)的學(xué)習(xí)面向?qū)ο笠约罢Z法,數(shù)據(jù)類型,原型和作用域,繼承等等??戳诉@個(gè)對于初學(xué)的人肯定是一臉懵懂的,這是一個(gè)需要不斷的練習(xí)和學(xué)習(xí)的科目。
第二,就是練習(xí)大量的練習(xí),建議這個(gè)時(shí)候不要買什么犀牛書,因?yàn)檫@個(gè)雖好,但是對于剛剛?cè)腴T的人不太適合,犀牛書適合工作一段時(shí)間js進(jìn)階看的一部寶典。在這個(gè)時(shí)候我做的事情是買了一本javascript網(wǎng)頁特效300例,然后結(jié)合這個(gè)我一個(gè)一個(gè)案例進(jìn)行練習(xí),對我自己提高對js的認(rèn)知和技術(shù),起了很大的幫助,也是我后來js用的很熟練的技術(shù)。
第三步,練習(xí)完那個(gè)javascript網(wǎng)頁特效300例,并不等于你就真正的融會了js了,此時(shí)你需要在回顧js的基礎(chǔ),完整的回顧下js的內(nèi)容,相信此刻的你的感悟已經(jīng)很深了!然后在結(jié)合做個(gè)綜合的項(xiàng)目來鍛煉下自己,當(dāng)時(shí)我做了博客系統(tǒng)然后拿著去面試了,這是我當(dāng)時(shí)的面試時(shí)候的帶過去面試項(xiàng)目。這個(gè)是我傳遞的第三個(gè)信息,就是面試一定要有自己完成的作品。
如果這些都井然有序的努力去做了,相信你此刻對前端的一定有了個(gè)清晰的認(rèn)識了。接著開啟我們的進(jìn)階之路吧。
招聘的前端人員基本都是需要會boostrap和angular的,而jquery是必須會的,jquery其實(shí)在javascirpt的一個(gè)框架可以讓你很快的上手,門檻很低方便學(xué)習(xí)。這個(gè)我個(gè)人覺得你在學(xué)會了javascript以后,可以花個(gè)一到兩天時(shí)間學(xué)習(xí)下jquery。至于boostrap是前端的web的ui框架,可以讓你做的網(wǎng)站或者頁面實(shí)現(xiàn)響應(yīng)式的布局。這個(gè)的學(xué)習(xí)我覺得可以直接看官網(wǎng)的那個(gè)介紹文章,我當(dāng)時(shí)是在邊看的時(shí)候,邊做了幾個(gè)網(wǎng)上的例子,其實(shí)用一下發(fā)現(xiàn)真的很入門很快的,有了前面的基礎(chǔ),這個(gè)入門大概就需要2天就可以搞定了。
真正的難點(diǎn)在angular,當(dāng)時(shí)學(xué)習(xí)angular是有點(diǎn)困難,覺得怎么還可以這樣玩啊,什么數(shù)據(jù)雙向綁定,MVC等等這個(gè)是怎么回事搞不懂。也是困擾新人最多的地方。那么怎么才能學(xué)好呢。我當(dāng)時(shí)在網(wǎng)上搜了很多也沒發(fā)現(xiàn)好的資料,后來在一個(gè)論壇上下載了一套angualar的學(xué)習(xí)視頻,從最基本的開始講起的我也是從最基礎(chǔ)開始做的,從開始引入angular的js到寫控制器,然后做一個(gè)小的購物車項(xiàng)目,后來才明白原來是慕課上的一個(gè)angular的學(xué)習(xí)視頻,不過當(dāng)時(shí)很是開心和感激的,只要自己努力想去學(xué)習(xí),辦法總是比困難多的。
Angular的學(xué)習(xí)后來我的總結(jié)就是先要看它的官網(wǎng)介紹和指令,然后在接著去看視頻,不然開始就去看視頻是不知道它講的是什么呢,我相信從零開始的對這個(gè)肯定是有很深的記憶基礎(chǔ)。這個(gè)我覺得學(xué)習(xí)最快的方式就是在熟悉語法后找一個(gè)網(wǎng)站去做一下,我當(dāng)時(shí)就是用angular去做了一個(gè)仿照汽車之家的簡單的登錄注冊以及車型展示,當(dāng)時(shí)雖然做的不是很好,但是為我面試積累了項(xiàng)目經(jīng)驗(yàn)。只有量變積累才能有質(zhì)變的提高,這個(gè)也是我對angular的使用體會,只有在不斷的項(xiàng)目中使用,才能不斷領(lǐng)悟他的精髓。
學(xué)習(xí)到這里基本你已經(jīng)可以去投遞簡歷去面試了,有人說剛剛畢業(yè)的新人怎么去寫好自己的簡歷讓面試官給你offer呢?
這個(gè)我就以我自己為例,當(dāng)時(shí)我選的是拉鉤和智聯(lián)招聘還有就是獵聘網(wǎng),我觀察過,這三家是招人招的多,HR查看簡歷回復(fù)快的三家。后來我就自己在網(wǎng)上觀看了很多人的簡歷和制作以及面試過后發(fā)出的簡歷模版,我發(fā)現(xiàn)別人之所以面試上寫的不是自己大學(xué)的參加比賽,而是自己寫做的項(xiàng)目經(jīng)驗(yàn)和實(shí)習(xí)經(jīng)歷,這些是一家招聘公司最看重的,他們想要招聘的員工是想有工作經(jīng)歷或者是項(xiàng)目經(jīng)驗(yàn),可以協(xié)調(diào)配合項(xiàng)目組開發(fā),然后是有認(rèn)知,態(tài)度好,又負(fù)責(zé)的員工。當(dāng)時(shí)我結(jié)合這些把自己做過的項(xiàng)目整合一起寫了自己做的項(xiàng)目經(jīng)驗(yàn),因?yàn)檫@些也是我自己的經(jīng)歷,雖然沒有實(shí)習(xí)但是這樣的經(jīng)歷也是面試官想看到的,我就當(dāng)時(shí)把這些整理好,投遞了幾份簡歷,然后第二天就有三家讓我面試,結(jié)果面試三家都要我,我就選擇了一家外企,也就是我現(xiàn)在今天這家公司。這個(gè)詳細(xì)的面試,可以留給我們chat的時(shí)候可以細(xì)聊中間的事項(xiàng)。
對于這個(gè)問題我相信很多人都是有很多問題和疑問的,我在工作之后也參與過很多次招聘員工,然后面試員工,漸漸的我就明白了現(xiàn)代企業(yè)需要的前端人才是什么樣的呢?肯定很多人想的是技術(shù),然后人品,還有能力。恩恩沒錯(cuò)但是我覺得公司需要的不僅僅是這樣的人,能力,技術(shù),人品除了這些還看一個(gè)人的態(tài)度以及面對壓力處理問題的思路,以及有評估一個(gè)項(xiàng)目的截止時(shí)間,更重要的一點(diǎn)是認(rèn)知。這個(gè)是我們在企業(yè)一直強(qiáng)調(diào)的,技術(shù)不行可以提高,但是如果一個(gè)人認(rèn)知不行,那就是真的沒有辦法了。所以我們一直在不斷的努力學(xué)習(xí),其實(shí)就是提高我們自己認(rèn)知的,同時(shí)也在提高我們自己的能力問題。最好的提高自己認(rèn)知的方法就是去不斷的學(xué)習(xí),最好可以去看看國外一些大牛的博客,tutorialspoint,還有就是這個(gè)stackoverflow,還有就是大家經(jīng)常逛的www.github.com ,上面很多的開源的代碼和開源的技術(shù)資料,等等。這些都是伴隨我自己不斷的一路走來的心路歷程。
想說的感覺還有很多但是限于文章的形式,有很多話語又不能說完,但是這些是我一路走過來經(jīng)歷的和不斷提高的過程走到一個(gè)階段就會去思考下一個(gè)階段的問題和目標(biāo)。前端是一個(gè)不斷有新的技術(shù)衍生的領(lǐng)域,框架,工具等都是在不斷的發(fā)展中變革,所以只有保持不斷的學(xué)習(xí)才可以讓自己不斷的進(jìn)步,詳細(xì)的內(nèi)容我們可以在chat交流的時(shí)候,好好交流下。
GitChat是一種全新的閱讀/寫作互動體驗(yàn)產(chǎn)品。一場Chat包含一篇文章和一場為文章的讀者和作者定制的專屬線上交流。本文出自Chat話題《如何從零開始自學(xué)前端》。
GitChat
一種全新的IT知識學(xué)習(xí)方式
聯(lián)系客服