你對前端職業(yè)發(fā)展有何看法?

在github上看到一篇阿里巴巴無線前端團隊的面試試題,第一道就是“你對前端職業(yè)發(fā)展有何看法?”。這是很多同學在面試前端崗位時每次必問的題目。下面是對前端的一些認識。

什么是前端?

前端作為一個工作,其主要工作領(lǐng)域是瀏覽器端,核心技術(shù)包括 JavaScript,css,html 等。還要處理服務器通信,以及部分服務器腳本開發(fā)的工作,比如發(fā)布、測試腳本,jsp、php頁面腳本。有時,還需要與產(chǎn)品經(jīng)理、交互設(shè)計,共同完成一些交互設(shè)計。可以看出,前端處于設(shè)計與后臺的中間領(lǐng)域,起到承上啟下的作用。這也就要求前端工程師的知識面在橫向上必須要廣。服務器技術(shù)要懂,產(chǎn)品與交互也要懂。所以經(jīng)常有前端工程師稱自己游走在設(shè)計與編碼的邊緣。

前端工作有技術(shù)含量嗎?

相信很多人有這樣的問題,甚至有更多的人認為前端是沒有技術(shù)含量的工作。

首先要明確什么算是有技術(shù)含量,如果說“百度的中文搜索算法”,“訊飛語音的語音識別技術(shù)”,“清華大學圖書館的智能機器人”算是有技術(shù)含量的話,那么前端相比較而言技術(shù)含量確實沒有這些高??墒沁@個沒有技術(shù)含量的工作領(lǐng)域中依然有很多大牛。他們在做出自己的職業(yè)選擇時不是因為覺著前端有技術(shù)含量,而是因為熱愛!。

任何一個職位如果你真的熱愛,且研究夠深入,自然會有人高薪用你。而選擇一個有技術(shù)含量但卻不是自己喜歡的領(lǐng)域,恐怕也很難做出什么成績。

因為熱愛,就會深入研究,進而發(fā)現(xiàn)這個領(lǐng)域的價值點(所謂的技術(shù)含量)。我想這幾個方面都是前端的技術(shù)含量:

(1)全瀏覽器兼容。后臺工程師、客戶端工程師,無論你們用什么語言開發(fā),都會有一套可以信賴的統(tǒng)一的接口(框架,或sdk)。前端?沒有!我們需要同時懂得至少三種瀏覽器內(nèi)核的接口,還有面對各種莫名其妙的bug。

(2)橫向技能面要廣。懂交互設(shè)計;懂視覺設(shè)計;略懂后臺技術(shù);精通http協(xié)議;linux操作;shell;vim;git;svn;至少熟練使用一門后端語言(java,c#,php,python);至少使用過一個MVC開發(fā)框架,還有前端的各種開源項目(jquery,requirejs,seajs,bootstrap,yui…);還要能夠靈活運用“面向?qū)ο蟆?,“面向過程”,“函數(shù)式”的編程方法,否則很容易在JS這門靈活的語言中迷失自己;還要懂設(shè)計模式,富客戶端應用的常用架構(gòu)模式。

(3)縱向技能要深。js,css,html5,css3,…

(4)學習能力強,持續(xù)學習的意愿。沒辦法,前端技術(shù)更新速度太快.

(5)關(guān)注用戶體驗,懂得交互設(shè)計。幫助產(chǎn)品經(jīng)理和交互設(shè)計師校驗錯誤是前端工程師的義務和責任。很多問題只有在實現(xiàn)時才會發(fā)現(xiàn),如果作為實現(xiàn)者的你,沒有及時發(fā)現(xiàn)前置環(huán)節(jié)中出現(xiàn)的錯誤。那這些錯誤很可能最后直接交給用戶“欣賞”。有時,人手緊張,一個懂交互,懂產(chǎn)品的前端工程師可以一個人當三個人用。

前端工程師應該具備怎樣的知識結(jié)構(gòu)?

關(guān)于前端工程師的知識結(jié)構(gòu),上一個問題中已經(jīng)提到了一部分,下面是別人給出的總結(jié)。

2012前端工程師知識結(jié)構(gòu)

前端在產(chǎn)品研發(fā)團隊中的地位與價值?

實現(xiàn)自身價值并獲得他人的認可和肯定是人類的本性。正式因為這一本性的驅(qū)使,人類文明才不斷進步。任何一個正常的前端工程師都希望自己在產(chǎn)品研發(fā)團隊中發(fā)揮更大的價值。

糟糕的情況。在很多公司,前端只是一個頁面制作,他們負責把psd稿轉(zhuǎn)為html文件,然后交給后臺工程師套頁面。如果還有哪個老板在這樣組織他的隊伍,我想他正在做的產(chǎn)品一定不是什么好產(chǎn)品。這種做法,無視人的本性,把人的機器用。我相信任何一個前端都可以承擔的更多,發(fā)揮更大的價值,他們需要的只是上級的肯定與信任。

比較理想的情況。前端的輸入依然是psd稿,當然如果產(chǎn)品和設(shè)計能力不夠,還可能需要前端參與交互設(shè)計。輸出則是一個可以工作的模塊或頁面。前端直接從服務器模板(php,jsp)開始工作,前后端同學在開始工作前定好頁面內(nèi)應該種的變量以及ajax通信的接口,隨后獨立開發(fā),最后連調(diào)測試。這種開發(fā)方式前端可以根據(jù)接口和數(shù)據(jù)結(jié)構(gòu)來來設(shè)計頁面的html結(jié)構(gòu)和css結(jié)構(gòu),把冗余工作降到最低。同時也會讓前端發(fā)揮更大的主觀能動性,讓枯燥的工作變的有趣。同時后臺工程師,也可以更加關(guān)注底層算法與數(shù)據(jù)存儲于通信的邏輯。

前端工程師的未來?

近十年,不斷發(fā)生的一件事情就是,越來越多的軟件開始在瀏覽器里運行。隨著google和火狐的webos的發(fā)展,甚至在不久的將來,瀏覽器的api,會替代操作系統(tǒng)的 sdk 成為軟件開發(fā)標準。隨著html5的發(fā)展,瀏覽器里運行的早已不是簡單的頁面,而是復雜的web應用。前端工程師也早已不是頁面制作,而是web應用工程師。

當然,也有一個讓我比較擔憂的問題,未來究竟是web時代還是app時代?如果是app時代,前端技術(shù)的價值可能會降低(雖然也可以使用前端技術(shù)開發(fā)app,但各方面都要比原生應用差很多)。我想,關(guān)于這個問題,也許就像“天下大事,合久必分,分久必合”一樣。web與app會長期共存,此消彼長,互相促進。如果精力夠,我還是建議前端工程師去學習下app開發(fā)。有一技傍身總是好的。

陳童的博客(http://www.everyinch.net/)專注于用戶體驗研究的IT類網(wǎng)站。發(fā)表用戶體驗研究與度量方面的知識,分享前端與三維網(wǎng)站技術(shù),總結(jié)人機交互、集體智慧算法的研究心得,推薦國外相關(guān)資源。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容