【必備】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?
(待定,歡迎補充)