談談Web前端工程師的定位

編程語言 工程師 HTML JavaScript 小風IT互動 2017-06-24

先給前端工程師的工作下個一句話定義:運用前端技術,實現體驗的良好傳達。如果在前面加上 Web,那麼是針對 Web 這個領域的,主要是互聯網,也可以將移動通信網絡和其他傳媒網絡(比如IPTV)包含在內,因為其理念是一致的。

現在要在未畢業的學生中找到一個符合技能條件的 Web 前端工程師可以說是少之又少。而相關領域的從業者,又因為不被重視、幹雜活、薪水低等原因,覺得選錯了行當,又停止了在這個方向上的努力學習。最終導致企業招不到一位滿意的 Web 前端工程師。這涉及到兩個定位的問題,即 1) 企業如何給Web前端工程師定位,2) Web 前端工程師如何定位自己。前者等下次有機會再談,先講後者。

Web 前端工程師如何定位自己

首先,這是很有前途的工作。百安居的衛哲曾經對大學生擇業提出這樣的建議:第一選擇新行業,第二選擇新企業,第三選擇新部門。互聯網行業相對傳統行業,算是新行業;現在創業公司很多;Web 前端工程師又是一個新的崗位。中國的 Web 前端工程師正在起步,會有很好的發展。

然後,想一下自己是否適合和喜歡這份工作。Web 前端工程師並不是設計師,我更傾向於將這個崗位定位為開發人員。這個崗位上每天接觸的更多的仍然是代碼、代碼、代碼。如果你喜歡的是設計,那麼應該適當調整自己的學習重點。Web 前端工程師應該是那種完美主義者,或者有一定程度潔癖,天蠍座較佳,更像程序員。術業有專攻,自己多想想自己的職業規劃。

最後,通過努力找到好的僱主。如果你將自己定位為 Web 前端工程師,那麼去投靠對該崗位有一定認識的公司比較合適(推薦一下淘寶)。在這樣的公司裡面,會有明確的職位說明和職責範圍,以及良好的培養計劃。在這樣的公司能夠有比較好的發展。

但是,如果你現在還不具備應有的一些技能,那麼也可以從“美工”開始接觸起。起碼幾年之內,這個崗位的空缺還是很大的。在這樣的崗位上,臥薪嚐膽個一兩年,同時注重自身知識水平和思想的提高,對 Web 前端工程師就更近一步了。

關於技能

一般來講,企業會更傾向於選擇複合型人才(aka. T型人才)。基本上,我覺得 Web 前端工程師所需技能大致如下:

  • (X)HTML + CSS,從入門到精通

  • JavaScript,基本的 Ajax 和 framework

  • Semantic + Accessibility,主要是思想、理念上

  • 瀏覽器(或者相應播放器)的渲染/重繪原理

  • 其他 RIA 相關技術和理念

看看自己的知識結構,是 T 的一橫不夠廣,還是一豎不夠深?

其他

最後提一下關於企業對於 Web 前端工程師的定位問題。主要是三個:a) 是否需要? b) 明確職責,c) 培養計劃。這些以後再談吧。

要打造一流的Web產品開發團隊,在團隊成員基礎能力上一定要下功夫。對於Web前端產品開發來說,僅僅掌握Web1.0時代簡單的”網頁套接”是完全不夠的。我結合自己的團隊配備,特此羅列了Web前端產品工程師所涉及的技能列表如下:

通過許多實際項目,個人認為一個完備的前端產品開發團隊,必須擁有如下的人才配備,也希望大家補充:

  • 團隊全體成員達到所有技能中的a級標準

  • 團隊全體成員必須掌握兩項技能中的b級標準,並保證所有的b級標準在該團隊中有50%以上成員能達到

  • 團隊全體成員必須掌握一項技能中的c級標準,並保證所有的c級標準在該團隊中有25%以上成員能達到

具體技能描述:

  • 【必備】UserInterface

  1. PhotoShop/Fireworks Design

    a – 配合美工將草圖形成具體的符合WebPage的設計

    b – 有快速製作分層高品質PSD、PNG的能力

    c – 能迅速將PSD、PNG的內容構思成div+css或者table等HTML代碼

  2. Flash Design

    a – 基本動畫效果

    b – 複雜的交互體系設計,瞭解第三方swf輔助設計軟件

    c – 複雜的交互體系設計以及較強的對各類外埠資源(PNG、JPG、MP3、WAV等)的整合能力。精通部分第三方輔助設計軟件(AE、SwishMax、Swift3D等)

  • 【必備】Browser-side (Web Application)

  1. XHTML/CSS

    a – 基本的layout實現

    b – 嚴格跨平臺的layout實現以

    c – 優雅的HTML code,儘可能符合標準並有SEO的考慮因素。在任何平臺、瀏覽器下基本保持一致。不要求瞭解各種CSS的hacks,但要求知道遇到問題應該如何查閱資料以在第一時間內解決。能夠為JavaScript開發人員提供最好操作的DOM結構,讓JS開發人員在開發的時候認為”一切都已經準備就緒了”,而不是”捉襟見肘”。

  2. JavaScript/Ajax/DOM

    a – 基本的DOM操作,瞭解AJAX,可以實現數據通信

    b – 基本的DOM操作,能寫高效率的OOP代碼,以降低維護成本

    c – 基於需求,進行不同的開發,選擇合適的框架,做到代碼效率最高,用戶體驗最好,代碼下載量最小,並且可以在單獨甚至更多產品線中最大限度重用代碼

  3. Flash Developement

    a – 基於Timeline的ActionScript操作,能實現簡單交互

    b – 掌握a外,能實現數據層通信(與服務器以及本地SharedObject)

    c – 精通AS1-3,能根據需求進行各類RIA開發。無論是要求支持FlashPlayer8的,還是FlashPlayer9的,都能做到開發效率最高、靈活性最大(比如對HTML層的接口設計,等等)。

  • 【必備】Client-side (Desktop Application)

  1. Apollo

    a – 產品級的封裝,基本技術瞭解(如何打包、如何加入HTML和JavaScript等)

    b – 掌握a的同時,能利用Apollo的API獨立設計、開發OS的文件I/O功能。

    c – 掌握基本技能的同時,對”3D概念體系”有所認知。這裡”3D”即:Design(設計)、Development(開發)、Deploy(產品部署)。能用Apollo

  2. Windows Presentation Foundation、WPF/E(Silverlight)

    (待定,歡迎補充)

  • 【增補】Server-side (修改:經考慮,這個技能不參與評級)

    本來列舉了”1、Server端簡單的技術、腳本”和”2、MediaServer(Red5)接口”作為”Web前端工程師技能列表“的一種(服務器、數據邏輯層技能的)評判標準。但似乎很多朋友對於前端工程師是否應該掌握Server端技能的必要性表示懷疑。確實,要掌握好上述的展現層技能不是意見容易的事情,而且前端工程師的確非常辛苦。但是,站在另一方面來說,辛苦的原因是什麼,我不知道在你日夜奮戰div+CSS的時候思考過沒有。就我的經驗,前端的辛苦在於以下幾個方面:

    也許表面上看,這跟Server端技能無關,但我覺得有好的Server端的意識,一定會有所幫助(當然不可能解決所有的問題)。畢竟信息結構和數據庫是密切相關的,而Server是連接數據庫的唯一渠道(至少大多數B/S應用是如此)。掌握Server端的基本技能,對於同邏輯層開發人員設計接口是非常重要的。而且HTML表現層在開發時與數據的分離,也與Server端的各種模板技術有關。例如PHP中的Smarty模板(我曾經用的)、jsp的model2概念等等。HTML結構如何設計,如何讓HTML重用,甚至在HTML層進行OOP的開發(我現在在新產品線中設計的前端開發流程),都需要Server端的支持。最起碼,你要告訴php程序員你需要什麼。如果你完全對PHP一無所知的話,那也無從談起了。

    此外,對於創業團隊,往往人手非常有限。為了讓運營成本降到最低,所有的技術人員都有義務對Server端技術有所瞭解。如果為了修改一個網頁的標題還要跑去喊PHP程序員連接Remote Server的話,那實在是增加了整個公司的運營成本。

    總結:我認為,可以不瞭解技術細節,但應該知道原理,最好能掌握一兩套設計思想(畢竟數據邏輯都在這裡走,光看HTML和JavaScript,對人的見識還是有侷限的,這種侷限限制了我自己很久的時間),那將是一比寶貴的財富。

  1. 重複勞動多,大量的div+css都是重複的,即便可以複製粘貼,但幾千行的div海洋中去尋找一個入口恐怕都非常痛苦

  2. 需求變更多,往往你折騰幾個小時終於把跨平臺問題解決好了,而且在IE6、7和Firefox下面都能顯示同樣的效果了,甚至連JavaScript交互都已經快搞定了。突然上面說需求要變。這無疑是莫大的痛苦。

  • 【增補】Mobile-side(不參與評級)

  1. Flashlite

    (待定,歡迎補充)

  2. Java?

    (待定,歡迎補充)

作為一個技術人員,開發人員,在保持純粹地敬業心態(這是前提,這麼沒有,啥也別談)外,更要學會如何保護自己,如何壯大自身,社會不會同情你,只有你自己才能保護你自己。

談談Web前端工程師的定位

相關推薦

推薦中...