什麼是“前端”工程師
我在招聘廣告和辦公室的一些對話中,聽到了一個新的角色:UI Dev,事實上我在知乎上還回答過一個關於ThoughtWorks的UI Dev的問題。簡而言之,UI Dev可以快速的把設計師的作品實現爲HTML/CSS/JavaScript代碼。
如果按照這個標準,我覺得UI Dev對自己的要求太低了。畢竟要學會HTML/CSS實現mockup並不困難,但是成爲一名前端工程師則需要掌握更多的知識:
會用PS來進行圖片的處理(比如切圖,微調等)
用HTML/CSS實現mockup(可能還有SASS/LESS等工具)
熟悉JavaScript(比如前端的MVVM框架,客戶端模板)
前端開發的工作流程(代碼檢查,精簡化,模塊化CSS,LiveReload,調試)
編寫測試(靜態檢查,單元測試)
跨瀏覽器、跨設備的解決方法(不同分辨率,不同廠商)
會根據項目的特點選擇不同的前端技術棧(移動端,Web站點,響應式設計等)
在有了基礎的HTML/CSS/JS技能之後,你會嘗試做的更好:
如何更高效的操作DOM
如何將CSS寫的更加清晰易懂
如何編寫更加易於維護的代碼(更有意義的單元測試)
如何組織大型的項目結構,模塊化,組件化等等
這些要求事實上已經不那麼容易做到了。它可能會花費你2到3年時間來完全掌握。但是2到3年之後,即便你已經成爲了一個“合格的”前端工程師,這也還遠遠不夠。在現實世界中,一個軟件產品除了前端,還有非常廣闊的空間,還有很多有趣的東西值得學習:
HTTP協議本身(緩存,鑑權)
Web容器/HTTP服務器如何工作
無狀態的Web應用的工作原理(如何讓網站正確地運行在集羣上)
動態,靜態內容如何分離部署(反向代理配置)
安全機制如何配置
監控機制如何配置
有了這些,也算是有點端到端的意思了。這時你也已經不是一個“純前端”工程師了,系統中的大部分問題你都可以搞定,不過日常工作中可能更多的職責還是做前端的開發。但是這些還不夠,軟件除了交付之外,還有一些非功能性的需求:
端到端測試(UI測試,比如selenium server/web driver)
devops(比如數據庫環境,測試服務器,CI服務器的自動化provision)
基本的UI設計原則(在某些頁面確實的情況下,根據系統的已有UI做設計)
數據庫性能優化
性能測試
這時候,你才能算是一個嚴格意義上的“前端”工程師。不從系統的角度來思考,不真正做一些後端開發/配置,並不能算是前端工程師,或者可以被稱爲偏前端工程師(partial frontend developer)。但是即使稱爲上邊這樣的“前端工程師”,我想這離一個優秀的工程師還是有很大差距的。
現在,51CTO高招邀請你,加入這些公司。
職位 | 薪資 | 地點 | 公司 | |
1 | 前端開發工程師 | 12K-18K | 北京 | 金聯儲 |
2 | 軟件測試工程師 | 5K-10K | 上海 | 東普科技 |
3 | C++軟件工程師 | 12K-35K | 廣州 | 多益網絡 |
4 | PHP開發工程師 | 15K-30K | 北京 | 優酷土豆 |
5 | HTML5前端開發工程師 | 8k -16k | 北京 | 星火金融 |
6 | iOS開發工程師 | 10K-15K | 北京 | 智網易聯 |
>>來高招查看更多<<