(轉)前端學習路線

 

  • 不求甚解階段:
 
  1. 入門階段:
 
Step 1:  用 HTML + CSS 模仿幾個漂亮的靜態頁面。當你看到如今大部分的網頁都以爲能大概猜到怎樣作,而且花時間真的能作出來的時候,便可進入下一步。注意,這個時候請你不要管瀏覽器兼容性或者太過注意代碼的優雅結構,由於不必。作到能兼容現代瀏覽器,內容和樣式基本徹底分離便可。這大概須要半個月到一個月的學習時間。
 
Step 2:  用 HTML + CSS + JS 寫幾個有交互的頁面。例如,你能夠寫一個漂亮的註冊頁面,它可以驗證各類輸入是否符合條件而且有一個用原生 JS 實現的日期選擇器(Date Picker)。或者,寫一個漂亮的,有動畫的相冊。注意, 這個階段請使用原生 JavaScript。一樣的,兼容現代瀏覽器便可。這大概須要半個月的學習時間。
 
Step 3:  入門一門後端語言。按照你的狀況,就 php 吧。有了上面的經驗,php 入門以後,相信你可以作一個漂亮的無用戶留言版了。請把數據存貯在文件中,由於你尚未學習 SQL 嘛。這大概須要半個月的時間,若是你學習能力強,一個星期也不是沒有可能。
 
Step 4:  入門一個關係數據庫。好比說 MySQL。DDL 和 CRUD ,請必定要熟練。恩,這個階段不要談什麼優化,那是扯淡。如今,你大概能夠作一個多用戶的博客程序了。這大概須要半個月的時間。
 
你看, 兩個半月不到你就能夠成爲一個初級的 Web 開發者了。博客作好以後,你能夠嘗試造更多的輪子。好比:帶簡單的用戶權限的論壇程序、簡單的記帳工具,等等,作你喜歡作的任何小程序都行。在這個過程當中,你會變成一個熟練的初級程序員,或者,你爲了偷懶,會 學會 jQuery,Smarty 等框架。
 
 
2.提升:
 
有一天,你發現你靠寫小程序提升不了水平了。接下來就要學習真正的乾貨了。
 
 
學習 C 語言。別問我爲何,我就是以爲一個程序員應該要學過 C 語言,牛逼不牛逼是另一會事兒,何況不少書都是用的 C 語言描述。別光學語法,弄清編譯是什麼,連接是什麼,指針是又怎麼一會事兒。
 
學習 離散數學:主要是給你打下計算機數據模型的理論基礎。裏面包含集合,數,圖,等等,更重要的是若是你之後要搞研究,研究0錯誤程序,就是徹底沒有bug的程序,就須要用它上面的推導理論來對程序經行證實。若是你要經過系統分析員,這個也是要考試的
 
學習數據結構和簡單的算法。你看,你學完 C 語言就能學數據結構和算法了,我不可思議用 php 來描述數據結構和算法會有多麼地奇怪。若是你以爲學了以後仍是不知道數據結構到底是什麼,有什麼用,那證實你尚未真的學到。
 
學習一門面向對象的靜態編程語言推薦 Java。學得有多好,就看你花了多少時間了。請務必仔細閱讀各種相關書籍,深入領會面向對象的重要編程思想(不過,切忌迷信面向對象編程)。
 
學習操做系統和計算機網絡。至少一些基本的概念須要弄清楚,具體的細節,沒有必要過於糾結。
 
  • 求甚解階段:
 
Okay.. .以上均可劃爲「不求甚解」的階段,接下來就能夠選一個方向(前端,或者後端)「求甚解」了在「求甚解」的階段裏,我這裏就不細說了,也無法兒細說,而且你到了這個階段,通常是不須要別人告訴你須要學什麼了。因此,我只說 在進入這個階段以前,或者剛剛進入這個階段時,最好去作的一些事情:
 
看書或文檔拋棄中文譯本,藉助各類工具閱讀英文原版。(英語要學好)
 
學習使用 Unix-like 系統。
 
•學會提問[1]。
 
訂閱科技博客,瞭解業界正在發生什麼事情。
 
 
----------------------------------------------------------------------------------------------------------
 
 
網站開發開發大體分爲前端和後端, 前端主要負責實現視覺和交互效果,以及與服務器通訊,完成業務邏輯。其核心價值在於對用戶體驗的追求。能夠按以下思路學習系統學習:
 
基礎知識:
 
1.  html + css 這部分建議在 w3school 在線教程 上學習,邊學邊練,每章後還有小測試。 以後能夠模仿一些網站作些頁面。在實踐中積累了一些經驗後,能夠系統的讀一兩本書,推薦《head first html 與 css 中文版》,這本書講的太細了,我沒能拿出耐心細讀。你能夠根據狀況斟酌。 
 
2. javascript 要學的內容實在不少,若是沒有其餘編程語言的基礎的話,學起來可能要費些力,仍是建議先在 w3school上學習。以後建議 立刻看《javascript語言精粹》,js是一門很混亂的語言,這本書可以幫助你區分哪些是語言的精華,哪些是糟粕,對於語言精華,應該深刻學習。糟粕部分能看懂別人寫的代碼就行,本身就不用嘗試了。
 
進階:
 
有了以上基礎,就能夠進行通常的靜態網頁設計,不過對於複雜的頁面還須要進一步學習。
 
1. css。必看《精通css》,看完這本書你應該對:盒子模型,流動,block,inline,層疊,樣式優先級,等概念很是瞭解了。做爲練習能夠看下《css藝門之匠》這本書,它對標題,背景,圓角,導航條,table,表單等主題都有詳細的介紹。
 
2. javascript。上面提到內容還不足以讓你勝任js編程。在有了基礎以後,進一步學習內容包括:
 
a) 框架。推薦jQuery,簡單易用,在w3school簡單學習js後,直接上手jQuery便可完成一些簡單的項目。學習方法也很簡單,照着產品文檔作幾個頁面就好了,不用面面俱到,之後遇到問題查文檔就好了。框架能夠幫你屏蔽瀏覽器的差別性,讓你能更專一與web開發學習的精髓部分。
 
補充: 可使用 codecademy 學習 javascript,jQuery,用戶體驗真的很好(感謝 TonyOuyang )。 
 
b) javascript 語言範式 。這個名字可能並不恰當,只是我找不到能夠描述「面向對象」,「函數式」這個兩個概念的概念。javascript不徹底是一個面向對象的語言,它的不少設計理念都有函數編程語言的影子,甚至說若是你不用面向對象,徹底能夠把它理解成一門函數式編程語言。javascript的不少語言特性,都是由於他具備函數式語言的特色才存在的。這部分推薦先學習面向對象的基本理論,對封裝,繼承,多態等概念要理解,維基百科,百度百科會是你的幫手,另外推薦 《object oriented javascript》,應該有中文版。對與函數式編程我瞭解的也不繫統,很差多說,能夠本身百度一下。
 
c) javascript 語言內部機制。必須弄清以下概念:js中變量的做用域,變量傳遞方式,函數的定義環境與執行環境,閉包,函數的四種調用方式(通常函數,對象的方法,apply,call),以及四種調用方式下,‘this'指向的是誰。這部份內容你會在《javascript語言精粹》中詳細瞭解。另外,你必須理解json。
 
d) dom編程,這個web前端工程師的核心技能之一。必讀《dom編程藝術》,另外《高性能javascript》這本書中關於dom編程的部分講的也很好。
 
e) ajax編程,這是另外一核心技術。ajax建議在網上查些資料,瞭解這個概念的前因後果,百度百科,維基百科上的內容就足夠了。真正編程是很容易的,現在幾乎全部框架都對ajax有良好的封裝,編程並不複雜。
 
f) 瞭解瀏覽器差別性。這部分包括css和js兩部分,瀏覽器差別內容不少,建議在實踐中多多積累。另外對於瀏覽器的渲染模式,DOCTYPE等內容應該系統學習。
 
再進一階 · 代碼層面:
 
有了以上知識,對於大多數小型網站,你應該已經能夠寫出可以工做的代碼了。但要想成爲更專業的前端,你還需繼續努力。更高的要求大概還有四方面:1易維護,2可測試,3高性能,4低流量(移動端)。
 
1. 易維護。對於頁面你該理解‘樣式’,‘數據’,‘行爲’三者分離,對應的固然就是css,html,js。對於js代碼,你最好了解設計模式,重構,MVC等內容。
 
2. 可測性。
 
3. 高性能。必讀《高性能javascript》
 
4. 低流量。移動端關注比較多。
 
再進一階 · 工程層面:
 
前端項目一樣面臨軟件生命週期的各個環節,首先是代碼管理, 你必須學會使用svn和git。其次是代碼的構建,現在前端代碼構建已經不是簡單的壓縮一下了,須要進行依賴管理、模塊合併、各類編譯, 必需要學會使用grunt等前端構建工具,最近gulp比較火,也須要了解。
 
補充:
 
對於前端開發,基本內容就這些了,能夠根據本身的興趣愛好選擇性學習如下內容。
 
1. 交互設計。大公司依然有專業人士搞這些,不過不懂交互的前端必定不是好前端。推薦《簡約至上》。
 
2. 後端。應該說前段工程師必須至少了解一門後端語言,不過若是愛好也可深刻學習, 入手難度比較低的應該是php了。這部分由可分爲基於頁面,基於框架兩種。大型項目都是基於框架開發的, 建議至少了解一個MVC框架,好比php的ci, yii, yaf 等,好還框架的設計思想都大同小異。現在NodeJs在大公司已經獲得廣泛的使用,推薦你們使用在Node上使用Express框架作一些後端服務的開發。
 
3. flash。我並無吧flash做爲前端工程的核心技能之一,由於我不會,不過ActionScript應該和js大同小異,能夠根據工做須要學習。不過個人原則是能不用就儘可能不用,其實不少效果經過js,css均可以實現,徹底不須要flash。並且隨着html5的發展flash遲早會淘汰。
 
4. html5和css3 。HTML5規範已經於2014年10月28日發佈了,移動端html5和css3已經獲得了很是普遍的使用,相關的工具和環境也比過去好不少,有志前端必學。
 
5. Android和ios開發。時至今日,前端的工做領域已經很是普遍,native的界面開發本質上也是前端開發,個大公司都面臨着Native環境和web環境頁面同時維護的問題,若是可以在技術上獲得統一,將會有巨大的價值。對於學有餘力的同窗,應該瞭解Native開發的基本流程,至少了解到界面構建的技術。
相關文章
相關標籤/搜索