從前端小白到技術(shù)專(zhuān)家,這里有3點(diǎn)可執(zhí)行的建議
新人剛接觸前端,你可能會(huì)問(wèn):
零基礎(chǔ)能學(xué)前端課程嗎?
要如何開(kāi)始學(xué)習(xí)前端呢?
如果你是前端工作者,你可能會(huì)問(wèn):
我要怎樣讓自己變得更優(yōu)秀?
前端天花板低發(fā)展,真的遇到瓶頸了嗎?
接下來(lái),我會(huì)從學(xué)習(xí)、實(shí)踐、進(jìn)階三個(gè)方面來(lái)回答這些問(wèn)題,分享我的前端成長(zhǎng)經(jīng)歷。
1.學(xué) 習(xí) 篇
學(xué)習(xí)前端,首先建議大家打好基礎(chǔ)。這里的基礎(chǔ)分為兩大類(lèi):計(jì)算機(jī)基礎(chǔ)和專(zhuān)業(yè)基礎(chǔ)。
有些人可能會(huì)認(rèn)為:即使沒(méi)有這些基礎(chǔ)也能做前端(這也是我們之前說(shuō)門(mén)檻低的原因),但是對(duì)這些基礎(chǔ)知識(shí)的掌握情況和理解程度決定了我們可以走多遠(yuǎn)。這部分的學(xué)習(xí)是一個(gè)循序漸進(jìn)的過(guò)程,不可能一蹴而就。
那如何學(xué)習(xí)這些基礎(chǔ)知識(shí)呢?
我建議從書(shū)籍、代碼、標(biāo)準(zhǔn)三方面入手。
書(shū)籍:當(dāng)需要了解某個(gè)知識(shí)點(diǎn)時(shí),可以多看幾本相關(guān)書(shū)籍,看不同作者對(duì)這個(gè)問(wèn)題的不同闡述,加深自己的理解。對(duì)比著看效果更好。
代碼:檢驗(yàn)我們是否已經(jīng)掌握知識(shí)的好辦法就是閱讀代碼。它不僅幫助我們加深對(duì)知識(shí)的理解,還可以查漏補(bǔ)缺,讓我們得到一些新的啟示。有哪些源碼值得我們?nèi)プx呢?
- 書(shū)籍里的代碼
- 前輩們留下來(lái)的代碼
- 論壇里的經(jīng)驗(yàn)
- 某個(gè)網(wǎng)站的代碼
- 很多開(kāi)源代碼都可以作為我們的參考來(lái)源
- 歸納總結(jié)自己以前寫(xiě)的代碼,你會(huì)得到不一樣的驚喜
標(biāo)準(zhǔn):當(dāng)我們平時(shí)遇到問(wèn)題時(shí),需要追本溯源。而查閱標(biāo)準(zhǔn)就是關(guān)鍵?;ヂ?lián)網(wǎng)技術(shù)更新迭代太快,而且網(wǎng)絡(luò)上的資源良莠不齊。所以我們甄別的重要方法之一就是查閱標(biāo)準(zhǔn)。前端相關(guān)的標(biāo)準(zhǔn)主要分為兩方面,即行業(yè)標(biāo)準(zhǔn)和廠商標(biāo)準(zhǔn)。
制定行業(yè)標(biāo)準(zhǔn)的組織主要包括:ecma組織/IETF組織/W3C組織
制定廠商標(biāo)準(zhǔn)的平臺(tái)主要包括:IE/Chrome/火狐等
2.實(shí) 踐 篇
實(shí)踐階段對(duì)于遇到瓶頸的同學(xué)十分重要,因?yàn)椴还芤允裁礃拥姆绞饺W(xué)習(xí),最終目的就是為了解決實(shí)際問(wèn)題。
圍繞著實(shí)踐中的問(wèn)題,實(shí)際上可以分為:發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題、沉淀問(wèn)題四個(gè)方面。
發(fā)現(xiàn)問(wèn)題的途徑有很多,包括產(chǎn)品的功能需求、開(kāi)發(fā)的非功能要求以及疑問(wèn)、建議、抱怨等。更多的時(shí)候需要前端工程師進(jìn)行思考和歸納,這也是我們面臨的挑戰(zhàn)。
當(dāng)我們發(fā)現(xiàn)問(wèn)題時(shí),不要急于上手解決,要分析問(wèn)題的本質(zhì),確定產(chǎn)生問(wèn)題的因素,和多方溝通,提出多種解決方案,分析各自利弊,再對(duì)照實(shí)際情況做出取舍***解決問(wèn)題。
在業(yè)務(wù)中,80% 的bug主要是業(yè)務(wù)邏輯考慮不全面,漏掉邏輯判斷處理,數(shù)據(jù)格式不規(guī)范等引發(fā)的。這種bug改起來(lái)比較快,但是容易往復(fù)循環(huán),或者引入新的bug。這些bug切碎了開(kāi)發(fā)者的有效工作時(shí)間。
另外還有15%的bug是由開(kāi)發(fā)者自身coding的問(wèn)題引發(fā),屬于技術(shù)性的bug,但隨著開(kāi)發(fā)者對(duì)軟件平臺(tái)以及框架的熟悉,以及自身編程水平以及編程素養(yǎng)的提升,這類(lèi) bug會(huì)逐漸減少。
***,對(duì)問(wèn)題進(jìn)行沉淀,加深理解,進(jìn)而將簡(jiǎn)單問(wèn)題的解決方式應(yīng)用于復(fù)雜問(wèn)題情況下,這也是提升的方式。
3.進(jìn) 階 篇
到了一定程度之后,個(gè)人能力很難再提升,遇到了瓶頸。此時(shí),需要先從個(gè)人角度出發(fā),了解是否觸及天花板,另可以從團(tuán)隊(duì)角度出發(fā),尋找突破點(diǎn)。
個(gè)人能力可以從深度和廣度方面進(jìn)行分析。深度分為三個(gè)階段:表象、原理以及實(shí)現(xiàn)。表象就是之前提到的基礎(chǔ)階段。下一個(gè)階段就是能了解其中原理,對(duì)知識(shí)點(diǎn)能夠把握和識(shí)別。實(shí)現(xiàn)階段就是能夠充分利用已有的知識(shí)體系,進(jìn)行運(yùn)用。
再?gòu)膹V度角度出發(fā),可以分為專(zhuān)業(yè)技能和領(lǐng)域范圍兩部分。專(zhuān)業(yè)技能可以從知識(shí)體系的覆蓋面和了解度出發(fā)。也就是覆蓋面夠不夠廣,以及對(duì)常見(jiàn)解決方案的了解程度。而領(lǐng)域范圍的拓展就需要對(duì)其他產(chǎn)品進(jìn)行了解,比如移動(dòng)端、桌面端等的了解。
以上方面如果都很優(yōu)秀的話(huà),就是一個(gè)很優(yōu)秀的前端工程師了。但是僅僅個(gè)人優(yōu)秀還不夠,我們還需要團(tuán)隊(duì)優(yōu)秀。
團(tuán)隊(duì)方面的突破,重點(diǎn)關(guān)注流程、效率和協(xié)作。目前在網(wǎng)易的工作模式,基本遵循以下的流程,相對(duì)來(lái)說(shuō)還是比較細(xì)致和規(guī)范的。
- 新需求上線
需求→交互→視覺(jué)→開(kāi)發(fā)→自測(cè)→測(cè)試→bug修改→測(cè)試→bug修改→測(cè)試→交互確認(rèn)→視覺(jué)確認(rèn)→上線申請(qǐng)→確認(rèn)→上線
- Hotfix上線
問(wèn)題反饋→bug修改→測(cè)試→bug修改→測(cè)試→上線申請(qǐng)→確認(rèn)→hotfix上線
***給大家分享兩句話(huà):
- 始終保持一份謙虛謹(jǐn)慎的心態(tài)。
- 始終加強(qiáng)學(xué)習(xí)能力的培養(yǎng)。