還有很多,就不一一列舉了,后面我發現,其實都是一些共性問題,大致是:
1. 應該怎樣學習PHP,學習的順序是怎樣的?
2. PHP學好后,可以做什么事情?
3. 聽得懂課,但是一旦自己獨立寫程序,就沒有思路?
4. 學習PHP需要怎樣的基礎,算法重要嗎?
等等,諸如此類的問題。所以,我想干脆就寫一篇文章來詳細的給PHP學習者們說說應該怎樣學習PHP?怎樣才能學好PHP?
首先,大家要達成一個共識,就是學習任何一門編程技術都需要我們付出心血,都要講求循序漸進,由淺入深。對每一個知識點要搞透,然后通過案例來加深認識,最后還需要把學習到的各個知識點實際運用到項目中去,才能融會貫通,最后才能到達能自如的駕馭項目的水平,現在我們就來看看應該怎樣一步一步的學習PHP這門編程技術,先看看學習PHP的順序圖,此學習順序圖是我推薦的學習內容和學習順序(除了這里列出的內容,要走向高手之路肯定還有更多技術需要學習,我這里只是對于初學者列出的主干學習內容,并不是全部):
對于PHP初學者來說,看到這樣多的內容,心里已經開始打退堂鼓了,但是,萬丈高樓平地起,我們只要堅持每天學習一部分內容,最后總會把這些技術都精通掌握的。
PHP這門技術相對java和 .net來說,是比較簡單的。PHP最主要的作用就是做站,也就是說PHP技術是用于開發網站的,比如目前世界排名前40的網站,有70%都使用到了PHP技術,比如facebook、youbute 、新浪、百度、淘寶、搜狐和騰訊這些知名的網站都有很大一部分業務是用PHP來開發的,因此被譽為web開發首選技術。開發PHP的軟件可以說是簡單的記事本也可以是一些集成開發軟件,比如 zendstudio ,這里我列舉一些常見的PHP開發工具:
① Editplus ② Zend Studio ③ PHP Coder ④ phpedit ⑤ easyecpilse ⑥ dw ⑦ vim
windwos下我常用的是 editplus 和 zend studio ,在linux下我推薦使用vim來開發更專業。
要學習PHP開發一定要按照正確的順序進行學習(如上圖PHP學習順序圖所示),很多人被一些《xx天精通***》這樣的垃圾書的影響,PHP這門語言相對JAVA要簡單,開發人員不需要學太多即可通過面向過程的方式開發出一個"某某管理系統",因此社會上充斥著大量只會面向過程的開發人員,他們不懂Http協議!不懂JavaScript!不懂PHP工作原理!不懂什么是真正的面向對象程序設計,這種"不不不"開發人員能找到4000的工作 就已經非常值得慶幸了。企業中最需要的是對"Http協議、Javascript、PHP工作機制、PHP程序調優、LAMP環境調優、OOP"等技術熟悉的人,而這樣的人是非常難招的。大家記住欲速則不達,速成的結果就是以后浪費更多的時間,回想這么多年你走過的路,有多少次為了走快點就跳著走,最后又浪費時間返工的事情,按照正確的順序才能更快、更好的掌握PHP。
學習PHP分為以下幾個階段,每個階段都有學習的重點和注意事項,下面詳細給大家介紹:
第一階段: PHP前端網頁開發基礎,在這一個階段中分為以下幾個階段課程
(1)HTML基礎與加強
HTML語言,HTML語言背景知識,HTML全局標簽,HTML格式標簽,HTML文件標簽,HTML超鏈接標簽,HTML圖像標簽,HTML框架標簽,HTML客戶端圖像地圖,HTML表格標簽,HTML幀標簽,HTML表單標簽,HTML頭元素,HTML分區標簽
(2)XHTML基礎與加強
XHTML與 HTML的差異,XHTML語法,XHTML DTD,XHTML驗證,XHTML模塊,XHTML屬性,XHTML事件,XTHML結構化
(3)HTML5設計與應用
HTML5介紹,HTML5多媒體處理,HTML5畫布,HTML5 Web存儲技術,HTML5表單,HTML5 屬性和事件HTML5的常用標簽(比如:applet標簽、article標簽、aside標簽、audio標簽、canvas標簽、datalist標簽、details標簽等)
(4)CSS基礎與加強
CSS 簡介,CSS基礎語法,CSS 派生選擇器,id 選擇器,CSS類選擇器,CSS盒子模型
CSS背景 、文本 、字體 、邊框 、外邊距 、內邊距 、列表 、表格CSS 高級: CSS 尺寸、分類 、定位 、偽類 、偽元素 、媒介類型
(5)DIV+CSS設計與應用
使用知名網站的首頁深入剖析DIV+CSS的WEB標準:盒子模型經典案例-優酷首頁面、仿sohu首頁面布局、可愛屋網站首頁面。涉及知識點包括: (CSS定位的四種方式、左浮動、右浮動、清除浮動、標準流和非標準流、設置對象的層疊順序、塊元素和行元素的轉換等)
(6)Javascript基礎語法:
Javascript基本介紹、Javascript的發展史、Javascript運行原理剖析、Javascript特點、
Javascript的標識符、Javascript基本數據類型(數值類型、布爾類型、字符串類型)、
Javascript復合數據類型簡介(數組、對象)、Javascript特殊數據類型(NULL、undefine)、
定義變量、初始化、賦值、數據類型轉換的兩種方式(自動轉換、強制轉換)、Javascript的運算符(算術運算符、關系運算符、邏輯運算符)、Javascript的位運算和移位運算
(7)Javascript三大流程控制
順序控制、分支控制(單分支: if語句、雙分支: if-else語句、多分支 if-else if-else 語句, switch-case-default語句)、循環控制(for語句、while語句、do-while語句)、在ie和firefox如何調式Javascript
(8)Javascript函數
函數基本概念、函數的定義、函數的調用方式及調用過程深度剖析、函數使用細節討論、使用Function類創建函數、函數實際運用(打印金字塔、九九乘法表)、函數的遞歸調用、
Javascript常用系統函數使用(encodeURI、decodeURI、eval、parseInt、parseFloat、isNaN等)
(9)Javascript數組
數組的基本使用、使用for/while遍歷數組、數組實際運用(計算班級平均分)、二維數組的基本使用、使用for遍歷二維數組、對二維數組轉置處理、數組排序介紹、冒泡排序、順序查找和二分查詢法
(10)事件驅動
Javascript的Event-Driven機制、事件源、事件處理程序、事件名稱、事件對象是什么、
事件類型(鼠標事件、鍵盤事件、HTML事件、其它事件)、Javascript訪問CSS技術、
事件驅動的瀏覽器兼容性處理、常用的18個事件(onblur、onchange、onfocus、onkeydown、onmousedown等) 綜合案例(Javascript版計算器)
(11)DOM編程
DOM編程介紹(HTML DOM與XML DOM)、DOM編程實例入門、BOM介紹、DOM對象介紹、window對象詳解、history對象詳解、location對象詳解、navigator對象詳解、screen對象詳解、event對象詳解、document對象詳解、body對象詳解、style對象詳解、WEB版坦克大戰游戲、forms對象(集合)、from對象、images對象(集合) 、img對象、links對象(集合)、link對象、all對象(集合)、table對象詳解、tableRow對象和tableCell對象、基于table對象的用戶管理系統
(12)WEB網站設計與應用
商業級網頁制作(企業郵箱網頁、旅游網網頁或呱呱網網頁)
這個階段的學習教程:推薦大家看 傳智播客 韓順平 輕松搞定網頁設計(html+css+javascript) ,下載視頻教程地址: http://php.itcast.cn 。這個階段的教程是針對PHP零基礎的同學進行講解。在教程中,我講解了很多的案例和作業是需要大家來完成的,千萬不要“眼高手低”,很多初學者都紛紛來信說這樣一個情況: 聽課沒有問題,寫代碼沒有思路,比如下面一位網友的來信寫到:
----------------------------------------------------------------------------------------------
From: 黑馬
Date: 2012-07-24 22:35
To: hanshunping
Subject:
韓老師您好:我是一名學生,一直看您的視頻,就是我看了您的視頻以后,覺得學到了蠻多的,就是感覺還是有點迷迷糊糊的,學的不夠透徹,就是不能獨立的完成一個項目的開發,我嘗試著去寫了幾個項目,就是遇到問題后,有時不知道怎么解決,問老師,老師叫我們百度,問題還是解決不了,我想我打算畢業以后,去您那培訓一下,把基礎打好,您覺得有這個必要嗎?
可能您會說,這得看我自己對這個基礎掌握多少,我也知道,就是有些知識覺得掌握了,但用起來又忘記了。對了我學的是php,希望您能給個建議。謝謝您。
-----------------------------------------------------------------------------------------------
這個就是典型的基礎不夠扎實,然后就盲目的學習高級階段課程的后果,我曾經這樣說過一句話:有些朋友學習技術,像一個大胖子,肚子大,腦袋大,看起來很唬人,但是腿很細,風一吹就倒了。就是說基礎太差了,結果就是越學越迷茫,最后,就放棄了。因此我說”基礎很重要” ,還有一點我要強調:在視頻教程中我講了很多的案例并布置了作用,一定要自己親手把代碼熟練的寫出來,記住是親手寫出來,而不是照著我的代碼抄,更不能是看懂了我的代碼就以為自己掌握了,要知道“看懂了”和“會寫了”之間差著十萬八千里呢! 我們學習編程是”做中學”,是做的過程中學會的,而不是會了在做,正是在編寫一行行代碼過程中,逐漸建立編程思想的,思想→代碼 這個過程是需要敲很多代碼的。
用賣油翁的一句話說:“我亦無他,但手熟爾”,請永遠記住“巧是從熟練中演變出來的”,這就是我們常說的“熟能生巧” 。
(轉載請注明 傳智播客php學院-韓順平 http://php.itcast.cn )