前端開發工程師
負責網頁設計開發的網際網路職位
前端開發工程師是Web前端開發工程師的簡稱,2007年才真正開始受到重視的一個新興職業。Web前端開發技術是一個先易后難的過程,主要包括三個要素:HTML(標準通用標記語言下的一個應用)、級聯樣式表和JavaScript。
前端開發工程師不僅要掌握基本的Web前端開發技術,網站性能優化、SEO和伺服器端的基礎知識,而且要學會運用各種工具進行輔助開發以及理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等。
前端開發工程師是一個很新的職業,在國內乃至國際上真正開始受到重視的時間是從2005年開始的,是指Web前端開發工程師的簡稱。 Web前端開發是從美工演變而來的,名稱上有很明顯的時代特徵。在網際網路的演化進程中,Web 1.0時代,網站的主要內容都是靜態的,用戶使用網站的行為也以瀏覽為主。如2005年以後,網際網路進入Web 2.0時代,各種類似桌面軟體的Web應用大量湧現,網站的前端由此發生了翻天覆地的變化網頁不再只是承載單一的文字和圖片,各種富媒體讓網頁的內容更加生動,網頁上軟體化的交互形式為用戶提供了更好的使用體驗,這些都是基於前端技術實現的。目前web前端工程師的年薪待遇平均在10萬以上,高級HTML前端工程師年薪達30—50萬,很多企業對於與web前端相關的技術職位更是求賢若渴。
前端工程師,也叫Web前端開發工程師。他是隨著web發展,細分出來的行業。Web前端開發技術主要包括三個要素:HTML、CSS和JavaScript!HTML甚至不是一門語言,僅僅是簡單的標記語言!CSS只是無類型的樣式修飾語言。當然可以勉強算作弱類型語言。Javascript的基礎部分相對來說不難,入手還算快。
前端開發的入門門檻很低,與伺服器端語言先慢后快的學習曲線相比,前端開發的學習曲線是先快后慢。也正因為如此,前端開發領域有很多自學成“才”的同行,但大多數人都停留在會用的階段,因為後面的學習曲線越來越陡峭,每前進一步都很難。人們常說:不想當裁縫的司機,不是個好廚師。如果單純只是學習前端編程語言、而不懂後端編程語言(PHP、ASP.NET,JSP、Python),也不能算作是優秀的前端工程師。在成為一個優秀的前端工程師的道路上,充滿了汗水和辛勞。
網站重構
隨著Web 2.0概念的普及和W3C組織的推廣,網站重構的影響力正以驚人的速度增長。XHTML+CSS布局、DHTML和Ajax像一陣旋風,鋪天蓋地席捲而來,包括新浪、搜狐、網易、騰訊、淘寶等在內的各種規模的IT企業都對自己的網站進行了重構。
網站重構的目的不是為了讓網頁更符合Web標準,重構的本質是構建一個前端靈活的MVC框架,即HTML作為信息模型(Model),CSS控制樣式(View),JavaScript負責調度數據和實現某種展現邏輯(Controller)。同時,代碼需要具有很好的復用性和可維護性。這是高效率、高質量開發以及協作開發的基礎。
DHTML可以讓用戶的操作更炫,更吸引眼球;Ajax可以實現無刷新的數據交換,讓用戶的操作更流暢。對於普通用戶來說,一個網站是否規範、功能是否強大,伺服器端是用J2EE+Oracle的強大組合,還是用ASP+Access的簡單組合,並沒有太明顯的區別。但是,前端的用戶體驗卻給了用戶直觀的印象。
隨著人們對用戶體驗的要求越來越高,前端開發的技術難度越來越大,Web前端開發工程師這一職業終於從設計和製作不分的局面中獨立出來。
Web前端開發技術包括三個要素:HTML、CSS和JavaScript,但隨著RIA的流行和普及,Flash/Flex、Silverlight、XML和伺服器端語言也是前端開發工程師應該掌握的。Web前端開發工程師既要與上游的交互設計師、視覺設計師和產品經理溝通,又要與下游的伺服器端工程師溝通,需要掌握的技能非常多。這就從知識的廣度上對Web前端開發工程師提出了要求。如果要精於前端開發這一行,也許要先精十行。然而,全才總是少有的。所以,對於不太重要的知識,我們只需要“通”即可。但“通”到什麼程度才算夠用呢?對於很多初級前端開發工程師來說,這個問題是非常令人迷惑的。
Web發展的很快,甚至可以說這些技術幾乎每天都在變化!如果沒有快速學習能力,就跟不上Web發展的步伐。前端工程師必須不斷提升自己,不斷學習新技術、新模式;僅僅依靠今天的知識無法適應未來。Web的明天與今天必將有天壤之別,而前端工程師的工作就是要搞清楚如何通過自己的Web應用程序來體現這種翻天覆地的變化。前端開發的入門門檻其實非常低,與伺服器端語言先慢后快的學習曲線相比,前端開發的學習曲線是先快后慢。所以,對於從事IT工作的人來說,前端開發是個不錯的切入點。
另一方面,正如前面所說,前端開發是個非常新的職業,對一些規範和最佳實踐的研究都處於探索階段。總有新的靈感和技術不時閃現出來,例如CSS sprite、懸浮定位、負邊距布局、柵格布局等;各種JavaScript框架層出不窮,為整個前端開發領域注入了巨大的活力;瀏覽器大戰也越來越白熱化,跨瀏覽器兼容方案依然是五花八門。為了滿足“高可維護性”的需要,需要更深入、更系統地去掌握前端知識,這樣才可能創建一個好的前端架構,保證代碼的質量。
掌握各種修圖軟體,如PS\Fireworks\AI,不要求專業設計師水平,但要會用會改,今天是一專多能的時代,光會編程討不好飯碗的;
精通JavaScript、jQuery、vue、 react、angular等頁面效果框架,這是前端工程師的最核心技能,是專做頁面效果的技術。其實精通了JavaScript,後端編程語言,如.NET、PHP、Ruby都很容易掌握,因為其原理是一樣的;
掌握thinkphp與zend框架,能修改此類開源源碼;
掌握html5與sencha,這是做手機等移動設備的頁面前端技術;
掌握一二種後端編程語言,如PHP、.NET、JAVA,能讀懂後端源碼,實際上其原理跟JS差不多;
掌握node.js,熟悉各種自動化部署工具;
前端是重視用戶體驗的,不是靠美工給的頁面 做出來就行了,那樣不是一個合格的前端。
必須掌握基本的Web前端開發技術,其中包括:CSS、HTML、DOM、javascript、Ajax等,在掌握這些技術的同時,還要清楚地了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug。
在一名合格的前端工程師的知識結構中,網站性能優化、SEO和伺服器端的基礎知識也是必須掌握的。
會運用各種工具進行輔助開發。比如:處理IE系列瀏覽器兼容性問題的IEtester、FF排錯用的Firebug、FlashFirebug、JavaScript Debugger等。
除了要掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持,等等。
可見,如果要把前端開發做得更好、更專業,真的是不簡單。這就是前端開發的特點,也是讓很多人困惑的原因。如此繁雜的知識體系讓新手學習起來無從下手,對於老手來說,也時常不知道下一步該學什麼。
建議在繁雜的體系中有目的有方向的學習和發展,最好是針對崗位。
專家方向
經過幾年的技術積累,大量的項目歷練,很自然地就朝著專家的方向過渡了。技術人普遍具有的一個特徵就是不喜歡管一些亂七八糟的事,更願意鑽研感興趣的技術,解決一些技術難題。走專家路線可能是大多數技術人的選擇。
管理方向
另一個職業方向就是技術管理。技術管理要求的更綜合,日常的工作涉及項目管理,跨部門溝通,團隊管理,技術體系建設等方面。做技術管理意味著遠離一線coding,漸漸失去自己的技術優勢,80%的精力是幫助團隊同學成長,通過團隊完成既定目標。
技術人要經歷一個心態的轉變。但企業招人過去最主要的目的是解決實際面臨的技術問題,所以對於技術管理來說,技術還是一個基本面,不能完全放下,還是要時刻關注技術大方向。
產品&業務方向
還有一個職業方向是轉型做產品經理更多地貼近業務。我身邊有越來越多的前端做了幾年的研發後轉型做了產品。技術人轉型做產品,其實是比較有優勢的,一方面懂技術能更好地和研發溝通,另一方面產品設計上更容易落地。