一、技術(shù)是必須的作為一名最基礎(chǔ)的前端工程師你必須掌握HTML、CSS和JavaScript。三者必須同時精通,類似我這樣對前端知識一知半解的,一遇到問題就 停下工作就四處搜索解決方案的,首先就算不上一個合格的前端人員。像我這樣的如果當(dāng)了前端工程師那工期肯定是不能保證的。合格的前端工程師第一要學(xué)會的就 是在沒有任何外來幫助的情況下(包括搜索引擎),能夠完成大多數(shù)任務(wù)。
以下知識點是作為一個前端工程師必須了解和熟悉的:
- DOM結(jié)構(gòu)——兩個節(jié)點之間可能存在哪些關(guān)系以及如何在節(jié)點之間任意移動。
- DOM操作——怎樣添加、移除、移動、復(fù)制、創(chuàng)建和查找節(jié)點。
- 事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。
- XMLHttpRequest——這是什么、怎樣完整地執(zhí)行一次GET請求、怎樣檢測錯誤。
- 嚴(yán)格模式與混雜模式——如何觸發(fā)這兩種模式,區(qū)分它們有何意義。
- 盒模型——外邊距、內(nèi)邊距和邊框之間的關(guān)系,IE < 8中的盒模型有什么不同。
- 塊級元素與行內(nèi)元素——怎么用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應(yīng)該如何定義它們的樣式。
- 浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。
- HTML與XHTML——二者有什么區(qū)別,你覺得應(yīng)該使用哪一個并說出理由。
- JSON——它是什么、為什么應(yīng)該使用它、到底該怎么使用它,說出實現(xiàn)細(xì)節(jié)來。
上述這些知識點都應(yīng)該是你“想都不用想”就知道的東西。除了上述的前端知識,也還需學(xué)會至少一門后端編程語言,讓你自己學(xué)會如何與后端進行更好的交互。
很多前端工程師對一些庫非常的熟悉,jQuery,Bootstrap等,但是對于庫的熟悉并不能提現(xiàn)你的優(yōu)秀,真正優(yōu)秀的是那些理解庫背后的機制,特別是能夠徒手寫出一個自己的庫的人。
真正合格的前端工程師是能實現(xiàn)具體的功能要求,而優(yōu)秀的前端工程師需要解決的問題是尋找一個最優(yōu)的解決方案。
二、溝通很重要
優(yōu)秀的前端工程師需要具備良好的溝通能力,因為你的工作與很多人的工作息息相關(guān)。在任何情況下,前端工程師至少都要滿足下列四類客戶的需求。
- 產(chǎn)品經(jīng)理——這些是負(fù)責(zé)策劃應(yīng)用程序的一群人。他們能夠想象出怎樣通過應(yīng)用程序來滿用戶需求,以及怎樣通過他們設(shè)計的模式賺到錢(但愿如此)。一般來說,這些人追求的是豐富的功能。
- UI設(shè)計師——這些人負(fù)責(zé)應(yīng)用程序的視覺設(shè)計和交互模擬。他們關(guān)心的是用戶對什么敏感、交互的一貫性以及整體的好用性。他們熱衷于流暢靚麗但并不容易實現(xiàn)的用戶界面。
- 項目經(jīng)理——這些人負(fù)責(zé)實際地運行和維護應(yīng)用程序。項目管理的主要關(guān)注點,無外乎正常運行時間——應(yīng)用程序始終正??捎玫臅r間、性能和截止日期。項目經(jīng)理追求的目標(biāo)往往是盡量保持事情的簡單化,以及不在升級更新時引入新問題。
- 最終用戶——當(dāng)然是應(yīng)用程序的主要消費者。盡管我們不會經(jīng)常與最終用戶打交道,但他們的反饋意見至關(guān)重要;沒人想用的應(yīng)用程序毫無價值。最終用戶要求最多的就是對個人有用的功能,以及競爭性產(chǎn)品所具備的功能。
不要在沒有作出評估之前就隨便接受某項任務(wù)。你必須始終記住,一定先搞清楚別人到底想讓你干什么,不能簡單地接受“這個功能有問題”之類的大概其的 說法。而且,你還要確切地知道這個功能或設(shè)計的真正意圖何在?!凹右粋€按鈕”之類的任務(wù)并不總意味著你最后會加一個按鈕。還可能意味著你會找產(chǎn)品經(jīng)理,問 一問這個按鈕有什么用處,然后再找UI設(shè)計師一塊探討按鈕是不是最佳的交互手段。要成為優(yōu)秀的前端工程師,這種溝通至關(guān)重要。
那么,前端工程師應(yīng)該最關(guān)注哪些人的意見呢?答案是所有這四類人。優(yōu)秀的前端工程師必須知道如何平衡這四類人的需求和預(yù)期,然后在此基礎(chǔ)上拿出最佳 解決方案。由于前端工程師處于與這四類人溝通的交匯點上,因此其溝通能力的重要性不言而喻。如果一個非??岬男鹿δ芤驗闀绊懬岸诵阅?,必須刪繁就簡,你 怎么跟產(chǎn)品經(jīng)理解釋?再比如,假設(shè)某個設(shè)計如果不改回原方案可能會給應(yīng)用程序造成負(fù)面影響,你怎么才能說服UI設(shè)計師?作為前端工程師,你必須了解每一類 人的想法從何而來,必須能拿出所有各方都能接受的解決方案。從某種意義上說,優(yōu)秀的前端工程師就像是一位大使,需要時刻抱著外交官的心態(tài)來應(yīng)對每一天的工 作。
專業(yè)技術(shù)可能會引領(lǐng)你進入成為前端工程師的大門,但只有運用該技術(shù)創(chuàng)造的應(yīng)用程序以及你跟他人并肩協(xié)同的能力,才會真正讓你變得優(yōu)秀。
三、提升無止境
優(yōu)秀的前端工程師應(yīng)該具備快速學(xué)習(xí)能力。推動Web發(fā)展的技術(shù)并不是靜止不動的,這些技術(shù)幾乎每天都在變化,如果沒有快速學(xué)習(xí)能力,你就跟不上 Web發(fā)展的步伐。你必須不斷提升自己,不斷學(xué)習(xí)新技術(shù)、新模式;僅僅依靠今天的知識無法適應(yīng)未來。Web的明天與今天必將有天壤之別,而你的工作就是要 搞清楚如何通過自己的Web應(yīng)用程序來體現(xiàn)這種翻天覆地的變化。
四、前端開發(fā)知識架構(gòu)
- 前端工程師
- 瀏覽器
- 編程語言
- 切頁面
- 開發(fā)工具
- 代碼質(zhì)量
- 前端庫/框架
- 前端標(biāo)準(zhǔn)/規(guī)范
- HTTP1.1
- ECMAScript3/5
- W3C/DOM/BOM/XHTML/XML/JSON/JSONP
- CommonJS/AMD
- HTML5/CSS3
- 性能
- 編程知識儲備
- 部署流程
- 代碼組織
- 安全
- 移動Web
- JavaScript生態(tài)
- 前沿技術(shù)社區(qū)/會議
- 計算機知識儲備
- 編譯原理
- 計算機網(wǎng)絡(luò)
- 操作系統(tǒng)
- 算法原理
- 軟件工程/軟件測試原理
- 軟技能
- 知識管理/總結(jié)分享
- 溝通技巧/團隊協(xié)作
- 需求管理/PM
- 交互設(shè)計/可用性/可訪問性知識
- 可視化
- 后端工程師
- 編程語言
- 數(shù)據(jù)庫
- 操作系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)
本文版權(quán)歸黑馬程序員web前端開發(fā)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處,謝謝!
作者:黑馬程序員web前端培訓(xùn)學(xué)院;
首發(fā):http://web.itheima.com/