乾貨 | PHP就該這麼學!

GavinHsueh發表於2018-08-07

前段時間和大家一起分享了一篇關於學習方法內容《大牛與搬運工的差距——學習方法的力量》。我們將學習過程分成八步,並借鑑了敏捷開發的迭代思想,以達到自我迭代學習的效果。行勝於言,理論結合實踐才是王道,所以本文我將基於前面的學習方法,分享我是如何學習PHP的。

為什麼學習PHP?

最初接觸PHP時,是源於自己想學習網站開發,由於是前端轉後端,PHP完全是自學的,不過好在之前學過C語言,學起PHP來倒並未覺得吃力。使用PHP我們可以開發出各種優秀的web應用程式。

我不敢說PHP是最好的語言(避免引戰),但PHP憑藉其易學、快捷、高效等特性,至少在WEB應用開發領域裡一直都是熱門技術,以至於現在市面上各種IT培訓機構裡都不乏PHP的身影。

接下來,我們就馬上開啟PHP的學習之旅~

1.確立目標

我們都知道做事情要定個目標,看似簡單,但實際大部分人做事無成果的原因恰恰就是這一步沒做好。

建議大家在確立目標時,借鑑”SMART”原則——Specific(具體的), Measurable(可衡量的),Achievable(可達到的),Realistic(切合實際的),and Timed(合時宜的)。不要給自己制定諸如“我要精通PHP”、“我要成為技術大牛,月薪XX萬”等這種不著邊的目標。

我在初學PHP時,給自己定的目標很明確:

學習PHP的基本知識,並通過開發一款CMS建站系統來驗證學習效果。

2.拆分任務

我們通過逆向分解,將目標拆分成具體的可執行任務。這個過程其實就是將目標細分整理成具體的小目標或問題,然後將其關聯到一個個可執行的任務,目的是完成目標或解決問題。

完成我的目標,需要具體學習哪些知識,完成哪些事項呢?首先,學習PHP之前基本的HTML,CSS,JS等前端基礎還是有必要的。然後學習PHP的基本語法,檔案、圖片、錯誤等處理機制,還有與mysql資料庫的一些操作,以及會話控制、協議、MVC設計模式等。

梳理之後,目標就會被分解成一個個需要完成的具體任務。這裡我藉助“然之協同”裡的任務管理工具,將需要做的任務都羅列出來,方便後面執行跟蹤。

3.蒐集知識資源

學習過程中必然少不了各種學習資料,在蒐集知識資源時主要側重三方面:書籍、官方文件和網路技術文章。

首先我找的是PHP的官方手冊,這是必備學習工具,內容既權威又全面。其次書籍到現在買的較多,對於初學者,不建議“書海戰術”,個人覺得“手冊+一本書+一臺電腦”足矣。其實很多入門書籍都是基於PHP手冊編寫的,千篇一律,所以建議初學者學習PHP時要研讀手冊,每段例項程式碼都上手操作並理解透徹。這裡為初學者推薦幾本個人覺的還不錯的書以供參考:

《PHP程式設計(第三版)》

《PHP和MySQL Web開發(原書第4版)》

《深入PHP:物件導向、模式與實踐(第3版)》

除此之外,平時也會在CSDN、掘金、部落格園等IT技術門戶裡查閱一些php技術相關的“乾貨”。

對於知識資源的蒐集,還是要提醒大家注意一點,切勿做“收藏控”。很多朋友對於書籍、各種教程、網路文章等資源,購買了下載了收藏了,然後,就沒有然後了,最終真的淪落為“收藏品”。而我們真正要做的是要把知識“收藏”並沉澱到我們腦子裡。

4.分配自身資源

其實就是時間管理。我們的時間、精力等各方面資源有限,所有的知識不可能平均分配有限資源。對於我們蒐集的知識資源,要分清主次,然後使用不同的時間管理策略進行學習。

前面梳理了一些需要執行的學習任務,並整理了大量的學習資源,這一步要做的就是將這些任務、資源結合自身的實際情況,合理規劃分配時間精力。每個人的情況不同,所以這一步因人而異,這裡我還是藉助“然之協同”的待辦工具,做一個具體可執行性的學習計劃。

5.勤學

學習效率與效果取決於執行力。之前文章介紹過學習中的一些方法論,這裡我簡要地介紹一下學習PHP時的大體過程。

a.快速泛讀

如果你有一定語言基礎,比如我之前學過C和前端技術,再學起PHP來上手就相對快一些。基本的語法知識可以先快速過一遍,像陣列、字串、圖片等處理函式、物件介面、正則匹配等可以後面慢慢積累、深入。

b.深入解讀

由淺入深地沉澱每個知識點。正如前面所講,建議先從PHP手冊入手,將每個知識點理解清楚,一定要將每一段例項程式碼親手敲一遍(手懶是永遠都學不會任何一門語言的)。一遍不懂就多敲幾遍,不僅要明白怎麼用,還要理解為什麼這樣設計,否則對於基本知識浮於表面,只會為後面學習挖下坑。

c.問題攻讀

在學習過程中你必然會遇到各種問題,先查閱資料或谷歌來解決。如果遇到以現有知識層面難以解決的問題,可以先記下,或許後面會柳暗花明或找他人幫助。

這一步學習的正確姿勢其實就是“做任務,刷副本,打怪升級,加技能點”

6.建立知識體系

不要以為這一步可有可無,建立知識體系有助於幫我們理清各個概念和知識點之間的關聯,逐漸形成系統的知識體系。在web開發裡,我們知道任何一門技術都不是孤立的,你要學習很多知識,所以你在學習PHP時會發現,從PHP這個點會延伸出多條知識鏈,從而系統地形成一個知識體系。

這裡我藉助xmind腦圖工具,整理了一下PHP的基本的知識體系。(網上有列的更詳細全面的版本)

7.好問

基於前面問題攻讀後還有未解決的問題,就要求教他人獲取幫助了。提問也是一門藝術,這仍是一個學習交流的過程,而不是讓別人去解決原本你該解決的問題。

向別人提問求助時,要講問題的來龍去脈講清楚,如怎麼引起的,自己嘗試做了哪些操作等等。這些年在眾多技術交流社群和平臺,見過很多奇葩的提問方式,這裡列幾個,與大家共勉。

a.直拋結果型

直接甩出一張截圖或錯誤提醒,並附上一句:怎麼解決?怎麼破?跪求科普……

b.不懂就問型

不動腦,不動手,碰到問題就問。這種選手即便幫他解決了問題,他也學不到東西。

c.懶人型

與前者類似,但更滑稽可笑,看到這種問題我個人向來直接無視。比如“這個問題是這樣操作麼?”,“我這樣整對不對?”,“是點這裡麼?”……

8.分享複述

其實即便不提“費曼技巧”,我們很多人在學習時都會用到分享複述這個方法。無論是演講、錄視訊、還是像我此刻這樣寫文章,其實都是在向他人闡述自己對知識的理解和觀點,然後大家會給自己一些反饋,比如你的錯誤、問題,接著自己再回歸到知識裡完善不缺“漏洞”,如此迭代學習。

開源專案推薦

這裡分享下我們團隊基於PHP+Mysql開發的專案,供大家學習練習。

禪道專案管理軟體

蟬知企業門戶系統

然之協同辦公系統

zentaoPHP框架


小結

我將自己學習PHP的過程分為八步:

1.確立目標:沒有目標的學習是不會有結果和效果的。

2.拆分任務:將目標分解成具體可執行的學習任務。

3.蒐集知識資源:查閱官方文件、購買書籍、蒐集網路乾貨文章。

4.分配自身資源:合理分配時間精力,制定學習計劃。

5.勤學:強大的執行力是學習的根本保障。

6.建立知識體系:將學習的知識在腦海裡建立系統模型。

7.好問:避免孤立學習,但好問也要會問。

8.分享複述:檢驗學習成果,提高學習效果的最好方法。


作者:GavinHsueh,QQ/微信:753391279,專注專案管理、辦公自動化、網站建設等web應用開發領域。

乾貨 | PHP就該這麼學!

相關文章