先給前端工程師的工作下個(gè)一句話(huà)定義:運(yùn)用前端技術(shù),實(shí)現(xiàn)體驗(yàn)的良好傳達(dá)。如果在前面加上 Web,那么是針對(duì) Web 這個(gè)領(lǐng)域的,主要是互聯(lián)網(wǎng),也可以將移動(dòng)通信網(wǎng)絡(luò)和其他傳媒網(wǎng)絡(luò)(比如IPTV)包含在內(nèi),因?yàn)槠淅砟钍且恢碌摹?/p>
現(xiàn)在要在未畢業(yè)的學(xué)生中找到一個(gè)符合技能條件的 Web 前端工程師可以說(shuō)是少之又少。而相關(guān)領(lǐng)域的從業(yè)者,又因?yàn)椴槐恢匾?、干雜活、薪水低等原因,覺(jué)得選錯(cuò)了行當(dāng),又停止了在這個(gè)方向上的努力學(xué)習(xí)。最終導(dǎo)致企業(yè)招不到一位滿(mǎn)意的 Web 前端工程師。這涉及到兩個(gè)定位的問(wèn)題,即 1) 企業(yè)如何給Web前端工程師定位,2) Web 前端工程師如何定位自己。前者等下次有機(jī)會(huì)再談,先講后者。
首先,這是很有前途的工作。百安居的衛(wèi)哲曾經(jīng)對(duì)大學(xué)生擇業(yè)提出這樣的建議:第一選擇新行業(yè),第二選擇新企業(yè),第三選擇新部門(mén)?;ヂ?lián)網(wǎng)行業(yè)相對(duì)傳統(tǒng)行業(yè),算是新行業(yè);現(xiàn)在創(chuàng)業(yè)公司很多;Web 前端工程師又是一個(gè)新的崗位。中國(guó)的 Web 前端工程師正在起步,會(huì)有很好的發(fā)展。
然后,想一下自己是否適合和喜歡這份工作。Web 前端工程師并不是設(shè)計(jì)師,我更傾向于將這個(gè)崗位定位為開(kāi)發(fā)人員。這個(gè)崗位上每天接觸的更多的仍然是代碼、代碼、代碼。如果你喜歡的是設(shè)計(jì),那么應(yīng)該適當(dāng)調(diào)整自己的學(xué)習(xí)重點(diǎn)。Web 前端工程師應(yīng)該是那種完美主義者,或者有一定程度潔癖,天蝎座較佳,更像程序員。術(shù)業(yè)有專(zhuān)攻,自己多想想自己的職業(yè)規(guī)劃。
最后,通過(guò)努力找到好的雇主。如果你將自己定位為 Web 前端工程師,那么去投靠對(duì)該崗位有一定認(rèn)識(shí)的公司比較合適(推薦一下淘寶)。在這樣的公司里面,會(huì)有明確的職位說(shuō)明和職責(zé)范圍,以及良好的培養(yǎng)計(jì)劃。在這樣的公司能夠有比較好的發(fā)展。
但是,如果你現(xiàn)在還不具備應(yīng)有的一些技能,那么也可以從“美工”開(kāi)始接觸起。起碼幾年之內(nèi),這個(gè)崗位的空缺還是很大的。在這樣的崗位上,臥薪嘗膽個(gè)一兩年,同時(shí)注重自身知識(shí)水平和思想的提高,對(duì) Web 前端工程師就更近一步了。
一般來(lái)講,企業(yè)會(huì)更傾向于選擇復(fù)合型人才(aka. T型人才)。基本上,我覺(jué)得 Web 前端工程師所需技能大致如下:
看看自己的知識(shí)結(jié)構(gòu),是 T 的一橫不夠廣,還是一豎不夠深?
最后提一下關(guān)于企業(yè)對(duì)于 Web 前端工程師的定位問(wèn)題。主要是三個(gè):a) 是否需要? b) 明確職責(zé),c) 培養(yǎng)計(jì)劃。這些以后再談吧。
要打造一流的Web產(chǎn)品開(kāi)發(fā)團(tuán)隊(duì),在團(tuán)隊(duì)成員基礎(chǔ)能力上一定要下功夫。對(duì)于Web前端產(chǎn)品開(kāi)發(fā)來(lái)說(shuō),僅僅掌握Web1.0時(shí)代簡(jiǎn)單的”網(wǎng)頁(yè)套接”是完全不夠的。我結(jié)合自己的團(tuán)隊(duì)配備,特此羅列了Web前端產(chǎn)品工程師所涉及的技能列表如下: 通過(guò)許多實(shí)際項(xiàng)目,個(gè)人認(rèn)為一個(gè)完備的前端產(chǎn)品開(kāi)發(fā)團(tuán)隊(duì),必須擁有如下的人才配備,也希望大家補(bǔ)充: 具體技能描述: 也許表面上看,這跟Server端技能無(wú)關(guān),但我覺(jué)得有好的Server端的意識(shí),一定會(huì)有所幫助(當(dāng)然不可能解決所有的問(wèn)題)。畢竟信息結(jié)構(gòu)和數(shù)據(jù)庫(kù)是密切相關(guān)的,而Server是連接數(shù)據(jù)庫(kù)的唯一渠道(至少大多數(shù)B/S應(yīng)用是如此)。掌握Server端的基本技能,對(duì)于同邏輯層開(kāi)發(fā)人員設(shè)計(jì)接口是非常重要的。而且HTML表現(xiàn)層在開(kāi)發(fā)時(shí)與數(shù)據(jù)的分離,也與Server端的各種模板技術(shù)有關(guān)。例如PHP中的Smarty模板(我曾經(jīng)用的)、jsp的model2概念等等。HTML結(jié)構(gòu)如何設(shè)計(jì),如何讓HTML重用,甚至在HTML層進(jìn)行OOP的開(kāi)發(fā)(我現(xiàn)在在新產(chǎn)品線(xiàn)中設(shè)計(jì)的前端開(kāi)發(fā)流程),都需要Server端的支持。最起碼,你要告訴php程序員你需要什么。如果你完全對(duì)PHP一無(wú)所知的話(huà),那也無(wú)從談起了。 看到很多朋友留言說(shuō)前端工程師沒(méi)前途,我在想,同時(shí)掌握移動(dòng)設(shè)備的技能是否也是拓展前途的一個(gè)必要性?這里再多說(shuō)幾句,關(guān)于技術(shù)人員的前途,目前在國(guó)內(nèi)確實(shí)得用”慘淡”來(lái)形容。浮躁的氛圍讓技術(shù)人才往往過(guò)早放棄了自己的技術(shù)生涯,而爾虞我詐的整體道德水平也讓單純的技術(shù)人員痛不欲生(我身邊太多了,恩,不說(shuō)具體細(xì)節(jié)了,呵呵)。 作為一個(gè)技術(shù)人員,開(kāi)發(fā)人員,在保持純粹地敬業(yè)心態(tài)(這是前提,這么沒(méi)有,啥也別談)外,更要學(xué)會(huì)如何保護(hù)自己,如何壯大自身,社會(huì)不會(huì)同情你,只有你自己才能保護(hù)你自己。
a – 配合美工將草圖形成具體的符合WebPage的設(shè)計(jì)
b – 有快速制作分層高品質(zhì)PSD、PNG的能力
c – 能迅速將PSD、PNG的內(nèi)容構(gòu)思成div+css或者table等HTML代碼
a – 基本動(dòng)畫(huà)效果
b – 復(fù)雜的交互體系設(shè)計(jì),了解第三方swf輔助設(shè)計(jì)軟件
c – 復(fù)雜的交互體系設(shè)計(jì)以及較強(qiáng)的對(duì)各類(lèi)外埠資源(PNG、JPG、MP3、WAV等)的整合能力。精通部分第三方輔助設(shè)計(jì)軟件(AE、SwishMax、Swift3D等)
a – 基本的layout實(shí)現(xiàn)
b – 嚴(yán)格跨平臺(tái)的layout實(shí)現(xiàn)以
c – 優(yōu)雅的HTML code,盡可能符合標(biāo)準(zhǔn)并有SEO的考慮因素。在任何平臺(tái)、瀏覽器下基本保持一致。不要求了解各種CSS的hacks,但要求知道遇到問(wèn)題應(yīng)該如何查閱資料以在第一時(shí)間內(nèi)解決。能夠?yàn)镴avaScript開(kāi)發(fā)人員提供最好操作的DOM結(jié)構(gòu),讓JS開(kāi)發(fā)人員在開(kāi)發(fā)的時(shí)候認(rèn)為”一切都已經(jīng)準(zhǔn)備就緒了”,而不是”捉襟見(jiàn)肘”。
a – 基本的DOM操作,了解AJAX,可以實(shí)現(xiàn)數(shù)據(jù)通信
b – 基本的DOM操作,能寫(xiě)高效率的OOP代碼,以降低維護(hù)成本
c – 基于需求,進(jìn)行不同的開(kāi)發(fā),選擇合適的框架,做到代碼效率最高,用戶(hù)體驗(yàn)最好,代碼下載量最小,并且可以在單獨(dú)甚至更多產(chǎn)品線(xiàn)中最大限度重用代碼
a – 基于Timeline的ActionScript操作,能實(shí)現(xiàn)簡(jiǎn)單交互
b – 掌握a外,能實(shí)現(xiàn)數(shù)據(jù)層通信(與服務(wù)器以及本地SharedObject)
c – 精通AS1-3,能根據(jù)需求進(jìn)行各類(lèi)RIA開(kāi)發(fā)。無(wú)論是要求支持FlashPlayer8的,還是FlashPlayer9的,都能做到開(kāi)發(fā)效率最高、靈活性最大(比如對(duì)HTML層的接口設(shè)計(jì),等等)。
a – 產(chǎn)品級(jí)的封裝,基本技術(shù)了解(如何打包、如何加入HTML和JavaScript等)
b – 掌握a的同時(shí),能利用Apollo的API獨(dú)立設(shè)計(jì)、開(kāi)發(fā)OS的文件I/O功能。
c – 掌握基本技能的同時(shí),對(duì)”3D概念體系”有所認(rèn)知。這里”3D”即:Design(設(shè)計(jì))、Development(開(kāi)發(fā))、Deploy(產(chǎn)品部署)。能用Apollo
(待定,歡迎補(bǔ)充)
本來(lái)列舉了”1、Server端簡(jiǎn)單的技術(shù)、腳本”和”2、MediaServer(Red5)接口”作為”Web前端工程師技能列表“的一種(服務(wù)器、數(shù)據(jù)邏輯層技能的)評(píng)判標(biāo)準(zhǔn)。但似乎很多朋友對(duì)于前端工程師是否應(yīng)該掌握Server端技能的必要性表示懷疑。確實(shí),要掌握好上述的展現(xiàn)層技能不是意見(jiàn)容易的事情,而且前端工程師的確非常辛苦。但是,站在另一方面來(lái)說(shuō),辛苦的原因是什么,我不知道在你日夜奮戰(zhàn)div+CSS的時(shí)候思考過(guò)沒(méi)有。就我的經(jīng)驗(yàn),前端的辛苦在于以下幾個(gè)方面:
此外,對(duì)于創(chuàng)業(yè)團(tuán)隊(duì),往往人手非常有限。為了讓運(yùn)營(yíng)成本降到最低,所有的技術(shù)人員都有義務(wù)對(duì)Server端技術(shù)有所了解。如果為了修改一個(gè)網(wǎng)頁(yè)的標(biāo)題還要跑去喊PHP程序員連接Remote Server的話(huà),那實(shí)在是增加了整個(gè)公司的運(yùn)營(yíng)成本。
總結(jié):我認(rèn)為,可以不了解技術(shù)細(xì)節(jié),但應(yīng)該知道原理,最好能掌握一兩套設(shè)計(jì)思想(畢竟數(shù)據(jù)邏輯都在這里走,光看HTML和JavaScript,對(duì)人的見(jiàn)識(shí)還是有局限的,這種局限限制了我自己很久的時(shí)間),那將是一比寶貴的財(cái)富。
(待定,歡迎補(bǔ)充)
(待定,歡迎補(bǔ)充)
聯(lián)系客服