截止到今天凌晨,互聯(lián)網(wǎng)上已經(jīng)有大概 6 億 8 千萬張網(wǎng)頁,而且依然在迅速增加。今天就來嚴肅地展開一下網(wǎng)頁工程師的話題吧,關于他們的工作,關于他們的職業(yè);關于 HTML,關于 Python;關于瀏覽器,關于這個世界。 周圍有一些朋友的孩子也快要誕生了,將來可以考慮做個網(wǎng)頁工程師呢~ 每天的我們,在 (還算) 安靜的辦公室里,面對著電腦屏幕,忍受著窗外的喧囂,隨手點開瀏覽器,輸入一段 URL,敲下回車鍵。有沒有這樣的體驗,網(wǎng)站瞬間被打開了,高質量的內容,干凈的布局和優(yōu)秀的設計讓你過目難忘。感到吃驚是吧?這一切都歸功于一類人,網(wǎng)頁工程師,所謂的 Web Developers 們,他們不僅負責網(wǎng)站的搭建和網(wǎng)頁的編碼,還負責各種測試分析,以及一切和網(wǎng)站相關的維護。 如今網(wǎng)頁的重要性毋庸置疑,在商業(yè)上,好的網(wǎng)站已經(jīng)是企業(yè)保持競爭力的重要環(huán)節(jié)。伴隨著網(wǎng)頁開發(fā)技術的日新月異,優(yōu)秀的網(wǎng)站層出不窮,網(wǎng)頁工程師對于自己的工作已經(jīng)不能有半點馬虎,成為一個好的網(wǎng)頁工程師也沒有任何的捷徑。 但問題就來了,正在頻繁迭代產(chǎn)品的苦逼創(chuàng)業(yè)者們,應該尋找怎樣的網(wǎng)頁工程師呢?想成為網(wǎng)頁工程師卻只是剛剛試水 HTML 和 JavaScript 或者剛剛開始了解 Python 和 Ruby 的童鞋,又應該如何規(guī)劃自己的技術之路呢? 登錄過智聯(lián)前程大街獵聘周伯通拉勾等等網(wǎng)站,瀏覽過各類工程師在線課程,接觸過網(wǎng)頁工程師相關的招聘和應聘的,應該不難發(fā)現(xiàn)一個趨勢,就是這群人被集中分成了三大類: 前端工程師,后端工程師,全棧工程師 一個一個來說吧 前端工程師 Front-End Developer 和用戶發(fā)生交互的那一部分叫做網(wǎng)頁的前端,說白了它就是你在瀏覽網(wǎng)頁時可以看到的所有東西,字體、顏色、導航欄、下拉菜單、滾動的圖片,等等等等,這一切都是由 HTML + CSS + JavaScript 拼裝而成,在瀏覽器的渲染下變得井井有條,很神奇的! 首先來了解一下相關技能和工具。 前端工程師主要負責網(wǎng)站面向用戶部分的代碼,以及用戶體驗相關的架構。一個前端工程師必須熟練地掌握三門基本的語言:HTML,CSS 和 JavaScript。除此之外,前端工程師還應該熟悉一些樣式框架比如 Bootstrap 和 Foundation,和邏輯框架比如 Backbone,AngularJS 和 EmberJS,這些框架確保了網(wǎng)頁在不同平臺上的質量和穩(wěn)定性。最后還應該能夠熟練的使用一些基本的工具庫比如 jQuery 和 SASS/LESS,這些能讓開發(fā)更加高效,代碼更加優(yōu)質。 另外,很多招聘文案中都會要求求職者有 Ajax 的開發(fā)經(jīng)驗。Ajax 技術使用 JavaScript 默默地和服務器通信來動態(tài)加載網(wǎng)頁內容,以實現(xiàn)無縫的瀏覽體驗。雖然這不是所有網(wǎng)站都必須的,但這也可以算是前端工程師的基本功之一,畢竟 Ajax 技術如今也越來越多地被應用到了網(wǎng)頁中。 有了前面說的這些技能,前端工程師就可以很好的和設計師合作,和用戶體驗分析師合作,把草圖和原型開發(fā)成成品。牛逼的前端工程師還能精確的發(fā)現(xiàn)用戶體驗相關的問題,給出建議和解決方案,用代碼來增強設計。一個好的前端工程師還應該能夠和業(yè)務人員流利的溝通,明白他們的目的,理解他們的需求,了解市場上的機會,并且順利地執(zhí)行。 總之在后端工程師造好屋子以后,前端工程師主要負責房屋的內飾。至于房屋的類型和品位,這就取決于房屋的主人了。相比于后端,前端工程師一般來說更加滿足于自己的成果,畢竟這是一份技術和創(chuàng)意相結合的工作。經(jīng)驗豐富的前端工程師不僅是一個技術人員,不僅是一個 Geek,因為他不僅實現(xiàn)了用戶可以看到一切和可以交互的一切,還致力于給用戶留下過目不忘的印象,所以他也是一個視覺達人。 那我們看到的網(wǎng)頁是怎么來的呢? 再補充一下這個很多人都關心的話題吧,在網(wǎng)頁開發(fā)過程中,設計師繪制 Logo 和圖像,攝影師拍攝照片,文案編寫文字,最后由前端工程師把它們組裝在一起,用網(wǎng)頁向我們闡釋所有內容,用網(wǎng)頁向我們提供獨一無二的體驗,把我們在網(wǎng)站上看到的所有內容變成可能。 后端工程師 Back-End Developer 新的問題來了,網(wǎng)頁上的數(shù)據(jù)存在哪里?API 又是什么? 就像一間沒有造好的屋子,光有室內裝飾還是遠遠不夠的。于是我們還需要后端工程師。網(wǎng)頁的后端包括服務器,應用程序,以及數(shù)據(jù)庫。這些組件相互作用,使用 API 和前端通信,確保了網(wǎng)頁前端的存在。后端工程師的主要工作就是搭建和維護這些組件。 還是先來看看相關技能和工具。 相比于前端開發(fā),后端開發(fā)的技術和工具比較多元。為了實現(xiàn)服務器、應用程序和數(shù)據(jù)庫三者之間的通信,后端工程師通常使用 Python,Ruby,PHP,Java,.Net 等語言來編寫應用程序,用 MySQL,Oracle,MongoDB 來查找、存儲和修改數(shù)據(jù),然后把它們部署到服務器上來為前端代碼提供支持。在實際工作中,后端工程師至少需要掌握一個開發(fā)框架,比如 PHP 的 Zend 和 Symfony,或者 Python 的 Django;還需要能夠熟練使用版本控制工具,比如 Git 和 SVN;以及了解 Linux 開發(fā)環(huán)境。這些看起來比前端開發(fā)枯燥多了! 后端工程師需要使用這些框架和工具來為網(wǎng)站編寫優(yōu)質的代碼,有可讀性,可移植性,有完備的文檔。然而和前端工程師一樣,在開始埋頭編碼以前,后端工程師需要和業(yè)務人員充分溝通來理解他們的感性目標,將其轉換為技術需求,提出具有可行性的有效方案,來搭建技術架構。 優(yōu)秀的后端工程師同樣熱愛自己的工作,沉浸在后端的他們從來不覺得無聊,反而樂在其中。他們喜歡玩弄數(shù)據(jù),編寫出有用的 API,按照不同的權限分配給網(wǎng)頁前端、移動應用和其他系統(tǒng),讓前端工程師可以安心的沉浸在交互和布局中。通俗易懂的高質量的 API 受人尊敬,這就是后端工程師的價值所在。 我們怎樣才能感受到后臺的存在? 點擊 http:// 打開婚禮邀請函。此時 八音盒 的服務器會把信息發(fā)送到你的手機或電腦中,然后變成你所看到的內容。這就是后臺工程師所做的事情。如果你向下滾動屏幕到最后,留下自己的姓名和祝福,點擊發(fā)送,別人就可以看到你的留言,下一次你再打開這個網(wǎng)頁,留言也不會消失,這些都多虧了后端工程師??! 全棧工程師 Full-Stack Developer 說到這里,首先要明確一點,前端開發(fā)和后端開發(fā)并不是黑與白的區(qū)別,前端工程師和后端工程師之間也沒有恐怖分子和反恐精英這樣子的曖昧關系。在目前的經(jīng)濟形勢下,在這個資源緊缺的市場環(huán)境中,前端工程師往往需要學習(至少了解)一些后端開發(fā)的技能,反之亦然。產(chǎn)品開發(fā)有很多通用的規(guī)則,跨越了前后端的界限,于是我們開始尋找一種通才。 它的由來? 全棧工程師自然很早就存在,但是“全棧工程師”的叫法誕生于 Facebook 的開發(fā)部門。四年前,有一類特別的人群被挖掘出來,他們的工作內容涉及到了技術架構(技術棧)中的每一個環(huán)節(jié),包括前端和后端,他們可以和后端工程師一樣在服務器端玩弄應用程序和數(shù)據(jù),也可以使用前端語言控制頁面內容和調節(jié)用戶體驗,他們能夠提供一套完整的系統(tǒng)。 總之,全棧工程師是網(wǎng)頁開發(fā)的全能戰(zhàn)士。 感覺很酷是吧?成為一個全棧工程師,同時精通前端和后端開發(fā),無形之中給自己的職業(yè)生涯創(chuàng)造了很多機會。不過也別高興得太早,就和烹飪一樣,有人更擅長熱菜,有人更擅長甜點,精通兩者需要時間和經(jīng)驗。媽媽的手藝可不是一日煉成的,更不是簡簡單單的按照食譜來做就行(事實上很多工程師依然在這樣錯誤的做著)。一個好的全棧工程師和一個好的大廚一樣,需要有自己的內涵,需要有所有的烹飪原料,需要掌握所有的方法,才能奉獻上一頓完美的晚餐。 全棧工程師需要掌握的技能相對復雜,甚至有些主觀,因為這不僅僅只是技能相關的需求,而且隨著時間的推移,人們對于他們的要求也在一點點變化。除了要根據(jù)不同項目掌握前端和后端開發(fā)的相應技能外,全棧工程師還需要充分理解網(wǎng)頁正常運行的每一個環(huán)節(jié),不僅包括合理的服務器配置,規(guī)范的 API 結構,還要通曉 JavaScript 的哲學,以及 CSS 背后的設計情懷。 舉個栗子,現(xiàn)階段一個典型全棧工程師的裝備,HTML5/CSS3 + Scala + MongoDB + 云服務 + JavaScript 有了知識和技術,就還差經(jīng)驗了,這也是最后一道門檻,全棧工程師尤其需要能夠在一個項目面前,快速地定義前端開發(fā)和后端開發(fā)的職責,分析各種解決方案的優(yōu)勢和劣勢,最終選擇最合理的執(zhí)行方式。 老問題,作為用戶如何感知網(wǎng)站背后的全棧工程師? 這個我真的說不出來了,自己去感受吧,頁面加載需要多久,內容布局是否專業(yè),交互體驗是否自然,等等等等。 最后說一句: 不要迷戀全棧工程師,任何時間,任何場合,都有一個“大而全”和“小而精”的選擇,好的網(wǎng)站從來都不是一個人的功勞,不要忽略了設計師、攝影師、文案、產(chǎn)品經(jīng)理、客戶經(jīng)理、銷售、客服、用戶、以及其他所有直接參與和間接參與到網(wǎng)頁制作中的人們。識別優(yōu)秀的工程師也并不一定只是技術層面的事情,無論是前端、后端還是全棧,工程師的自我修養(yǎng)還需要包括對細節(jié)的關注,自主學習的速度,解決問題的效率以及良好的溝通能力。 如果你是個網(wǎng)頁工程師,那么恭喜你,你現(xiàn)在最不需要擔心的就是找到一份稱心的工作。事實上接下來五到十年是網(wǎng)頁工程師最好混的時期了,HTML5 終于定稿,五花八門的屏幕的出現(xiàn),跨平臺應用的需求越來越高,微信至少還火熱著,加油啊?。?! 原文鏈接:http://www.36kr.com/p/217718.html 【編輯推薦】 【責任編輯:張偉 TEL:(010)68476606】 |
|