今天被問了一個問題:前端工程師的定位及未來的出路在哪里?既然你想做前端你覺得它的未來在哪里?當時一下被問住了,之所以說自己想做前端可能有以下幾個原因:1.喜歡JS,它靈活強大,能方便的做很多事情;2.之前看了園子里幾篇很不錯的前端文章,前端工程師入門更易(精通確實很難),好的前端相對稀缺;3.前端更容易獨立做點東西,未來更多的是可以借助其它平台開發,比如基於微信、微博、百度雲開放平台等,在他們基礎上加自己的前端能快速的形成解決某種需要的產品(沒有實際的調研過,不知道這個想法是否正確)。於是又上網搜集各種資料主要是前端工程師的前景和知識體系及成長之路,覺得自己比較認同的摘錄匯聚一下。
我在另一個答案里提到過我認為Web前端的職業前景不容樂觀。這里暫時沒有時間展開。先說個有趣的事情,國內Web前端的標桿人物克軍(豆瓣)和玉伯(阿里)寫了個“對聯”如下:前端研究,研究個屁;前端設計,設計個鳥。就算是調侃吧,但也可見業內頂尖人士對此職業在縱深上的擔憂。
另外說待遇的話,當然也有非常高的,玉伯在其他答案里提到過有超50萬年薪甚至近百萬的。不過我個人對這些高薪同學在公司的實際角色有所保留。總的來說,一般理解上的前端工程師在各互聯網公司的職級相比其他技術崗位或者UED其他崗位我認為不夠高。造成這樣情況的有不少是歷史原因。
另外說待遇的話,當然也有非常高的,玉伯在其他答案里提到過有超50萬年薪甚至近百萬的。不過我個人對這些高薪同學在公司的實際角色有所保留。總的來說,一般理解上的前端工程師在各互聯網公司的職級相比其他技術崗位或者UED其他崗位我認為不夠高。造成這樣情況的有不少是歷史原因。
第一大挑戰還是兼容性。雖然微軟已經決定將ie6安樂死,ie9/10看起來相當標准。向后兼容似乎輕松了,但向前兼容又開始越來越讓人頭疼了。打算搞一個web app,你會發現android上的webkit是多么混亂。在桌面瀏覽器上總是有css hack可以擺平,但在mobile上只能考慮退化方案。從兼容瀏覽器(外加套殼的瀏覽器)到兼容設備,實際上兼容性變得更復雜了。
第二大挑戰是交互的復雜度。和目前UI/交互的要求相比瀏覽器引擎給我們接囗的確太低級了。於是今年前端技術的熱門話題是各種javascript, css的預處理器、各種mvc框架、和微框架的討論。
第三大挑戰是代碼可維護性。復雜度的提升直接影響代碼的維護性。JS/CSS/HTML代碼生命周期越來越長,也就越來越需要從代碼質量、架構和工具上保證它們的可維護性。代碼的歷史問題是永遠的痛點。
第四大挑戰是性能。
第五大挑戰是個人成長。
第二大挑戰是交互的復雜度。和目前UI/交互的要求相比瀏覽器引擎給我們接囗的確太低級了。於是今年前端技術的熱門話題是各種javascript, css的預處理器、各種mvc框架、和微框架的討論。
第三大挑戰是代碼可維護性。復雜度的提升直接影響代碼的維護性。JS/CSS/HTML代碼生命周期越來越長,也就越來越需要從代碼質量、架構和工具上保證它們的可維護性。代碼的歷史問題是永遠的痛點。
第四大挑戰是性能。
第五大挑戰是個人成長。
說說我的感覺吧。我現在就是一個前端工程師。我覺得前景是不錯的,不然我就不會選擇這樣的一個切入點。那么下面我來說說具體是為什么吧。
1,明白前端干什么。以前就可能是僅僅地切圖,把設計變成代碼。但是現在隨着webapp興起,以及利用web構建富客戶端,包括更多交互豐富的離線應用,對於前端的挑戰也越來越大,所以需要更硬底子的功夫。包括你多瀏覽器原理,http協議,還有js,css等最基礎的認識等。所以要求不低。
2,明白你選擇該職業的目的。有人說做ceo最好從產品經理入手。其實未必,大部分ceo,尤其是成功的,都從技術入手。前端開發,從維度上跨越了,設計,交互,數據交互,后台。因此是一個橋梁的作用,在未來需要了解的層面也多,地位不亞於任何一方。因此可以讓你知道更多。
3,切入點好。我目前雖然還是實習生,但是我並非計算機專業,但是這不會妨礙我。因為目前前端職業要的是你有硬功夫,而且 誰強誰弱,一看代碼組織,風格,一目了然。
1,明白前端干什么。以前就可能是僅僅地切圖,把設計變成代碼。但是現在隨着webapp興起,以及利用web構建富客戶端,包括更多交互豐富的離線應用,對於前端的挑戰也越來越大,所以需要更硬底子的功夫。包括你多瀏覽器原理,http協議,還有js,css等最基礎的認識等。所以要求不低。
2,明白你選擇該職業的目的。有人說做ceo最好從產品經理入手。其實未必,大部分ceo,尤其是成功的,都從技術入手。前端開發,從維度上跨越了,設計,交互,數據交互,后台。因此是一個橋梁的作用,在未來需要了解的層面也多,地位不亞於任何一方。因此可以讓你知道更多。
3,切入點好。我目前雖然還是實習生,但是我並非計算機專業,但是這不會妨礙我。因為目前前端職業要的是你有硬功夫,而且 誰強誰弱,一看代碼組織,風格,一目了然。
Web前端工程師的職業生涯,我覺得可以分為三步,初級前端開發工程師- > 資深前端工程師- > 前端架構師。每種職責都有其不同的角色和分工。
前端開發工程師(或者說“網頁制作”、“網頁制作工程師”、“前端制作工程師”、“網站重構工程師”),這樣的一個職位的主要職責是與交互設計師、視覺設計師協作,根據設計圖用HTML和CSS完成頁面制作。同時,在此基礎之上,對完成的頁面進行維護和對網站前端性能做相應的優化。
資深前端開發工程師,相比較“前端開發工程師”而言,更加資深一些,當然其工作的職責也會相應的更加大一些。一般而言,資深前端開發工程師需要使用JavaScript或者ActionScript來編寫和封裝具有良好性能的前端交互組件,同時還要對Web項目的前端實現方案提供專業指導和監督並在日常工作之中對新人及相關開發人員進行前端技能的培訓和指導。另外,還要跟蹤研究前端技術,設計並實施全網前端優化。
對於前端架構師,更多意義上說像是一個管理的崗位,但是其職責要求卻不僅只是管理。前端架構師需要帶領組員實現全網的前端框架和優化,還要創建前端的相應標准和規范,並通過孜孜不倦的布道來完善並推廣和應用自己的標准和框架。同時,還要站在全局的角色為整個網站的信息架構和技術選型提供專業意見和方案。
前端開發工程師(或者說“網頁制作”、“網頁制作工程師”、“前端制作工程師”、“網站重構工程師”),這樣的一個職位的主要職責是與交互設計師、視覺設計師協作,根據設計圖用HTML和CSS完成頁面制作。同時,在此基礎之上,對完成的頁面進行維護和對網站前端性能做相應的優化。
資深前端開發工程師,相比較“前端開發工程師”而言,更加資深一些,當然其工作的職責也會相應的更加大一些。一般而言,資深前端開發工程師需要使用JavaScript或者ActionScript來編寫和封裝具有良好性能的前端交互組件,同時還要對Web項目的前端實現方案提供專業指導和監督並在日常工作之中對新人及相關開發人員進行前端技能的培訓和指導。另外,還要跟蹤研究前端技術,設計並實施全網前端優化。
對於前端架構師,更多意義上說像是一個管理的崗位,但是其職責要求卻不僅只是管理。前端架構師需要帶領組員實現全網的前端框架和優化,還要創建前端的相應標准和規范,並通過孜孜不倦的布道來完善並推廣和應用自己的標准和框架。同時,還要站在全局的角色為整個網站的信息架構和技術選型提供專業意見和方案。
林燦斌,C/Web前后端/數據庫/信息安全/移動客戶端…
前端是負責輸出到
客戶端的頁面的編寫,為了提升用戶體驗(很濫的詞不過都這么說)。
Web前端工程師一般都要求要能熟練使用HTML、CSS、JavaScript。題主既然問到了AJAX這樣的問題,那我想題主甚至可能對JavaScript都不太熟悉,那么就不能稱為Web前端工程師了,只掌握了HTML和CSS的話,只能叫 網頁美工了。
不能打架,不能打架。AJAX的好處都有啥?誰說對了就給他!
下面我來說下AJAX的重要性:
1、 節省帶寬和運算壓力。像navibar、footer之類的,各個頁面基本一致的,大量重復。使用AJAX局部刷新需要更新的content,節省服務器帶寬和運算壓力,在網站PV足夠大的情況下,會有一定的提速左右。特別是一個長帖子/問題/博文,發布回帖/答案/評論時,使用AJAX submit數據,對比用form submit,速度和對服務器的壓力,差距可以以倍來計算。
2、 用戶體驗,首先由於上面的原因,使用AJAX獲取的數據會更少,而且不需要二次渲染navibar、footer之類的重復元素,也會 快一些。另外網頁從一個跳轉到另一個的時候,會整個閃成白色再重新載入新的頁面,用戶體驗不好。像知乎這樣,我可以非常方便地修改答案,體驗就很不錯。
3、看到知乎這個保存草稿的功能了嗎?非常實用的功能,前段不用AJAX做你等着后端拿着form submit去實現嗎?那得是多蛋疼的體驗。
當然,也有一些不適用的場景,例如需要做SEO優化的場景。
Web前端工程師一般都要求要能熟練使用HTML、CSS、JavaScript。題主既然問到了AJAX這樣的問題,那我想題主甚至可能對JavaScript都不太熟悉,那么就不能稱為Web前端工程師了,只掌握了HTML和CSS的話,只能叫 網頁美工了。
不能打架,不能打架。AJAX的好處都有啥?誰說對了就給他!
下面我來說下AJAX的重要性:
1、 節省帶寬和運算壓力。像navibar、footer之類的,各個頁面基本一致的,大量重復。使用AJAX局部刷新需要更新的content,節省服務器帶寬和運算壓力,在網站PV足夠大的情況下,會有一定的提速左右。特別是一個長帖子/問題/博文,發布回帖/答案/評論時,使用AJAX submit數據,對比用form submit,速度和對服務器的壓力,差距可以以倍來計算。
2、 用戶體驗,首先由於上面的原因,使用AJAX獲取的數據會更少,而且不需要二次渲染navibar、footer之類的重復元素,也會 快一些。另外網頁從一個跳轉到另一個的時候,會整個閃成白色再重新載入新的頁面,用戶體驗不好。像知乎這樣,我可以非常方便地修改答案,體驗就很不錯。
3、看到知乎這個保存草稿的功能了嗎?非常實用的功能,前段不用AJAX做你等着后端拿着form submit去實現嗎?那得是多蛋疼的體驗。
當然,也有一些不適用的場景,例如需要做SEO優化的場景。
你的問題描述的方式讓我覺得你不想去做 ajax 等與數據操作有關的事情,但從你在其他人回答的評論中的語言又表現出你是“迫於無奈”。不知道你的真實想法到底是什么……
不過,無論是哪種,都證明你對前端工程師這一職業不了解。下面的內容(摘自 https://gist.github.com/ourai/6411507)是一名優秀的前端工程師需要掌握以及具備的,供你參考——
開發技術
軟技能
不過,無論是哪種,都證明你對前端工程師這一職業不了解。下面的內容(摘自 https://gist.github.com/ourai/6411507)是一名優秀的前端工程師需要掌握以及具備的,供你參考——
開發技術
- 程序
- 頁面
- 標准規范
- W3C
- 知識儲備
- 網頁設計
- 排版
- 響應式
- SEO
- WCAG
- 微數據/微格式
- 網頁設計
- 網頁語言
- 標記語言
- HTML
- XHTML
- XML
- 樣式表
- CSS
- XSL
軟技能
- 項目及工程管理
- 開發工具
- IDE
- Sublime Text
- Notepad++
- EditPlus
- 調試工具
- Google Chrome
- Mozilla Firefox
- Internet Explorer
- IDE
- 測試工具
- 版本控制
- Git
- SVN
- 代碼檢查
- 框架/庫
- jQuery
- 模塊化
- CommonJS
- 模板
- 開發工具
- 團隊協作
- 責任心
- 完成任務為首要目標
- 不斷優化完善代碼
- 完善產品的用戶體驗
- 與不同崗位人員的溝通技巧
- 責任心
- 業務知識
- 領導能力