結合個人經歷總結的前端入門方法

發表於2015-11-01

結合個人經歷總結的前端入門方法,總結從零基礎到具備前端基本技能的道路、學習方法、資料。由於能力有限,不能保證面面俱到,只是作為入門參考,面向初學者,讓初學者少走彎路。

網際網路的快速發展和激烈競爭,使用者體驗成為一個重要的關注點,導致專業前端工程師成為熱門職業,各大公司對前端工程師的需求量都很大,要求也越來越高,優秀的前端工程師更是稀缺。個人感覺前端入門相對容易,但是也需要系統地認真學習,在打好基礎後堅持學習,成為優秀前端工程師也只是時間問題。

學習任何知識最重要的都是興趣,如果經過一段時間的學習感覺不喜歡,那可能強迫自己學習是很痛苦的,效果也不會好,畢竟這很可能就是以後很多年生存的技能。不過隨著網際網路行業的發展,前端必然是Web開發人員需要學習的知識,有時候是沒有專業前端工程師一起合作的,所以即使不做專門的前端工程師,掌握基本的前端技能為工作帶來方便。

後期邀請了一些同學分享學習經歷。如果有同學願意分享,歡迎push

必備基礎技能

前端技能彙總這個專案詳細記錄 了前端工程師牽涉到的各方面知識。在具備基本技能之後可以在裡面找到學習 的方向,完善技能和知識面。

frontend-dev-bookmarks是老外總結的前端開發資源。覆蓋面非常廣。包括各種知識點、工具、技術,非常全面。

以下是個人覺得入門階段應該熟練掌握的基礎技能:

  • HTML4HTML5語法、標籤、語義
  • CSS2.1CSS3規範,與HTML結合實現各種佈局、效果
  • Ecma-262定義的javascript的語言核心,原生客戶端javascriptDOM操作HTML5新增功能
  • 一個成熟的客戶端javascript庫,推薦jquery
  • 一門伺服器端語言:如果有伺服器端開發經驗,使用已經會的語言即可,如果沒有伺服器端開發經驗,熟悉Java可以選擇Servlet,不熟悉的可以選PHP,能實現簡單登陸註冊功能就足夠支援前端開發了,後續可能需要繼續學習,最基本要求是實現簡單的功能模擬,
  • HTTP

在掌握以上基礎技能之後,工作中遇到需要的技術也能快速學習。

基本開發工具

恰當的工具能有效提高學習效率,將重點放在知識本身,在出現問題時能快速定位並 解決問題,以下是個人覺得必備的前端開發工具:

  • 文字編輯器:推薦Sublime Text,支援各種外掛、主題、設定,使用方便
  • 瀏覽器:推薦Google Chrome,更新快,對前端各種標準提供了非常好的支援
  • 除錯工具:推薦Chrome自帶的Chrome develop tools,可以輕鬆檢視DOM結構、樣式,通過控制檯輸出除錯資訊,除錯javascript,檢視網路等
  • 輔助工具:PhotoShop編輯圖片、取色,fireworks量尺寸,AlloyDesigner對比尺寸,以及前面的到的Chrome develop tools,

學習方法和學習目標

方法:

  1. 入門階段反覆閱讀經典書籍的中文版,書籍中的每一個例子都動手實現並在瀏覽器中檢視效果
  2. 在具備一定基礎之後可以上網搜各種教程、demo,瞭解各種功能的實際用法和常見功能的實現方法
  3. 閱讀HTML,CSS,Javascript標準全面完善知識點
  4. 閱讀前端牛人的部落格、文章提升對知識的理解
  5. 善用搜尋引擎

目標:

  1. 熟記前面知識點部分的重要概念,結合學習經歷得到自己的理解
  2. 熟悉常見功能的實現方法,如常見CSS佈局,Tab控制元件等。

入門之路

以下是入門階段不錯的書籍和資料

  1. HTML先看《HTML & CSS: Design and Build Websites》1-9章,然後《HTML5: The Missing Manual》1-4章。
  2. CSS先看《CSS: The Missing Manual》,然後《CSS權威指南》
  3. javascript先看《javascript高階程式設計》,然後《javascript權威指南》
  4. HTTP看HTTP權威指南
  5. 在整個學習過程中HTML CSS JavaScript會有很多地方需要互相結合,實際工作中也是這樣,一個簡單的功能模組都需要三者結合才能實現。
  6. 動手是學習的重要組成部分,書籍重點講解知識點,例子可能不是很充足,這就需要利用搜尋引擎尋找一些簡單教程,照著教程實現功能。以下是一些比較好的教程網址
  7. 原生javascript是需要重點掌握的技能,在掌握原生javascript的基礎上推薦熟練掌握jQuery,在實際工作中用處很大,這方面的書籍有《Learning jQuery》或者去jQuery官網
  8. 建一個https://github.com/賬號,儲存平時學習中的各種程式碼和專案。
  9. 有了一定基礎之後可以搭建一個個人部落格,記錄學習過程中遇到的問題和解決方法,方便自己查閱也為其他人提供了幫助。也可以去http://www.cnblogs.com/或者http://www.csdn.net/這樣的網站註冊賬號,方便實用
  10. 經常實用Google搜尋英文資料應該經常找到來自http://stackoverflow.com/的高質量答案,與到問題可以直接在這裡搜尋,如果有精力,註冊一個賬號為別人解答問題也能極大提高個人能力。
  11. 經典書籍熟讀之後,可以開啟前面必備基礎技能部分的連結。認真讀對應標準,全面掌握知識

繼續提高

有了前面的基礎之後,前端基本算是入門了,這時候可能每個人心中都有了一些學習方向,如果還是沒有。 可以參考前面必備技能部分提到的那兩個專案,從裡面選一些進行發展學習。以下是一些不錯的方面:

一些個人經歷

LingyuCoder的學習經歷

上面的大神都總結得差不多了,我這裡就胡扯一些吧

工具

  • chrome dev tools:前端開發除錯利器,著重注意幾個功能:
    • console(廢話)
    • elements:元素樣式調整,很常用
    • sources:程式碼中新增斷點,單步除錯,以及單步除錯過程中檢視記憶體中的物件
      • watch expression:通過表示式檢視當前記憶體中的值
      • call stack:檢視呼叫棧,開啟async,可以看非同步呼叫棧(這個非常有用,尤其是ajax除錯的時候)
      • scope variables:作用域鏈上的變數,非常有用
    • network:抓包檢視每個請求,非常重要,前後端聯調必備
    • timeline:分析渲染、js執行等等各個階段,效能優化利器
    • emulation:模擬移動端環境,mobile頁面開發必備
    • 一些外掛:
      • liveload: 修改頁面後自動重新整理,不用按F5
      • dimensions:直接在頁面上測量的利器
      • livestyle:css樣式修改後自動起效果,不需要重新整理,elements修改後也能同步到程式碼中
      • image tool:測量,取色
      • UC二維碼:移動端除錯掃碼必備
      • pagespeed,YSlow:頁面效能分析和優化外掛
      • 馬克飛象:優秀的線上markdown編輯器,快速寫週報,做記錄
  • sublime text2:編碼方便,外掛多,速度快,效能好
    • emmet:提升html編碼速度必備
    • sublimelinter + 各種語言的lint和hint:程式碼糾錯
    • 一些snippets:自動補全,提升開發效率
  • Intellij IDEA和WebStorm:整合開發環境,整合了各種功能,開發比sublime要方便,但會比較吃效能
  • Mark Men:測量、取色、標註利器,拿到視覺稿之後第一個開啟的軟體
  • GFW Fucker:我用紅杏,可以的話買個虛擬伺服器當梯子
  • iHosts:非常優秀的hosts管理軟體,輕鬆修改hosts,開發除錯必備
  • Charles:Mac 平臺最好用的抓包分析工具
  • Rythem:AlloyTeam出品的代理抓包軟體,非常輕量,安裝簡單,移動端(真機)開發除錯很好用
  • Wunderlist:一個非常不錯的Todo List,任務、需求多的時候管理起來很方便

技能

前端的技能其實除了JavaScript(包括NodeJS)、HTML、CSS以外,還有很多。其實前端的技能樹很大,這裡只能列一些我開發中見到的說一說

語言基礎

JavaScript:

  • 作用域鏈、閉包、執行時上下文、this
  • 原型鏈、繼承
  • NodeJS基礎和常用API

CSS:

  • 選擇器
  • 瀏覽器相容性及常見的hack處理
  • CSS佈局的方式和原理(盒子模型、BFC、IFC等等)
  • CSS 3,如animation、gradient、等等

HTML:

  • 語義化標籤
進階

JavaScript:

  • 非同步控制(Promise、ES6 generator、Async)
  • 模組化的開發方式(AMD、CMD、KMD等等)
  • JavaScript直譯器的一些相關知識
    • 非同步IO實現
    • 垃圾回收
    • 事件佇列
  • 常用框架使用及其原理
    • jQuery:基於選擇器的框架,但個人認為不能叫框架,應該算工具庫,因為不具備模組載入機制,其中原始碼很適合閱讀鑽研
    • AngularJS/Avalon等MVVM框架:著重理解MVVM模式本身的理念和雙向繫結的實現,如何解耦
    • underscore:優秀的工具庫,方便的理解常用工具程式碼片段的實現
    • polymer/React: 元件化開發,面向未來,理解元件化開發的原理

CSS和HTML:主要是CSS3的特性和HTML5的特性,以及瀏覽器處理的流程和繪製原理

  • DOM樹、CSSOM樹、渲染樹的構建流程及頁面渲染的過程
  • 解析HTML、CSS、JavaScript時造成的阻塞
  • HTML5相關
    • SVG及向量圖原理
    • Canvas開發及動畫原理(幀動畫)
    • Video和Audio
  • flex box佈局方式
  • icon fonts的使用

常用NodeJs的package:

  • koa
  • express
  • underscore
  • async
  • gulp
  • grunt
  • connect
  • request

一些理念:

  • 響應式Web
  • 優雅降級、漸進增強
  • dont make me think
  • 網頁可用性、可訪問性、其中的意義
  • SEO搜尋引擎優化,瞭解搜尋引擎的原理
  • SPA的好處和問題

效能優化:

  • 減少請求數量(sprite、combo)
  • 善用快取(application cache、http快取、CDN、localstorage、sessionstorage,備忘錄模式)
  • 減少選擇器消耗(從右到左),減少DOM操作(DOM和JavaScript直譯器的分離)
  • CSS的迴流與重繪
專案
  • 版本管理:首推Git,用過Git都不會想用SVN了
    • Git:本地版本管理的機制
    • SVN:遠端中心的版本管理機制
  • 自動化構建:主要就是less、模板、coffee等的預處理以及對程式碼壓縮和合並
    • Gulp:基於流構建,速度快、模組質量好
    • Grunt:獨立任務構建,速度慢,配置蛋疼,靈活性高
  • 預處理和模板引擎
    • less:語法簡單,但功能有限
    • jade、ejs、velocity等模板引擎,各有各的長處
    • coffee:python工程師最愛,我沒用過
  • 環境搭建:主要是將線上程式碼對映到本地,並在本地啟動一個demo伺服器,至於模擬資料的mock,見仁見智了
    • 本地代理:ihosts
  • 自動化測試:在業務較為穩定的情況下,可以通過自動化測試來減少測試的事件,但需求較多的時候,維護測試用例的成本會很高,可能用自動化測試會起到反效果
    • jasmine
    • mocha
  • 生態系統
    • npm
    • bower
    • spm
  • 搭建一個屬於自己的部落格
    • git pages
    • hexo
    • jekyll
未來
  • Web Componets:面向未來的元件化開發方式
    • HTML模板
    • Shadow DOM
    • Custom Elements
    • HTML Import
  • 移動端Native開發:這也是需要了解的,以後前端工程師會經常地和webview打交道,也要了解native開發
其他

有些東西不是考敲碼就能弄好的,我參與實習的時候感受到了很多,這些是我遇到的也是我感覺自己做的不好的地方

  • 對於業務的思考:我個人這方面非常欠缺,所以放在最前面,在敲碼前要多思考業務
  • 交流和溝通能力:這個非常重要,前端同時需要與專案經理、產品、互動、後臺打交道,溝通不善會導致很多無用功,延緩專案
  • 知識管理、時間管理:input和output的平衡,output是最好的input。如何做好分享,參與社群,做好交流,作好記錄
  • 對新技術的渴望,以及敢於嘗試

入門書

入門可以通過啃書,但書本上的東西很多都已經過時了,在啃書的同時,也要持續關注技術的新動態。這裡推幾本我覺著不錯的書:

  • 《JavaScript高階程式設計》:可以作為入門書籍,但同時也是高階書籍,可以快速吸收基礎,等到提升再回來重新看
  • 《JavaScript權威指南》:不太適合入門,但是必備,不理解的地方就去查閱一下,很有幫助
  • 《編寫可維護的JavaScript》和:
  • 《Node.js開發指南》:不錯的Nodejs入門書籍
  • 《深入淺出Node.js》:Nodejs進階書籍,必備
  • 《JavaScript非同步程式設計》:理解JS非同步的程式設計理念
  • 《JavaScript模式》和《JavaScript設計模式》:JavaScript的程式碼模式和設計模式,將開發思維轉變到JavaScript,非常好的書
  • 《JavaScript框架設計》:在用輪子同時,應當知道輪子是怎麼轉起來的,講解很詳細,從原始碼級別講解框架的各個部分的實現,配合一個現有框架閱讀,可以學到很多東西
  • 《Dont make me think》:網頁設計的理念,瞭解使用者行為,非常不錯
  • 《CSS禪意花園》:經久不衰的一部著作,同樣傳遞了網頁設計中的理念以及設計中需要注意的問題
  • 《高效能JavaScript》和《高效能HTML5》:強調效能的書,其中不只是效能優化,還有很多原理層面的東西值得學習
  • 《HTML5 Canvas核心技術》:我正在讀的一本書,對於canvas的使用,動畫的實現,以及動畫框架的開發都非常有幫助
  • 《HTTP權威指南》:HTTP協議相關必備,前端開發除錯的時候也會經常涉及到其中的知識
  • 《響應式Web設計》:技術本身不難,重要的是響應式網頁的設計理念,以及移動先行的思想
  • 《JavaScript語言精粹》:老道的書,也是普及JavaScript的開發思維的一本好書,非常適合入門

一些不錯的網站

  • github:沒啥好說的,多閱讀別人的原始碼,多上傳自己的原始碼,向世界各地的大牛學習
  • codepen:感受前端之美的必選之地,裡面有很多酷炫的效果和優秀的外掛
  • echojs:快速瞭解js新資訊的網站
  • stackoverflowsegmentfault:基本上各種問題都能在上面獲得解答
  • google web fundamentals:每篇文章都適合仔細閱讀
  • static files:開放的CDN,很好用
  • iconfont:阿里的向量圖示庫,非常不錯,支援CDN而且支援專案
  • html5 rocks: 一個不錯的網站,很多瀏覽器的新特性以及前沿的技術,都能在這上面找到文章
  • css tricks:如何活用CSS,以及瞭解CSS新特性,這裡可以滿足你
  • JavaScript 祕密花園 JavaScript初學必看,非常不錯
  • w3cplus:一個前端學習的網站,裡面的文章質量都挺不錯的
  • node school:一個不錯的node學習網站
  • learn git branch:一個git學習網站,互動很棒
  • 前端亂燉:一個前端文章分享的社群,有很多優秀文章
  • 正規表示式:一個正規表示式入門教程,非常值得一看
  • 阮一峰的部落格張鑫旭的部落格:快速瞭解某些知識的捷徑,但是如果需要深挖,還需要其他的資源
  • 各路大牛的部落格:這個太多了,就不貼了,知乎上有很全的
  • 各種規範的官方網站,不懂得時候讀規範

歷程

以前是做Java SSH的,半路出家做的前端,所以水平比較弱,遇到問題也比較多。基本上入門靠看書和W3C School上的教程,以及一些前端部落格,如湯姆大叔的部落格。以前也只是使用jQuery,原生js也沒有太多的鑽研,後來逐漸看了很多本動物書,比如老道的語言精粹等等。從這些書中學到了很多語言層面的知識。但這顯然是不夠的,所以我經常會去社群上看看大家在談論什麼,然後去看看相關的資料,感興趣就會多找些資料看看,或者寫一寫demo。學CSS主要就是通過這種方式。後來開始更多的關注各路大牛的部落格和一些比較深的書籍,以及關注一些新的知識和框架,並且不斷地練手提交程式碼到github,這樣也學到了很多知識。在實習的過程中,切身參與到實際專案開發之中,能學到很多在學校學不到的理念和思維,這點也有很大的幫助。不說了,我要去搬磚求offer了…

MrRaindrop的學習經歷

qiu神的邀請分享一下前端學習經驗,這裡對前端知識體系架構就不做總結了,各位大神們的總結已經相當到位了,我就貢獻幾個個人認為還比較有用的連結大家研究研究就好,然後主要分享一下我在前端學習過程中遇到的問題和總結的經驗教訓吧,如果能幫到想要入門的FE初學者(我就姑且假定為本文的讀者受眾型別了),讓他們少走點彎路,每走一步都知道自己下一步的方向,這是最好了。各位大神的總結和分享詳見qiu神整理的FE-learning

先說下,前端這個東西每個人都可以有適合自己的學習方法,這篇僅作參考,寫的有點亂,各位湊合看。

緣起

我是屬於誤打誤撞進了前端,之前一直往做遊戲的方向去來著,搞過遊戲網站,玩過遊戲引擎,比如unity,unreal這種商業引擎,搗鼓了幾個遊戲原型,不過自打研一進了實驗室,直接就被導師派去寫了js,導師給了我半個月時間讓我寫個基於百度地圖api的資料展示頁面,雖然這個時間還是相當寬裕的,不過之前沒怎麼寫過js,也不會用地圖api,於是我就一邊啃著《Javascript權威指南》(犀牛書)一邊參考實驗室前人留下的“程式碼”,總算是把功能都寫出來了。那個頁面算我的js入門作了,也是我前端學習路線的開始。

現在想來,雖然指派了去做前端,但是一直做下去並做好還是得靠興趣維持,當然前端是一個趣味性十足的技術領域,而且社群每天都很“熱鬧”。

專案,下一個專案

我個人認為前端的學習,初學階段你可以完全脫離開書本,以專案驅動。雖然我個人是從犀牛書開始啃的,不過如果你沒有充足的時間,或者覺得啃大部頭乏而無味的話,還是別像我這樣。當然瞭如果決定啃書最好是把書裡的例子都跟著敲一遍的。我上研之前沒接觸過js,4月份還沒開學呢就被直接被導師甩了個百度地圖api的專案到臉上,接著就是各種ERP,地圖資料展示,雖然換著花樣來一點不重樣,不過基本上都是前端的活,SSH和android開發也打過醬油,整個實驗室就我一個人寫前端敢信?富客戶端SPA時代的後端就是一個restful介面,程式碼量基本都在前端啊,寫的我一個人怎一個爽字了得…期間跟著導師感受了一把創業,每天從7點搞到晚上10點,也算是經歷了一段快速成長期。

掌握一門技術先掌握它的大體框架,想一個能實現的點子,做一個能跑就行的demo,再去完善它的細節,等到demo完成了,對這門技術有了一個感性的認識,再去啃書,收穫會大很多。我從開始原生js寫到jquery,再到extjs,再到angularjs,從導師指定技術,到自己做技術選型,一個專案接著一個專案的練,就跟打怪升級似的。當然沒有專案就去自己創造專案,動手實現自己的想法是件有樂趣和成就感的事。

收集癖和知識管理

前端學習有個特點,很多東西都很零碎,分散,需要你自己去整理、歸納和總結。在微博、知乎上follow了眾多的大神,你不僅僅是為了聽八卦,大神們的隻言片語有時候留下的是無盡的餘味,很有可能一個不經意提到的一個詞就成為你下一個學習的目標。收集這些資訊,善用google,提問,思考。就像遊戲裡的收集要素,前端學習也是充滿蒐集要素的一個“遊戲”,只不過你需要一個知識管理工具來充當物品欄和倉庫,我所知道的大牛們無一不是知識管理工具的重度使用者。以前用的oneNote,那時候還沒繫結到雲端儲存,現在基本上用evernote,筆記已經累計到1200+篇。書籤一直打算用delicious,因為它是基於tag管理的,但一直沒用起來。當然重點不在於這些工具,但是趁手的工具可以提高你的學習效率。最關鍵當然是隨時保持旺盛的學習慾望,你的目標是瞭解有關前端的一切(當然不是所有都要掌握,因為畢竟你的精力有限,而且現實的說這也不太可能)。

跟對神

這個可控性貌似不大…跟對老大這個就不多說了,一定程度要看造化。不過話說回來,多跟身邊的高手交流是王道,這個高手不一定要多高,但是一定要對技術有熱情。研一的時候熱情高漲,每天7點進實驗室門,然後發現有個傢伙居然比我還早到。後來發現這傢伙上午就走了,下午又來了,而且導師對此習以為常,原來這傢伙晚上不睡覺通宵寫程式碼,上午才跑回去睡。後來經常和這位神討論問題,每次感覺經驗值蹭蹭蹭的往上漲。然後實驗室還有一位神,被前面這位通宵神形容為“只能望其項背,一直在追趕,從來沒趕上”,兩位神的特點都是什麼都瞭解一點,所以什麼都能跟你討論得起來,我有段時間做了個讀書計劃,從c/c++到vc/mfc再到unix網路程式設計,最後一路看到java核心技術和MSDN上的C#程式設計指南,和神們也能扯得很high了。

總之就是這兩位神把我拉進了坑,或者說從一個坑跳進另一坑,雖然兩位神都不是搞前端的,不過技術之間總有相通之處。

讀書

讀書,多讀書,讀好書。在劉未鵬的部落格裡看到過一個公式,你第一個月的工資等於之前買過(讀過)的技術書價格總和(這裡說的技術書指那些經典的公認的好書)。討論這個公式的正確性似乎沒什麼意義,然而它的合理性是毋庸置疑的,那就是多讀經典技術書。最極端的一個例子,google的徐宥在我的大學裡面說他掃蕩了圖書館的整個TP312書架…對於前端的經典書籍,後面列了一個我收集的前端書列(如果有遺漏的前端經典好書,還請留言告訴我),有條件可以嘗試刷一遍這些書,我也是在找完整的時間去啃完它們。之前說的,前端知識點鬆散,收集零散的知識點,從部落格裡快速學習等,這些只是前端學習的一個方面,如果你要想深入理解一個知識體系,瞭解它的來龍去脈,對它建立系統認識,讀經典書還是必不可少的。

我從最開始啃完犀牛書,然後接著去看了其他一些和前端干係不大的經典技術書,再後來通過實驗室的專案和自己弄的一些小專案逐漸對前端領域比較上路以後,又看了《Javascript模式》、《Javascript設計模式》、《編寫可維護的Javascript》,後來瞭解到node並開始用node搞點小玩意兒,又看了本《NodeJS up and run》和《Mongodb權威指南》,不過感覺前者略坑。那會兒樸靈那本深入淺出(曬書麼麼噠)還沒出,後來出了就去圖書館借來看完,這麼看下來感覺還不錯,不過感覺看的還是偏少了,還需要繼續刷(參照上面的書列)。

前端的定位

前端的定位關乎到你需要吸收什麼樣的知識和技能,決定在技術世界裡你對什麼需要格外敏感。如果你認為前端僅僅停留在切頁面,實現互動和視覺的要求,那你對前端的認識還停留在初級階段。阿里終面的時候我問了考官這麼個問題:前端技術日新月異,範圍越擴越寬,標準越來越豐富,似乎任何一個觸角都能伸出很遠。怎麼給前端一個合適的定位?考官給我分析了半天,然後總結成一句話,就是使用者和網站的聯結者,使用者體驗的創造者(原話不是這樣,但大體是這個意思)。也就是說前端的終極目標其實就是創造使用者體驗,提升使用者體驗,以使用者體驗為中心。不管你是從互動設計上下手,還是從效能優化出發,或者改進工作流提升工作流效率,最終都是為了創造和提升使用者體驗,最終都要體現到使用者體驗這一點上來。我認為這個總結非常有道理(當然“使用者體驗”這個詞太寬泛了,並且不僅僅是前端工程師的範疇,比如開發後臺的時候對一個資料處理過程進行優化,提升了整體效能,這也是對使用者體驗的一個提升)。

現在的前端工程師做到一定階段不可避免會接觸到很多比切頁面、實現視覺要求、實現互動等更深入的問題,比如前端自動化、影像程式設計、效能優化等等,再往後推一點就是PHP/JSP/ASP/nodeJs,過去後端模板一般屬於後端的範疇,現在隨著前端架構的演進,可能會讓你去寫後端模板的程式碼,需要用到後端語言(PHP/Java/C#等),這就是所謂大前端(然而這與前端的定位並不是相背離的,大前端處理的依然是與使用者接觸的部分,仍然是對使用者體驗的優化)。可能最常見或者被談論最多的就是node,其實這幾種技術選型都可以,bat三家據說百度用PHP比較多,阿里用node比較多。

玉伯在他的部落格裡提過所謂全端是橫向的,全棧是縱向的。全端即所有的終端說白了都是前端,因為都關乎到使用者體驗,直接和使用者接觸。適應多終端的開發,要求你在web前端的基礎上,可能還要去擴充套件android開發和ios開發的知識,好在由於hybrid開發方式的流行,對使用native語言開發的技能會要求的不那麼深入。

全棧可以說是最適合初創公司的一種發展型別,廣義上認為是從前端幹到後端,從開發幹到運維,這種就不說了,一般人應該不會想要去往這個方向發展,想要成為這種意義上的full-stack dev的,可能用不著來看我這篇文章了;而狹義上的全棧特指使用js語言從前端寫到架設在nodeJs上的後端,前後端統一語言,統一程式設計模型,甚至公用同一套程式碼。更多瞭解全棧開發可以看看玉伯這篇說說全棧工程師

以上是我對前端以及衍生出來的技術路線的一些淺薄理解,學習一個領域掌握它的整體上的走向和趨勢還是挺重要的。另外如果想要對前端學習方向、職業成長路徑有一個整體的認識,推薦看看拔赤總結的這篇前端開發十日談

最後

貢獻幾個對前端學習、面試有幫助的連結:

byr論壇yiyizym的建議

與grunt相比,學習gulp會比較簡單

做SPA的話,推薦backbone.js和 backbone.marionette.js

把基礎打紮實了再學這些都沒問題。

html 沒什麼好說的,有空學學html5。

css 儘量看文件 ,因為很多中文資料都各執一辭,看多了反而會糊塗。

有個網站可以查詢html/css標籤、屬性在各個瀏覽器中的支援情況,挺好用的。

javascript 就看 javascript高階程式設計 。不過這麼厚的書看過就會忘。對javascript核心概念的講解:物件/原型鏈/ 建構函式/執行上下文/作用域鏈/閉包/this,這裡有篇不錯的文章。

有閒情可以看看 ecmascript 6,計劃明年6月就釋出啦。阮一峰的網站有入門資料。

jquery 有很多 API,這個網站可以方便查到。有時間弄清楚jquery deferred 的用法。

多給 sublimetext 裝外掛,比如說檢查程式碼錯誤的,新建目錄檔案的,整理程式碼的。

相關文章