前段時間和你們一塊兒分享了一篇關於學習方法內容《大牛與搬運工的差距——學習方法的力量》。咱們將學習過程分紅八步,並借鑑了敏捷開發的迭代思想,以達到自我迭代學習的效果。行勝於言,理論結合實踐纔是王道,因此本文我將基於前面的學習方法,分享我是如何學習PHP的。
php
最初接觸PHP時,是源於本身想學習網站開發,因爲是前端轉後端,PHP徹底是自學的,不過好在以前學過C語言,學起PHP來倒並未以爲吃力。使用PHP咱們能夠開發出各類優秀的web應用程序。html
我不敢說PHP是最好的語言(避免引戰),但PHP憑藉其易學、快捷、高效等特性,至少在WEB應用開發領域裏一直都是熱門技術,以致於如今市面上各類IT培訓機構裏都不乏PHP的身影。前端
接下來,咱們就立刻開啓PHP的學習之旅~mysql
咱們都知道作事情要定個目標,看似簡單,但實際大部分人作事無成果的緣由偏偏就是這一步沒作好。程序員
建議你們在確立目標時,借鑑」SMART」原則——Specific(具體的), Measurable(可衡量的),Achievable(可達到的),Realistic(切合實際的),and Timed(合時宜的)。不要給本身制定諸如「我要精通PHP」、「我要成爲技術大牛,月薪XX萬」等這種不着邊的目標。web
我在初學PHP時,給本身定的目標很明確:sql
學習PHP的基本知識,並經過開發一款CMS建站系統來驗證學習效果。數據庫
咱們經過逆向分解,將目標拆分紅具體的可執行任務。這個過程其實就是將目標細分整理成具體的小目標或問題,而後將其關聯到一個個可執行的任務,目的是完成目標或解決問題。編程
完成個人目標,須要具體學習哪些知識,完成哪些事項呢?首先,學習PHP以前基本的HTML,CSS,JS等前端基礎仍是有必要的。而後學習PHP的基本語法,文件、圖片、錯誤等處理機制,還有與mysql數據庫的一些操做,以及會話控制、協議、MVC設計模式等。後端
梳理以後,目標就會被分解成一個個須要完成的具體任務。這裏我藉助「然之協同」裏的任務管理工具,將須要作的任務都羅列出來,方便後面執行跟蹤。
學習過程當中必然少不了各類學習資料,在蒐集知識資源時主要側重三方面:書籍、官方文檔和網絡技術文章。
首先我找的是PHP的官方手冊,這是必備學習工具,內容既權威又全面。其次書籍到如今買的較多,對於初學者,不建議「書海戰術」,我的以爲「手冊+一本書+一臺電腦」足矣。其實不少入門書籍都是基於PHP手冊編寫的,千篇一概,因此建議初學者學習PHP時要研讀手冊,每段實例代碼都上手操做並理解透徹。這裏爲初學者推薦幾本我的覺的還不錯的書以供參考:
《PHP編程(第三版)》
《PHP和MySQL Web開發(原書第4版)》
《深刻PHP:面向對象、模式與實踐(第3版)》
除此以外,平時也會在CSDN、掘金、博客園等IT技術門戶裏查閱一些php技術相關的「乾貨」。
對於知識資源的蒐集,仍是要提醒你們注意一點,切勿作「收藏控」。不少朋友對於書籍、各類教程、網絡文章等資源,購買了下載了收藏了,而後,就沒有而後了,最終真的淪落爲「收藏品」。而咱們真正要作的是要把知識「收藏」並沉澱到咱們腦子裏。
其實就是時間管理。咱們的時間、精力等各方面資源有限,全部的知識不可能平均分配有限資源。對於咱們蒐集的知識資源,要分清主次,而後使用不一樣的時間管理策略進行學習。
前面梳理了一些須要執行的學習任務,並整理了大量的學習資源,這一步要作的就是將這些任務、資源結合自身的實際狀況,合理規劃分配時間精力。每一個人的狀況不一樣,因此這一步因人而異,這裏我仍是藉助「然之協同」的待辦工具,作一個具體可執行性的學習計劃。
學習效率與效果取決於執行力。以前文章介紹過學習中的一些方法論,這裏我簡要地介紹一下學習PHP時的大致過程。
a.快速泛讀
若是你有必定語言基礎,好比我以前學過C和前端技術,再學起PHP來上手就相對快一些。基本的語法知識能夠先快速過一遍,像數組、字符串、圖片等處理函數、對象接口、正則匹配等能夠後面慢慢積累、深刻。
b.深刻解讀
由淺入深地沉澱每一個知識點。正如前面所講,建議先從PHP手冊入手,將每一個知識點理解清楚,必定要將每一段實例代碼親手敲一遍(手懶是永遠都學不會任何一門語言的)。一遍不懂就多敲幾遍,不只要明白怎麼用,還要理解爲何這樣設計,不然對於基本知識浮於表面,只會爲後面學習挖下坑。
c.問題攻讀
在學習過程當中你必然會遇到各類問題,先查閱資料或谷歌來解決。若是遇到以現有知識層面難以解決的問題,能夠先記下,或許後面會柳暗花明或找他人幫助。
這一步學習的正確姿式其實就是「作任務,刷副本,打怪升級,加技能點」。
不要覺得這一步無關緊要,創建知識體系有助於幫咱們理清各個概念和知識點之間的關聯,逐漸造成系統的知識體系。在web開發裏,咱們知道任何一門技術都不是孤立的,你要學習不少知識,因此你在學習PHP時會發現,從PHP這個點會延伸出多條知識鏈,從而系統地造成一個知識體系。
這裏我藉助xmind腦圖工具,整理了一下PHP的基本的知識體系。(網上有列的更詳細全面的版本)
基於前面問題攻讀後還有未解決的問題,就要求教他人獲取幫助了。提問也是一門藝術,這還是一個學習交流的過程,而不是讓別人去解決本來你該解決的問題。
向別人提問求助時,要講問題的前因後果講清楚,如怎麼引發的,本身嘗試作了哪些操做等等。這些年在衆多技術交流社羣和平臺,見過不少奇葩的提問方式,這裏列幾個,與你們共勉。
a.直拋結果型
直接甩出一張截圖或錯誤提醒,並附上一句:怎麼解決?怎麼破?跪求科普……
b.不懂就問型
不動腦,不動手,碰到問題就問。這種選手即使幫他解決了問題,他也學不到東西。
c.懶人型
與前者相似,但更滑稽好笑,看到這種問題我我的向來直接無視。好比「這個問題是這樣操做麼?」,「我這樣整對不對?」,「是點這裏麼?」……
其實即使不提「費曼技巧」,咱們不少人在學習時都會用到分享複述這個方法。不管是演講、錄視頻、仍是像我此刻這樣寫文章,其實都是在向他人闡述本身對知識的理解和觀點,而後你們會給本身一些反饋,好比你的錯誤、問題,接着本身再回歸到知識裏完善不缺「漏洞」,如此迭代學習。
這裏分享下咱們團隊基於PHP+Mysql開發的項目,供你們學習練習。
我將本身學習PHP的過程分爲八步:
1.確立目標:沒有目標的學習是不會有結果和效果的。
2.拆分任務:將目標分解成具體可執行的學習任務。
3.蒐集知識資源:查閱官方文檔、購買書籍、蒐集網絡乾貨文章。
4.分配自身資源:合理分配時間精力,制定學習計劃。
5.勤學:強大的執行力是學習的根本保障。
6.創建知識體系:將學習的知識在腦海裏創建系統模型。
7.好問:避免孤立學習,但好問也要會問。
8.分享複述:檢驗學習成果,提升學習效果的最好方法。
做者:GavinHsueh,QQ/微信:753391279,專一項目管理、辦公自動化、網站建設等web應用開發領域。
程序員動漫 技術乾貨分享