前端的興起
前端真正興起和開始頻繁出現(xiàn)在大家的視線里梅割,大概是在十年前楼誓。彼時(shí)的 Web 開發(fā)基本是由后端主導(dǎo)矿咕,前端能做的只是校驗(yàn)一下數(shù)據(jù)、操作一下 DOM煞抬。(其中數(shù)據(jù)檢驗(yàn)是 JS 產(chǎn)生的根本原因:當(dāng)時(shí)網(wǎng)絡(luò)太慢霜大,在服務(wù)端檢驗(yàn)數(shù)據(jù)并反饋給用戶,讓用戶知曉輸入錯(cuò)誤革答,這個(gè)流程太長(zhǎng)战坤、反應(yīng)太慢,因此通過腳本在用戶端完成第一步校驗(yàn)残拐,既方便了用戶湖笨,又減輕了帶寬的壓力。)即使 06 年 jQuery 發(fā)布并風(fēng)靡全球蹦骑,以及 XMLHttpRequest 被納入 W3C 標(biāo)準(zhǔn),也沒有改變這種狀況臀防。制約它進(jìn)度的原因很簡(jiǎn)單眠菇,因?yàn)楹芏嗍虑榍岸?做不了 或者 做不好。隨著時(shí)間的推移袱衷,近幾年捎废,Angular、Backbone致燥、React登疗、Vue 等框架陸續(xù)發(fā)布,讓前端越來越正規(guī)化、體系化辐益。此時(shí)雖然仍有很多事断傲,前端 做不了 或者 做不好,但前端這個(gè)崗位卻已變得熱辣空前智政。那么认罩,是什么推動(dòng)著前端發(fā)展到如此大的規(guī)模和火熱的程度?
也許续捂,你可以列舉出很多各種各樣的原因垦垂,但是綜其一點(diǎn),就是 『用戶體驗(yàn)』 牙瓢,是由于所有人對(duì)用戶體驗(yàn)的重視劫拗,才讓前端發(fā)展得這么迅猛,這么快地興起矾克。這里页慷,可能要感謝 Apple,感謝 iPhone聂渊,感謝 Jobs差购,07 年第一代 iPhone 發(fā)布,正式引發(fā)了幾乎所有人對(duì)用戶體驗(yàn)的重視汉嗽,從『只要能用就好』欲逃,變成『要好用我才買單』的心理。而饼暑,前端的先驅(qū)者們稳析、瀏覽器的開發(fā)者們,也順應(yīng)了這個(gè)潮流弓叛,將一系列重要的能力加入了瀏覽器彰居,加入了前端。
其中最重要的一項(xiàng)是 XMLHttpRequest撰筷,也就是 Ajax陈惰,它是富 Web 應(yīng)用的基礎(chǔ),它讓前端可以脫離后端的掌控毕籽,不用通過跳轉(zhuǎn)的方式就能實(shí)現(xiàn)數(shù)據(jù)交互抬闯。感謝微軟,感謝 IE关筒,雖然被 IE 6~8 虐了無數(shù)遍溶握,但是是它引入了 XMLHttpRequest ,引入了 Ajax蒸播,開啟了富 Web 應(yīng)用的時(shí)代睡榆,讓用戶體驗(yàn)大幅提升萍肆。
而近幾年,隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展胀屿,多端多平臺(tái)的需求越來越多塘揣,產(chǎn)品形態(tài)和數(shù)據(jù)分離,是形勢(shì)所趨碉纳。而與此同時(shí)勿负,移動(dòng)時(shí)代對(duì)產(chǎn)品形態(tài)跨端、跨平臺(tái)劳曹、多元化的用戶體驗(yàn)要求奴愉,讓本身就有跨平臺(tái)特性的前端技術(shù)著實(shí)又火了一把,它讓開發(fā)者有更多的時(shí)間和精力關(guān)注用戶體驗(yàn)铁孵,并很容易保持多平臺(tái)用戶體驗(yàn)的統(tǒng)一(不同平臺(tái)用不同技術(shù)實(shí)現(xiàn)锭硼,雖然可以,但成本太高)蜕劝;除去上面的原因之外檀头,前端技術(shù)自帶的熱發(fā)布、熱更新特性岖沛,能在及時(shí)更新業(yè)務(wù)需求的同時(shí)快速修復(fù)用戶所遇到的問題暑始,也是大家選擇它的一種原因。雖然另外還有很多零零總總婴削、各種各樣的原因廊镜,再促使著前端成為當(dāng)前最火爆的幾個(gè)職位之一,但是最根本的原因仍舊是大家對(duì)用戶體驗(yàn)的要求唉俗。
從上面可以看出嗤朴,前端的興起源于所有人對(duì) 用戶體驗(yàn) 的重視,而火爆更是由于所有人對(duì) 多元化的用戶體驗(yàn) 的關(guān)注虫溜。當(dāng)然雹姊,用戶體驗(yàn)不只只是 UI 漂亮、好看衡楞,它是多方面的吱雏,例如視圖的加載速度和流暢程度,這些取決于你選擇技術(shù)的編碼體積瘾境、運(yùn)行效率等多種因素歧杏。說白了,前端的目的就是 讓用戶用得爽寄雀,那么 用戶體驗(yàn) 必須是重中之重。
說了這么多陨献,其實(shí)有一個(gè)很重要的點(diǎn)沒有提到盒犹,那就是 CSS。注重用戶體驗(yàn),首先你要用界面要有 UI急膀,HTML + CSS 作為最簡(jiǎn)單的 UI 構(gòu)建方式沮协,讓前端的 UI 開發(fā)成本低到無與倫比,而開發(fā)成本低才會(huì)有更多的時(shí)間和精力去注重用戶體驗(yàn)卓嫂。同時(shí)慷暂,現(xiàn)在 CSS 也有相應(yīng)的框架,像 PostCss晨雳、Sass 等行瑞,更進(jìn)一步降低了開發(fā)成本,釋放了開發(fā)者的時(shí)間和精力餐禁。
前端興起這十年血久,也是用戶體驗(yàn)飛速增長(zhǎng)的十年。不管是技術(shù)完善度還是從業(yè)人數(shù)帮非,前端這個(gè)方向受到了足夠多技術(shù)人員的關(guān)注氧吐,同時(shí)也受到了足夠多企業(yè)的重視。經(jīng)過前端人不斷的努力末盔,現(xiàn)在的情況又如何呢筑舅?
前端的現(xiàn)狀
提到現(xiàn)狀,必須先提到一個(gè)概念 大前端陨舱。由于近幾年互聯(lián)網(wǎng)的發(fā)展翠拣,尤其是移動(dòng)互聯(lián)網(wǎng)的發(fā)展,有的大前端概念將 Native 歸入前端的范疇隅忿,有的大前端概念將 Node 甚至只渲染頁面的 PHP 歸入前端范疇心剥,但不管怎么說,筆者認(rèn)為 大前端 是未來的一個(gè)趨勢(shì)背桐,將最終目標(biāo)(提升用戶體驗(yàn))一致的技術(shù)歸類到一起优烧,讓開發(fā)者清楚自己的最終目標(biāo)是什么,要怎么做链峭。當(dāng)然畦娄,也正因?yàn)檫@點(diǎn),作為一個(gè)前端工程師弊仪,如果你想更好的發(fā)展熙卡,你應(yīng)該有更廣的知識(shí)面,包括移動(dòng)端知識(shí)励饵、服務(wù)端知識(shí)驳癌。這些知識(shí)結(jié)合你的前端技術(shù),才能更好地實(shí)現(xiàn)優(yōu)秀的用戶體驗(yàn)役听。
拋開大前端颓鲜,單談前端表窘,從前端架構(gòu)層面談,最近比較流行的有四個(gè):老牌勁旅 jQuery甜滨、最近火得不能再火的 React乐严、Google 精品 Angular 以及 MVVM 框架 Vue。現(xiàn)在幾乎所有的項(xiàng)目都會(huì)在這四種架構(gòu)方案中選擇其一作為基礎(chǔ)衣摩,進(jìn)行業(yè)務(wù)開發(fā)昂验。四種框架,四種不同的思想艾扮,簡(jiǎn)單來說:jQuery Dom 驅(qū)動(dòng)的思想深入人心既琴;React 則推崇組件化,萬物皆組件栏渺;Angular 則把 MVC 在前端領(lǐng)域發(fā)揚(yáng)光大呛梆;而 Vue 則是以數(shù)據(jù)驅(qū)動(dòng)為核心的 MVVM 架構(gòu)。作為一個(gè)前端新人磕诊,不可能很快就理解所有知識(shí)和思想填物,只能一步一步來,先把你在工作中所使用的框架理解透徹霎终,再去思考和學(xué)習(xí)別的滞磺。說實(shí)話,會(huì)用和理解的差距很大莱褒。
在這里击困,可能會(huì)有個(gè)疑問,上述四個(gè)架構(gòu)广凸,都很火阅茶,但是哪里涉及到用戶體驗(yàn)了?是的谅海,這些架構(gòu)都沒有直接涉及到 UI脸哀。但是就像足球,沒有勤奮的訓(xùn)練和優(yōu)秀的戰(zhàn)術(shù)扭吁,再好的11人也踢不出好的比賽一樣撞蜂,這些架構(gòu)從開發(fā)成本和開發(fā)體驗(yàn)上,降低了開發(fā)者編碼和維護(hù)的難度侥袜,讓其在 UI 的用戶體驗(yàn)上的付出蝌诡,事半功倍。當(dāng)然枫吧,框架在編碼體積浦旱、運(yùn)行效率等多個(gè)方面影響了最終的用戶體驗(yàn)。
上面所說的是九杂,當(dāng)前前端的一大現(xiàn)狀 —— 框架橫行颁湖,現(xiàn)在很少有公司代兵、有工程師用純?cè)嫉姆绞綌]代碼了。而前端另一大現(xiàn)狀就是 —— 移動(dòng)為先爷狈。原因很簡(jiǎn)單,隨著移動(dòng)互聯(lián)網(wǎng)用戶的暴漲裳擎,各個(gè)公司的產(chǎn)品都是移動(dòng)為先涎永,技術(shù)跟隨著產(chǎn)品的步伐,也必須移動(dòng)為先鹿响。這時(shí)羡微,為了解決多平臺(tái)的問題,Hybrid 方案脫穎而出惶我,包括傳統(tǒng)的基于 WebView 的 Hybrid 方案(例如 Cordova)和 React-Native 等一系列技術(shù)方案妈倔。在這里我就不多說了,關(guān)于移動(dòng)前端的內(nèi)容最近充斥著各種技術(shù)論壇绸贡、交流群盯蝴、公共號(hào),具體的听怕,大家可以自己親身去了解捧挺。
最后,對(duì)于現(xiàn)狀尿瞭,我想大家可能最關(guān)心的其實(shí)是職業(yè)形勢(shì)闽烙。由于前端的興起,前端人才市場(chǎng)相當(dāng)活躍声搁,平均薪金水平也是名列前茅黑竞。與此同時(shí),前端的技術(shù)入門比較容易疏旨,造成另一個(gè)極端情況:人員泛濫很魂、人才稀缺。這種情況充石,一方面由于前端發(fā)展太快莫换,很難短時(shí)間掌握全部知識(shí);另一方面骤铃,高等院校并沒有開設(shè)專門的前端專業(yè)拉岁,大家更多是自學(xué),野路子很多惰爬。所謂亂世出英雄喊暖,這樣的前端大環(huán)境或許對(duì)一個(gè)新入行的同學(xué)更有利。當(dāng)然撕瞧,在如此『亂世』中陵叽,一個(gè)好的職業(yè)規(guī)劃狞尔,才能避免『誤入歧途』,保證自身順利地成長(zhǎng)巩掺。
如何做一個(gè)職業(yè)規(guī)劃
上面講述了前端如何興起和前端的現(xiàn)狀偏序,下面將基于上述兩點(diǎn),分幾個(gè)方面為大家提供一些有關(guān)職業(yè)規(guī)劃的觀點(diǎn)胖替,希望對(duì)大家有幫助研儒。
確定方向
做職業(yè)規(guī)劃的目的是避免迷茫,而避免迷茫最有效的方式就是確定明確的方向和目標(biāo)独令。
對(duì)于任何一個(gè)技術(shù)崗位端朵,都有固定的兩個(gè)方向:技術(shù)專家(架構(gòu)師)和 開發(fā)經(jīng)理。前者偏重技術(shù)燃箭,需要你在當(dāng)前領(lǐng)域鉆研得很深冲呢;后者偏向管理,需要你在對(duì)技術(shù)有很深掌握的同時(shí)招狸,可以帶領(lǐng)團(tuán)隊(duì)完成項(xiàng)目的開發(fā)敬拓。當(dāng)然,兩者并不是魚與熊掌的關(guān)系裙戏,你可以同時(shí)成為技術(shù)專家和開發(fā)經(jīng)理恩尾。
對(duì)于技術(shù)專家和開發(fā)經(jīng)理兩個(gè)方向的選擇,更多取決于你自身在工作中多巴胺的分泌情況挽懦。當(dāng)你專研技術(shù)時(shí)翰意,多巴胺分泌得更多,感到更興奮信柿,或許你會(huì)很容易成為技術(shù)專家冀偶;反之,當(dāng)你跟團(tuán)隊(duì)一起做業(yè)務(wù)時(shí)渔嚷,多巴胺分泌得更多进鸠,更有獲得感,那么你可以嘗試向開發(fā)經(jīng)理方向發(fā)展形病。
當(dāng)然客年,你也可能做什么都沒有分泌太多的多巴胺,那么漠吻,你可以在嘗試一段時(shí)間后量瓜,轉(zhuǎn)型其他職業(yè),例如產(chǎn)品經(jīng)理途乃。前端作為核心是用戶體驗(yàn)绍傲,與用戶最近的工程師,轉(zhuǎn)型產(chǎn)品經(jīng)理,阻礙會(huì)小一些烫饼。況且猎塞,文藝型前端布道人豆瓣前端負(fù)責(zé)人張克軍認(rèn)為,前端工程師正慢慢演變?yōu)楫a(chǎn)品工程師杠纵,前端和產(chǎn)品離得確實(shí)很近荠耽。
當(dāng)你選擇好一個(gè)方向后,你就要朝著這個(gè)方向一步一步進(jìn)發(fā)比藻。丹尼爾在《一萬小時(shí)天才理論》提出一萬小時(shí)定律骇塘,即要成為某個(gè)領(lǐng)域的專家,需要積累一萬小時(shí)韩容。當(dāng)然這只是個(gè)概數(shù),不過每天花更多的時(shí)間去學(xué)習(xí)和實(shí)踐唐瀑,肯定是最有效的群凶。這里,成為技術(shù)專家和開發(fā)經(jīng)理過程中哄辣,關(guān)注的點(diǎn)略有差別请梢。成長(zhǎng)為技術(shù)專家,要更多關(guān)注技術(shù)本身的實(shí)現(xiàn)力穗,包括邏輯毅弧、架構(gòu)、設(shè)計(jì)模式当窗、方法論等够坐;而成長(zhǎng)為技術(shù)經(jīng)理,則要更多關(guān)注技術(shù)開發(fā)的過程崖面,考慮如何提高開發(fā)效率元咙、降低開發(fā)成本、優(yōu)化開發(fā)質(zhì)量等等巫员。不同的人庶香,精力是有限的,選擇性關(guān)注一些必要的方面简识,對(duì)自身快速的成長(zhǎng)是很有必要的赶掖。
做業(yè)務(wù)還是做架構(gòu)
做業(yè)務(wù),時(shí)間要求比較緊七扰,代碼質(zhì)量要求高奢赂,可參考的代碼比較多,業(yè)務(wù)知識(shí)需要學(xué)習(xí)颈走。做架構(gòu)呈驶,時(shí)間稍微自由,對(duì)經(jīng)驗(yàn)要求比較高疫鹊,無可參考代碼袖瞻,專業(yè)基礎(chǔ)知識(shí)需要深刻理解司致;最主要的,做架構(gòu)的你既是開發(fā)聋迎,又是用戶脂矫,還是 PM ,只有 80% – 90% 的明確目標(biāo)霉晕,并在開發(fā)過程中不斷微調(diào)最終的目標(biāo)庭再。
對(duì)于一個(gè)新人,其實(shí)不用糾結(jié)牺堰,做業(yè)務(wù)才是好的選擇拄轻,而且做 技術(shù)含量高、使用流行技術(shù) 的業(yè)務(wù)才是最好的伟葫。原因很簡(jiǎn)單恨搓,架構(gòu)的最終的目的是解決業(yè)務(wù)當(dāng)中的問題,你沒做過業(yè)務(wù)筏养,哪能知道業(yè)務(wù)的問題在哪斧抱,你都不知道要解決什么問題,如何做好架構(gòu)渐溶。所以辉浦,從業(yè)務(wù)做起,是新人最好的選擇茎辐,也是唯一可行的選擇宪郊。而選擇有技術(shù)含量、使用流行技術(shù)的業(yè)務(wù)的原因更多在于成長(zhǎng)拖陆,這樣你的成長(zhǎng)可能會(huì)更快废膘、成長(zhǎng)道路可能會(huì)更直。當(dāng)然慕蔚,這只是『可能』丐黄,不同的人適合不同的業(yè)務(wù),所以不要強(qiáng)求一定『技術(shù)含量高孔飒、使用流行技術(shù)』的業(yè)務(wù)灌闺,更多的而是改變自己,去 適應(yīng)團(tuán)隊(duì)坏瞄、適應(yīng)業(yè)務(wù)桂对,這樣才能 更快地成長(zhǎng)。
事實(shí)上鸠匀,很多時(shí)候蕉斜,你會(huì)遇到很業(yè)務(wù)工作很繁重沒有額外時(shí)間學(xué)習(xí)的情況。而如何在這樣環(huán)境中更快地成長(zhǎng)呢?說白了就是『抄』宅此,不不机错,是 參考。將學(xué)習(xí)融入到工作中父腕,是最好的方法弱匪。做新項(xiàng)目,參考老項(xiàng)目代碼璧亮;做新需求萧诫,參考老需求的代碼;沒有同類型的代碼枝嘶,參考別的業(yè)務(wù)的代碼帘饶。參考前人的經(jīng)驗(yàn),在巨人的肩膀上群扶,成長(zhǎng)才會(huì)變得更快及刻。同時(shí),你的導(dǎo)師和你的伙伴穷当,也會(huì)在業(yè)務(wù)中給你指點(diǎn),幫你快速解決成長(zhǎng)路上的問題淹禾。
在這里馁菜,總結(jié)一下,在繁重的業(yè)務(wù)環(huán)境下快速成長(zhǎng)铃岔,你需要 很優(yōu)秀的學(xué)習(xí)能力汪疮、很持久的耐心 以及 很好的導(dǎo)師和伙伴,這樣才能在技術(shù)成長(zhǎng)的路上事半功倍毁习。
技術(shù)的學(xué)習(xí)
說了半天智嚷,到了最核心的問題了,對(duì)于一個(gè)新人如何學(xué)習(xí)技術(shù)纺且?筆者給的建議是:千萬不要囫圇吞棗盏道,先把當(dāng)前使用的技術(shù)學(xué)透用熟,才是最重要的载碌;千萬不要在還沒把當(dāng)前使用的技術(shù)吃透之前猜嘱,去學(xué)新的東西,不管新的東西有多火嫁艇。就像上文所說朗伶,不同的框架,有不同的核心步咪,有不同的思想论皆。兩個(gè)框架代碼相似之處的思想不一定相似,例如 Angular 和 Vue 都有雙向綁定,雖然效果相似点晴,但是實(shí)現(xiàn)思想和內(nèi)部實(shí)現(xiàn)方式是截然不同的感凤。還在入門階段的你,會(huì)被各種思想充斥頭腦觉鼻,反而會(huì)更不清楚俊扭。
一定的時(shí)間后,當(dāng)你理解透一個(gè)架構(gòu)體系后坠陈,你可以 類比地去看 更多的架構(gòu)體系萨惑。這時(shí)候,你會(huì)發(fā)現(xiàn)不同架構(gòu)很多東西都是殊途同歸仇矾,理解得很快庸蔼。
當(dāng)然,理解透一個(gè)架構(gòu)體系贮匕,有人需要一年姐仅,有人需要三年,還有人可能需要更長(zhǎng)時(shí)間刻盐。為什么有這么大的區(qū)別呢掏膏?因?yàn)橛行┤嗽陂_發(fā)中,并不認(rèn)為完成就可以了敦锌,會(huì)在開發(fā)中馒疹,追求代碼的優(yōu)美,會(huì)不斷優(yōu)化自己的代碼乙墙,讓自己的代碼性能更好颖变、可讀性更高,并通過長(zhǎng)時(shí)間的積累听想,達(dá)到 量變導(dǎo)致質(zhì)變 的程度腥刹。即使一個(gè)特別聰明的人,沒有『量』也不可能『質(zhì)變』的汉买,只不過他的量可能比其他人少而已衔峰。
要提醒的一點(diǎn)是,學(xué)技術(shù)蛙粘,一定要結(jié)合你所在公司朽色、團(tuán)隊(duì)的技術(shù)棧。例如组题,去哪兒前端應(yīng)屆生會(huì)在進(jìn)入業(yè)務(wù)線前葫男,進(jìn)行3個(gè)月的脫產(chǎn)培訓(xùn),2017年的前端培訓(xùn)課程內(nèi)容中涉及的技術(shù)主要是 React 和 React Native崔列,而去哪兒業(yè)務(wù)的技術(shù)棧也大多是 React梢褐,那么作為去哪兒的前端應(yīng)屆生旺遮,你優(yōu)先學(xué)習(xí) React 的技術(shù)體系是事半功倍的,既有前人可以問盈咳,又有項(xiàng)目可以實(shí)踐耿眉。
當(dāng)然,在學(xué)習(xí)架構(gòu)的同時(shí)鱼响,不要忽略兩樣最基本的東西鸣剪,一個(gè)是 技術(shù)基礎(chǔ),一個(gè)是 開發(fā)規(guī)范丈积。
技術(shù)基礎(chǔ)是一切開發(fā)筐骇、架構(gòu)的前提,沒有一個(gè)好的基礎(chǔ)江滨,是無法讓你自身的技術(shù)水平達(dá)到足夠高的維度铛纬。例如你對(duì)于繼承理解的并不透徹,你很難理解清晰 React 的內(nèi)部實(shí)現(xiàn)唬滑。
對(duì)于開發(fā)規(guī)范告唆,筆者在帶應(yīng)屆生時(shí)特別注意讓他們遵守。代碼規(guī)范比比皆是晶密,但是很少有人嚴(yán)格遵守擒悬。究其原因,多是在代碼規(guī)范制定之前稻艰,已經(jīng)有自己的一套代碼習(xí)慣懂牧,很難短時(shí)間改變自己的習(xí)慣。而應(yīng)屆生连锯,一般來說代碼并不多归苍,還沒有形成自己的編碼習(xí)慣用狱。這時(shí)候运怖,開始遵守一定的規(guī)范,會(huì)促使他們養(yǎng)成一個(gè)較好的編碼習(xí)慣夏伊,為后續(xù)的成長(zhǎng)打好基礎(chǔ)摇展。下面,列舉一下開發(fā)規(guī)范的幾點(diǎn)好處溺忧,讓大家明白代碼規(guī)范的重要性:
規(guī)范的代碼可以促進(jìn)團(tuán)隊(duì)合作咏连。
規(guī)范的代碼可以減少 Bug 處理。
規(guī)范的代碼可以降低維護(hù)成本鲁森。
規(guī)范的代碼有助于代碼審查祟滴。
養(yǎng)成代碼規(guī)范的習(xí)慣,有助于程序員自身的成長(zhǎng)歌溉。
如果是自學(xué)web前端的話垄懂,給以下幾點(diǎn)建議:
1骑晶、根據(jù)自己的情況,規(guī)劃一個(gè)合理的學(xué)習(xí)計(jì)劃草慧,學(xué)習(xí)時(shí)長(zhǎng)桶蛔,學(xué)習(xí)內(nèi)容,以及練習(xí)時(shí)間漫谷。
2仔雷、系統(tǒng)的web前端學(xué)習(xí)教程
3、多實(shí)操舔示,多動(dòng)手碟婆,多練習(xí)
4、一周要進(jìn)行知識(shí)點(diǎn)回顧斩郎,如果不回顧脑融,不去加深記憶,我保證你會(huì)不斷的忘記之前的
5缩宜、找個(gè)專業(yè)的人指導(dǎo)肘迎,不要異想天開覺得自己可以無師自通,這不現(xiàn)實(shí)锻煌,也是對(duì)自己不負(fù)責(zé)任
6妓布、堅(jiān)持每天學(xué)習(xí)不能間斷,準(zhǔn)備好用半年的時(shí)間學(xué)前端宋梧,現(xiàn)在競(jìng)爭(zhēng)大匣沼,技術(shù)學(xué)不好很難就業(yè)
7、跟比較明白的人請(qǐng)教一下學(xué)前端有哪些坑捂龄,避免走太多彎路旅敷,掌握好學(xué)習(xí)方法
自學(xué)路線:
基礎(chǔ)篇
HTML,Css,JavaScript,jQuery這是一個(gè)基本前端必須要掌握的锣枝,比較簡(jiǎn)單墩弯,也是入門級(jí)技術(shù)。
進(jìn)階篇
Bootstrap展融,TypeScript 窖认,JSON,jQuery EasyUI告希,jQuery UI等一些第三方j(luò)s庫扑浸。稍有難度,前期可以基本了解一下燕偶,方便面試喝噪,工作中使用再去研究。
高級(jí)篇
Vue指么,React酝惧,Angular前端主流三大框架驰吓,熟悉一個(gè),了解兩個(gè)系奉。服務(wù)器語言node.js學(xué)習(xí)一下檬贰,版本管理工具,git缺亮,svn學(xué)習(xí)了解翁涤。
主戰(zhàn)場(chǎng) —— 移動(dòng)混合開發(fā)
隨著移動(dòng)浪潮的興起,業(yè)務(wù)在移動(dòng)端App 的需求量迅速擴(kuò)大萌踱,應(yīng)用迭代更新的頻率也隨之極速攀升葵礼,但與此同時(shí)純 Native 的開發(fā)和更新成本成為了業(yè)務(wù)增長(zhǎng)難以逾越的瓶頸。因此并鸵,引入一種開發(fā)更高效鸳粉、成本更低的解決方案勢(shì)在必行。
在當(dāng)前的移動(dòng)互聯(lián)網(wǎng)環(huán)境下园担,iOS 和 Android 上的 App 已經(jīng)成了每個(gè)互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配届谈。如果一個(gè)用戶端產(chǎn)品并不提供相應(yīng) App 版本,幾乎會(huì)直接定義成一個(gè)不完整的產(chǎn)品弯汰。而被互聯(lián)網(wǎng)人尊為鐵律的『唯快不破』—— 快速開發(fā)艰山、高速迭代、低成本上線咏闪,同時(shí)也是移動(dòng)時(shí)代每個(gè)開發(fā)團(tuán)隊(duì)所追求的目標(biāo)曙搬。綜合以上兩點(diǎn)原因,『Native 搭臺(tái)鸽嫂,Web 唱戲』的 Hybrid 開發(fā)模式纵装,以『快』的特點(diǎn)贏得了大家的青睞,并紛紛投入大量開發(fā)力量据某,使這種開發(fā)模式迅速走紅橡娄。當(dāng)前最常見的技術(shù)架構(gòu)方案有以下三種:
基于 Web 的 Hybrid 解決方案:例如微信瀏覽器、各公司的 Hybrid 方案
非基于 Web UI 但業(yè)務(wù)邏輯基于 JavaScript 的解決方案:例如 React-Native
基于 Web UI哗脖,但是為了追求運(yùn)行效率瀑踢,對(duì) UI 展現(xiàn)邏輯和業(yè)務(wù)邏輯的 JavaScript 進(jìn)行了隔離的解決方案:微信小程序
對(duì)于一個(gè)前端扳还,筆者感覺每個(gè)人必須了解這三種常見方案的實(shí)現(xiàn)方式和優(yōu)缺點(diǎn)才避,這樣才能在開發(fā)移動(dòng)端業(yè)務(wù)的時(shí)候,更為清楚自己所要注意氨距、所要學(xué)習(xí)的地方桑逝。當(dāng)然,僅僅了解實(shí)現(xiàn)方式是不夠的俏让,你要有環(huán)境去實(shí)踐你學(xué)習(xí)的東西楞遏。再拿去哪兒為例茬暇,去哪兒現(xiàn)在大多數(shù)業(yè)務(wù)都是移動(dòng)端的,Hybrid 和 RN 方案都在被使用寡喝。所以糙俗,作為一個(gè)應(yīng)屆生,你很有可能去做一些 Hybrid 或者 RN 的項(xiàng)目预鬓。做 Hybrid 項(xiàng)目時(shí)巧骚,你更多要考慮的是『如何高效地操作 Dom』;反之格二,做 RN 項(xiàng)目劈彪,你更多要考慮的則是『如何減少和 Native 的通信』。這兩點(diǎn)顶猜,最終都會(huì)反應(yīng)在項(xiàng)目的用戶體驗(yàn)上沧奴。
這里,會(huì)出現(xiàn)一個(gè)問題长窄,我只是前端滔吠,需不需要去學(xué)習(xí) Node?筆者的答案是 需要挠日。前端興起已經(jīng)很多年屠凶,已經(jīng)從游擊隊(duì)亂槍打鳥的階段逐漸變?yōu)橐?guī)模化肆资、工程化的時(shí)代矗愧。在這個(gè)時(shí)代中,尤其是在工具和流程方面郑原,Node 起到了很大的作用唉韭,扮演很重要的角色。諸如 Webpack犯犁、Gulp属愤、NPM 這些工具,他們被運(yùn)用在各個(gè)公司的各類前端項(xiàng)目中酸役。學(xué)習(xí) Node 其實(shí)就是去學(xué)習(xí)前端的工具住诸,去學(xué)習(xí)前端的工程化。
我目前是在職前端開發(fā)涣澡,如果你現(xiàn)在也想學(xué)習(xí)前端開發(fā)技術(shù)贱呐,在入門學(xué)習(xí)前端的過程當(dāng)中有遇見任何關(guān)于學(xué)習(xí)方法,學(xué)習(xí)路線入桂,學(xué)習(xí)效率等方面的問題奄薇,你都可以申請(qǐng)加入我所在的前端學(xué)習(xí)交流裙:前面:42137 后面:4697。里面聚集了一些正在自學(xué)前端的初學(xué)者,轉(zhuǎn)行者抗愁,初階者馁蒂,里面也有我整理的一些前端書籍PDF呵晚、前端面試題、前端開發(fā)源碼教程等PDF文檔書籍教程,需要的話都可以找裙豬獲取沫屡。