【必備】UserInterface
PhotoShop/Fireworks Design
配合美工將草圖形成具體的符合WebPage的設計
有快速制作分層高品質PSD、PNG的能力
能迅速將PSD、PNG的內容構思成div+css或者table等HTML代碼
Flash Design
基本動畫效果
復雜的交互體系設計,了解第三方swf輔助設計軟件
復雜的交互體系設計以及較強的對各類外埠資源(PNG、JPG、MP3、WAV等)的整合能力。精通部分第三方輔助設計軟件(AE、SwishMax、Swift3D等)
【必備】Browser-side (Web Application)
XHTML/CSS
基本的layout實現
嚴格跨平台的layout實現以
優雅的HTML code,盡可能符合標准並有SEO的考慮因素。在任何平台、浏覽器下基本保持一致。不要求了解各種CSS的hacks,但要求知道遇到問題應該如何查閱資料以在第一時間內解決。能夠為JavaScript開發人員提供最好操作的DOM結構,讓JS開發人員在開發的時候認為"一切都已經准備就緒了",而不是"捉襟見肘"。
JavaScript/Ajax/DOM
基本的DOM操作,了解AJAX,可以實現數據通信
基本的DOM操作,能寫高效率的OOP代碼,以降低維護成本
基於需求,進行不同的開發,選擇合適的框架,做到代碼效率最高,用戶體驗最好,代碼下載量最小,並且可以在單獨甚至更多產品線中最大限度重用代碼
Flash Developement
基於Timeline的ActionScript操作,能實現簡單交互
掌握a外,能實現數據層通信(與服務器以及本地SharedObject)
精通AS1-3,能根據需求進行各類RIA開發。無論是要求支持FlashPlayer8的,還是FlashPlayer9的,都能做到開發效率最高、靈活性最大(比如對HTML層的接口設計,等等)。
【必備】Client-side (Desktop Application)
Apollo
產品級的封裝,基本技術了解(如何打包、如何加入HTML和JavaScript等)
掌握a的同時,能利用Apollo的API獨立設計、開發OS的文件I/O功能。
掌握基本技能的同時,對"3D概念體系"有所認知。這裡"3D"即:Design(設計)、Development(開發)、Deploy(產品部署)。能用Apollo
Windows Presentation Foundation、WPF/E(Silverlight)
(待定,歡迎補充)
【增補】Server-side (修改:經考慮,這個技能不參與評級)
本來列舉了"1、Server端簡單的技術、腳本"和"2、MediaServer(Red5)接口"作為"Web前端工程師技能列表"的一種(服務器、數據邏輯層技能的)評判標准。但似乎很多朋友對於前端工程師是否應該掌握Server端技能的必要性表示懷疑。確實,要掌握好上述的展現層技能不是意見容易的事情,而且前端工程師的確非常辛苦。但是,站在另一方面來說,辛苦的原因是什麼,我不知道在你日夜奮戰div+CSS的時候思考過沒有。就我的經驗,前端的辛苦在於以下幾個方面:
重復勞動多,大量的div+css都是重復的,即便可以復制粘貼,但幾千行的div海洋中去尋找一個入口恐怕都非常痛苦
需求變更多,往往你折騰幾個小時終於把跨平台問題解決好了,而且在IE6、7和Firefox下面都能顯示同樣的效果了,甚至連JavaScript交互都已經快搞定了。突然上面說需求要變。這無疑是莫大的痛苦。
也許表面上看,這跟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,對人的見識還是有局限的,這種局限限制了我自己很久的時間),那將是一比寶貴的財富。
【增補】Mobile-side(不參與評級)
看到很多朋友留言說前端工程師沒前途,我在想,同時掌握移動設備的技能是否也是拓展前途的一個必要性?這裡再多說幾句,關於技術人員的前途,目前在國內確實得用"慘淡"來形容。浮躁的氛圍讓技術人才往往過早放棄了自己的技術生涯,而爾虞我詐的整體道德水平也讓單純的技術人員痛不欲生(我身邊太多了,恩,不說具體細節了,呵呵)。
作為一個技術人員,開發人員,在保持純粹地敬業心態(這是前提,這麼沒有,啥也別談)外,更要學會如何保護自己,如何壯大自身,社會不會同情你,只有你自己才能保護你自己。
Flashlite
待定,歡迎補充
Java?
待定,歡迎補充