寫在最前:
優(yōu)秀的Web前端開發(fā)工程師要在知識體系上既要有廣度和深度!應該具備快速學習能力胰柑。
前端開發(fā)工程師不僅要掌握基本的Web前端開發(fā)技術(shù)截亦,網(wǎng)站性能優(yōu)化、SEO和服務器端的基礎(chǔ)知識柬讨,而且要學會運用各種工具進行輔助開發(fā)以及理論層面的知識崩瓤,包括代碼的可維護性、組件的易用性踩官、分層語義模板和瀏覽器分級支持等却桶。
前端工程師至少都要滿足四類客戶的需求:
1、產(chǎn)品經(jīng)理蔗牡。
這些是負責策劃應用程序的一群人颖系。他們會想出很多新鮮的、奇怪的辩越、甚至是不可能實現(xiàn)的應用嘁扼。一般來說,產(chǎn)品經(jīng)理都追求豐富的功能黔攒。
2趁啸、UI設計師。
這些人負責應用程序的視覺設計和交互模擬督惰。他們關(guān)心的是用戶對什么敏感不傅、交互的一貫性以及整體的好用性。一般來說赏胚,UI設計師侯傾向于流暢靚麗访娶、但并不容易實現(xiàn)的用戶界面,而且他們經(jīng)常不滿前端工程師造成 栅哀。1px 的誤差震肮。
3称龙、項目經(jīng)理。
這些人負責實際地運行和維護應用程序戳晌。項目管理的主要關(guān)注點鲫尊,無外乎正常運行時間、應用程序始終正陈儋耍可用的時間疫向、性能和截止日期。項目經(jīng)理追求的目標往往是盡量保持事情的簡單化豪嚎,以及不在升級更新時引入新問題搔驼。
4、最終用戶侈询。
指的是應用程序的主要消費者舌涨。盡管前端工程師不會經(jīng)常與最終用戶打交道,但他們的反饋意見至關(guān)重要扔字。最終用戶要求最多的就是對個人有用的功能囊嘉,以及競爭性產(chǎn)品所具備的功能。
好了革为,列舉了這么多…… 你真的還想學前端么扭粱?不后悔吧? 如果真的做好了準備的話震檩,哈哈琢蛤,那我們就一起享受學習前端的樂趣吧!
零基礎(chǔ)開始學web前端要學哪些內(nèi)容抛虏?到底該怎么學博其?
新手學習前端的話,一定要想想為什么要學習它嘉蕾,是出于一種什么心態(tài)贺奠,然后定位好自己,多向大牛請教错忱,多教一些沒有自己水平高的人儡率,那樣往往能讓自己成長的快,切勿急躁以清。在這里一定要對自己做分析儿普,然后找出一種適合的學習方法。
Web前端的學習誤區(qū):
網(wǎng)頁制作是計算機專業(yè)同學在大學期間都會接觸到的一門課程掷倔,而學習網(wǎng)頁制作所用的第一個集成開發(fā)環(huán)境(IDE)想必大多是Dreamweaver眉孩,這種所見即所得的“吊炸天”IDE為我們制作網(wǎng)頁帶來了極大的方便。
入門快、見效快讓我們在不知不覺中已經(jīng)深深愛上了網(wǎng)頁制作浪汪。此時巴柿,很多人會陷入一個誤區(qū),那就是既然借助這么帥的IDE死遭,通過鼠標點擊菜單就可以快速方便地制作網(wǎng)頁广恢。
那么我們?yōu)槭裁催€要去學習HTML、CSS呀潭、JavaScrpt钉迷、jQuery等這些苦逼的代碼呢?這不是舍簡求繁嗎?但是隨著學習的深入,就會發(fā)現(xiàn)我們步入了一種窘境——過分的依賴IDE導致我們不清楚其實現(xiàn)的本質(zhì)钠署,知其然但不知其所以然糠聪。
因此在頁面效果出現(xiàn)問題時,我們便手足無措谐鼎,更不用提如何進行頁面優(yōu)化以及完成一些更高級的應用了舰蟆。其原因是顯而易見的——聰明的IDE成全了我們的惰性,使我們忽略了華麗的網(wǎng)頁背后最本質(zhì)的內(nèi)容——code该面。
正確的方向勝過無謂的努力:
有兩只螞蟻想翻越一段墻夭苗,尋找墻那頭的食物。一只螞蟻來到墻腳就毫不猶豫地向上爬去隔缀,可是每當它爬到大半時,就會由于勞累傍菇、疲倦而跌落下來猾瘸。雖然它不氣餒,一次次跌下來丢习,又迅速地調(diào)整一下自己牵触,重新開始向上爬去。
另一只螞蟻觀察了一下咐低,決定繞過墻去揽思。很快,這只螞蟻繞過墻來到食物前见擦,開始享受起來;而另一只螞蟻還在不停地跌落下去又重新開始钉汗。
很多時候,成功除了勇氣鲤屡、堅持不懈外损痰,更需要方向。也許有了一個好的方向酒来,成功來得比想象的更快卢未。如果在錯誤的路上奔跑,再怎么努力也是白搭。學習Web前端也是如此,首先應該選擇一個正確的學習路線辽社。
在這里將Web前端的學習分為以下幾個階段伟墙,具體的學習路線圖如圖所示:
(web前端學習交流群:328058344 禁止閑聊,非喜勿進5吻Α)
>>>>第一階段--HTML的學習
超文本標記語言(HyperText Mark-up Language 簡稱HTML)是一個網(wǎng)頁的骨架戳葵,無論是靜態(tài)網(wǎng)頁還是動態(tài)網(wǎng)頁,最終返回到瀏覽器端的都是HTML代碼失息,瀏覽器將HTML代碼解釋渲染后呈現(xiàn)給用戶譬淳。因此,我們必須掌握HTML的基本結(jié)構(gòu)和常用標記及屬性盹兢。
HTML 的學習是一個記憶和理解的過程邻梆,在學習過程中可以借助Dreamweaver的“拆分”視圖輔助學習。在“設計”視圖中看效果绎秒,在“代碼”視圖中學本質(zhì)浦妄, 將各種視圖的優(yōu)勢發(fā)揮到極致,這種對照學習的方法彌補了單純識記HTML標簽和屬性的枯燥乏味见芹,想必對各位初學的小盆友們來說必定是極好的!
在學習了HTML之后剂娄,我們只是掌握了各種“原材料”的制作方法,要想蓋一幢樓房就還需要把這些“原材料”按照我們設計的方案組合布局在一起并進行一些樣式的美化玄呛。
>>>>第二階段--css的學習
CSS是英文Cascading Style Sheets的縮寫阅懦,叫做層疊樣式表,是能夠真正做到網(wǎng)頁表現(xiàn)與內(nèi)容分離的一種樣式設計語言徘铝。相對于傳統(tǒng)HTML的表現(xiàn)而言其樣式是可以復用的耳胎,這樣就極大地提高了我們開發(fā)的速度,降低了維護的成本惕它。
同時CSS中的盒子模型怕午、相對布局、絕對布局等能夠?qū)崿F(xiàn)對網(wǎng)頁中各對象的位置排版進行像素級的精確控制淹魄。通過此階段的學習郁惜,我們就可以順利完成“一幢樓房”的建設。
“樓房”建設完成之后甲锡,我們可以交給用戶使用兆蕉,但是如果想讓用戶獲得更佳的體驗,我們還可以對“樓房”進行更深一步的“裝修”搔体,讓它看起來更“豪華”一些恨樟。
>>>>第三階段--javascript的學習
JavaScript是一種在客戶端廣泛使用的腳步語言,在JavaScript當中為我們提供了一些內(nèi)置函數(shù)疚俱、對象和DOM操作劝术,借助這些內(nèi)容我們可以來實現(xiàn)一些客戶端的特效、驗證、交互等养晋,使我們的頁面看起來不那么呆板衬吆,屌絲瞬間逆襲高富帥!有么有?
此時,也許你還沉浸在JavaScript給你帶來的驚喜之中绳泉,但你的項目經(jīng)理卻突然對你大吼道
“這個效果在××瀏覽器下不兼容逊抡,重新搞……”
“不兼容?”瞬間石化了有木有?
“我去,坑爹啊!那可是花了我一個晚上寫了幾百行代碼搞定的啊零酪,吐血了都!”
JavaScript的兼容性和復雜性有時候的確讓我們頭疼冒嫡,還好有“大神”幫我們做了封裝。
>>>>第四階段--jquery的學習
jQuery 是一個免費四苇、開源的輕量級的JavaScript庫孝凌,并且兼容各種瀏覽器(jQuery2.0及后續(xù)版本放棄了對IE6/7/8瀏覽器的支持),同時現(xiàn)在有很多基于jQuery的插件可供選擇月腋,這樣在我們實現(xiàn)一些豐富的動態(tài)效果時更方便快捷蟀架,大大節(jié)省了我們開發(fā)的時間,提高了開發(fā)速度榆骚,這也充分體現(xiàn)了其 write less,do more的核心宗旨片拍。這個Feel倍兒爽!有么有?
>>>>第五階段--bootstrap的學習
“豪華大樓”至此拔地而起,但是每天這樣日復一日妓肢,年復一年的蓋樓捌省,好繁瑣!能不能將大樓里面每一個單獨部件模塊化,當需要蓋樓時就像堆積木一樣組合在一起碉钠,這樣豈不是爽歪歪?可以實現(xiàn)嗎?答案是肯定的所禀。這種思想在Web前端開發(fā)中也是適合的,于是乎就出現(xiàn)了各種前端框架放钦,在這里推薦給大家的是Bootstrap。Bootstrap是Twitter推出的一個開源的用于前端開發(fā)的工具包恭金,是一個CSS/HTML框架操禀,并且支持響應式布局。一經(jīng)推出后頗受歡迎横腿,一直是GitHub上的熱門開源項目颓屑。在項目開發(fā)過程中,我們可以借助Bootstrap提供的CSS樣式耿焊、組件揪惦、JavaScript插件等快速的完成頁面布局和樣式設置,然后再有針對性的微調(diào)樣式罗侯,這樣基于框架進行開發(fā)大大縮短了開發(fā)周期器腋。站在巨人的肩膀上就是爽!
學習Web前端中的一些建議和方法:
在CSS布局時需要注意的一個問題是很多同學缺乏對頁面布局進行整體分析,不能夠從宏觀上對頁面中盒子間的嵌套關(guān)系進行把握,就急于動手去做纫塌,導致頁面中各元素間的關(guān)系很混亂诊县,容易出現(xiàn)盒子在浮動時錯位等情況。建議大家在布局時采用“自頂向下措左,逐步細化”的思想依痊,先用幾個盒子將頁面從整體上劃分,然后逐步在盒子中繼續(xù)嵌套盒子怎披。
“君子生非異也胸嘁,善假于物也”,在學習的過程中還要多瀏覽一些優(yōu)秀的網(wǎng)站凉逛,善于分析借鑒其設計思路和布局方法性宏,見多方能識廣,進而才可以融會貫通鱼炒,取他人之長為我所用衔沼。
每個人的成長與基礎(chǔ)不一樣,結(jié)合自己的實際情況昔瞧,在執(zhí)行指蚁。還是重復一下,前端的核心是js自晰,css不難凝化,但需要來積累。對前端我是這么看的:
css就像一瓶酒酬荞,得品搓劫。
html,css總共就那些標簽跟選擇器屬性什么的,但是要寫一個有擴展性混巧,健壯性或維護性的頁面不容易∏瓜颍現(xiàn)在寫頁面基本條件反射,不是如何快速的完成咧党,而是思考如果有界面需求修改秘蛔,怎么在修改代碼最少的情況下快速完成需求任務。這是對前端耐力傍衡,體力深员,智力的三重考驗。
js就像一把劍蛙埂,得磨倦畅。
js剛開始只是為了較驗,隨便技術(shù)社會的發(fā)展绣的,承擔的角色越來越重叠赐,剛開始玩玩jQuery感覺已經(jīng)會js了欲账,其實只是冰山一角。隨著對js的了解越來越多燎悍,他即變態(tài)又可愛敬惦,即好玩又難控,即有很多兼容問題谈山,但解決兼容是我們基本生存之道俄删。從ajax到jsmvc一路走一路看,高載潮一浪高過一浪奏路。
人生就是一場夢畴椰,得作。
技術(shù)只是生活的一部分鸽粉,曾經(jīng)雄心斗志斜脂,如今低頭寫碼。改變能改變的触机,接受不能改變的帚戳。人生有限,兄爭朝夕啊儡首。人生學習的態(tài)度是:不急不躁片任,不快不慢。持之以恒蔬胯,相信自己对供。不求能改變世界,但求能改變自己的生活氛濒。不求健步如飛产场,但求一步一腳印。感謝磨難舞竿,他使我們內(nèi)心更為堅強京景。感謝挫折,他使我們不斷的成長骗奖,感謝bug醋粟,他使我們的思維更加深邃。感謝前端重归,他使我們更加的相信,撐起一片天空需要十八般武藝厦凤。
最后鼻吮,前端工程師的價值體現(xiàn)在哪里? 一起來看下互聯(lián)網(wǎng)大牛對前端工程師是如何評價的:
張克軍 豆瓣前端工程師:
個人認為前端工程師正慢慢演變?yōu)楫a(chǎn)品工程師。WAP App较鼓,響應性 UI 等以 HTML5 技術(shù)為基礎(chǔ)的開發(fā)將成為前端工程師的主要工作內(nèi)容椎木,解決產(chǎn)品跨平臺跨設備的實現(xiàn)問題违柏。Javascript,HTML香椎,CSS 這些前端工程師熟悉的漱竖,多年使用的語言,作為開放標準將被各種平臺所支持畜伐。
產(chǎn)品形態(tài)和數(shù)據(jù)的分離是形勢所趨馍惹。移動時代對產(chǎn)品形態(tài)多元化的要求雖然可以靠不同技術(shù)分別實現(xiàn),但要付出巨大的成本玛界。這也是 HTML5 這個 04 年就提出來的標準万矾,直到前兩年才火爆的原因。
現(xiàn)階段的價值也很大慎框。Web 產(chǎn)品交互越來越復雜良狈,用戶使用體驗和網(wǎng)站前端性能優(yōu)化,這些都需要專業(yè)的前端工程師來解決笨枯。另外薪丁,在項目中還要彌補設計師在交互設計上的不足,前端工程師在開發(fā)過程中起著重要的承上啟下的作用馅精。
一兩個前端工程師就可以讓整個開發(fā)并行起來严嗜,讓設計到實現(xiàn)的轉(zhuǎn)換更順利。明智的公司應該貯備前端工程師資源硫嘶。
我不認為前端工程師和產(chǎn)品經(jīng)理有什么關(guān)系阻问。好的前端工程師一定會成為好的交互設計師。前端工程師對信息架構(gòu)的理解應不亞于專業(yè)的交互設計師沦疾。
張經(jīng)緯 前端工程師:
一称近、前端工程師所需要掌握的基本技能:
? HTML CSS
? JavaScript
? PHP/ASP/或者其他廣泛應用在 Web 領(lǐng)域的編程語言
? 美術(shù)、視覺
二哮塞、前端工程師面向于:
? 用戶
? 瀏覽器
? 數(shù)據(jù)接口
三刨秆、那么前端工程師的價值體現(xiàn)在哪兒呢?
? 為簡化用戶使用提供技術(shù)支持(交互部分)
? 為多個瀏覽器兼容性提供支持
? 為提高用戶瀏覽速度(瀏覽器性能)提供支持
? 為跨平臺或者其他基于 webkit 或其他渲染引擎的應用提供支持
? 為展示數(shù)據(jù)提供支持(數(shù)據(jù)接口)
元彥云端工程師:
關(guān)于前端攻城師的價值體現(xiàn),我覺得主要取決于下面幾個方面:
- 與用戶最近忆畅,最愿意揣測用戶衡未,是工程師中最了解用戶的
- 前端充滿創(chuàng)新
- 前端技能 JavaScript、HTML家凯、CSS....入門易缓醋,深入難
- 前后端交互方式多樣,適用場景不同绊诲,Ajax(Post送粱、Get)、Comet(輪訓掂之、長輪訓抗俄、永久幀脆丁、XHR 流)、WebSocket
- 隨之瀏覽器的發(fā)展动雹,很多技術(shù)方案開始偏向于前端
- 前端不僅僅是 Desktop,而有 Mobile槽卫、Pad、TV......
李春平百度研發(fā)工程師:
應該來講有三條路胰蝠,一個是向前走歼培,一個是向后走,另外一個是一直做前端姊氓,深入下去丐怯。
向前即是前面所說的往用戶體驗與交互設計甚至產(chǎn)品設計師上走,這是最能體現(xiàn)前端價值的了翔横,即用戶體驗读跷,大多人會往這方面走;
向后走就是做 Web 開發(fā),往數(shù)據(jù)庫和后臺開發(fā)方面走禾唁,不再區(qū)分前后端效览,大家深入產(chǎn)品的研發(fā)實現(xiàn),這條路就是與軟件工程師融合的路荡短,這是的價值就體現(xiàn)在對于業(yè)務功能的實現(xiàn)上;
最后還有的是一直深入做前端開發(fā)丐枉,比如前端各類庫與框架的架構(gòu)設計,W3C 各種標準深入研究掘托,對于 JavaScript 語言本身的研究瘦锹,對瀏覽器的原理分析,對于網(wǎng)絡傳輸協(xié)議的原理分析等等闪盔,這條路要深入下去很不容易弯院,因為涉及很多原理與根本性的東西,所以走的人也不是很多泪掀。
當然了听绳,還有一些徹底離開了前端甚至軟件開發(fā),轉(zhuǎn)行專門做產(chǎn)品或者做業(yè)務運營异赫∫握酰可能會因為有不錯的技術(shù)背景有一定的優(yōu)勢呢。
胡金埔前端開發(fā)者:
我覺得前端工程師需要分兩個方向來看各自的價值:
第一個方向:讓用戶更便捷的獲取信息塔拳。這是大部門公司前端工程師應該努力做好的事情鼠证。拿到 psd,產(chǎn)出線上的代碼靠抑,這個過程中的每個細節(jié)都值得你去用認真的態(tài)度做好名惩。表單的各種交互,頁面不同元素(區(qū)域)間的信息交互孕荠,這都未必是普通 ID 可以給你指導好的娩鹉,你需要依賴自己的技術(shù)能力和自己對用戶需求的感知去完成。
這個方向的價值就體現(xiàn)為:信息獲取是否更加便捷?從而你的用戶量是否上漲了?在線預訂是否提高了?
第二個方向:讓前端更加專業(yè)稚伍。這是一些研究院的大牛每天做的事情弯予。閱讀規(guī)范,比較不同版本的區(qū)別个曙,并思考引入新特性的意義(技術(shù)或商業(yè))锈嫩。關(guān)注 行業(yè)的最新發(fā)展,找出一些創(chuàng)新點垦搬,如果可以的話呼寸,站在巨人的肩膀上,不盲目的造輪子猴贰。最后对雪,不管是自己的創(chuàng)新還是自己的整理好的當前解決某個問題的最佳方 案,都會給整個行業(yè)以及自己的公司的其他前端同學的工作帶來更多的支持米绕。
這個方向的價值更加的技術(shù)化瑟捣,可能短時間無法直接量化,但一段時間后栅干,會從提高的個人生產(chǎn)率迈套,頁面交互的新模型等方面得到體現(xiàn),甚至會導致新的產(chǎn)品碱鳞。
元亮 前端工程師:
產(chǎn)品工程師-Web 產(chǎn)品 APP 化使得前端需要了解產(chǎn)品的設計和交互實現(xiàn)細節(jié)桑李,從而使前端代碼結(jié)構(gòu)合理可擴展!
跨平臺設備實現(xiàn)-并不單單是各瀏覽器的跨平臺兼容了。現(xiàn)在的物理設備多樣窿给,只要和用戶產(chǎn)生直接互動的實現(xiàn)工作都可以稱為前端!
完美優(yōu)雅實現(xiàn)交互和設計細節(jié)-用最精簡的代碼和最小的代價還原交互和設計的細節(jié)贵白,可用性和可訪問性的提升!
用戶體驗和新技術(shù)的結(jié)合-HTNL5的發(fā)展使得 Web 和移動應用有更優(yōu)和更佳合理的實現(xiàn)方式,網(wǎng)站前端性能優(yōu)化-節(jié)省用戶成本填大,節(jié)省公司成本戒洼,可擴展的標準接口-語義化的頁面使得網(wǎng)站無論從 seo 角度和機器可讀行得到更大得提升,標準化可擴展的數(shù)據(jù)接口使得和后臺的聯(lián)系更佳無縫!同時也會大大提升開發(fā)效率允华。
網(wǎng)站形象的業(yè)內(nèi) PR-以最直觀可見的方式展示公司網(wǎng)站和公司形象!
前端的需求
需要理解產(chǎn)品的邏輯和形成的過程- 希望參與開發(fā)產(chǎn)品頁面的相關(guān)人員參與到產(chǎn)品討論的階段圈浇,了解產(chǎn)品的需求。以及了解產(chǎn)品的未來的隱性需求!列席即可!
需要了解交互細節(jié)-希望參與開發(fā)產(chǎn)品頁面的相關(guān)人員參與到交互討論當中靴寂,理解交互和設計細節(jié)! 使頁面結(jié)構(gòu)合理和具有可擴展性!列席即可!如果合理化建議可以提出!
需要了解數(shù)據(jù)接口-理解產(chǎn)品相關(guān)模塊所需要的數(shù)據(jù)與相關(guān)技術(shù)人員溝通形成文檔磷蜀。
需要技術(shù)的積累和新技術(shù)的學習-希望有團隊內(nèi)的交流活動,頭腦風暴!學習了解最新的行業(yè)技術(shù)百炬,參加業(yè)界的交流!
結(jié)束語
前端就是后臺實現(xiàn)和視覺表現(xiàn)的橋梁褐隆,是貫穿在整個產(chǎn)品開發(fā)過程的紐帶,起到承上啟下的作用剖踊,一個好的前端工程師他能夠很好理解產(chǎn)品經(jīng)理對用戶體驗的要求庶弃,也能夠很好地理解后臺工程師對數(shù)據(jù)邏輯衫贬,或者程序邏輯進行分離的要求,并將這些要求轉(zhuǎn)化成前臺的開發(fā)工作歇攻。前端就是網(wǎng)站的門面固惯,它的價值遠大于 其他的客戶端開發(fā)。