有感,php雖然越來越火,但好的文章也越來越少,大部分都是一些空洞無味話題,討論些用不到的或者是一些很少用的知識,要不就是一些花邊新聞,大談和現在好無關聯的將來的事情,這些話題雖然不疼不癢的,但帶來的後果也越來越顯現出來,忽悠了大多數沒有辨別能力的新人,也越來越脫離了正常的軌道。
大部分的話題都是關注技術本身,而忽略了更主要的因素–人,通過搜尋,閱讀,實踐,討論等方法來擷取知識,解決工作中的實際問題,但前提是已經有一份較穩定的工作,不在為生存問題揪心的人。
在這裡,我將按照我給學員指導的經曆,給初學php的同學一個基本的學習脈絡,希望對大家有協助。其實,我寫的很多文章裡面已經給出了一個大概的學習脈絡,只是,它是用圖形表示的,也許你沒有看懂,這沒有關係,我的這篇文章將給你做一個正確的指導。
1、不建議找到一本書死啃,沒啥用,更何況大多數書結構,內容大同小異,只是代碼不同而已,都是東拼西湊的,尤其以國內的書籍表現的更為突出一些。(PHP,.NET,Java大都如此)不要有這一頁看不明白我就不往下看的想法。電腦語言的學習和原來的代數、幾何不大一樣。不是用幾個公理推出所有結果的。
2、從哪裡開始呢?有的老師就建議你開啟電腦,搭建好開發環境(去網上找找吧如何安裝Apache,PHP,MySQL;當然你也可以參考一下我的其它建議性文章),找一個最簡單的開發工具(我比較喜歡Editplus,或者用UEStudio),建立第一個程式:Hello World!,你只要運行看到結果了,我們再進一步討論該學啥。這樣的建議無可厚非,但是它忽略了一個最主要的問題,我們學習PHP幹什麼,難道只是因為它好玩而學習嗎?雖然好玩只是學習的一個內在原因,但並不是主要原因,而真正學習的目的是工作,也就是說為企業而工作,那麼企業是怎麼要求的,企業開發的過程是怎麼樣,企業開發的平台都有哪些,所有這些,應該是我們首先要告訴學生的,這樣真正瞭解了企業的需求,才能做好相應的學習計劃,有的放矢的來學習。
因此,在這裡,我會講以下幾個問題(1、LAMP系統平台;2、招聘啟示的解讀;3、人員,過程與工具)。
3、從現在開始,你的想法,你看到的所有知識,記得,你都可以放在企業的那個真實的環境裡面去驗證。動手驗證所有知識!
4、首先php你真的知道了嗎?不管你以前是否學過,是否聽說過,或者是否搜尋過,或者是否看過一些相應的書籍,但你一定要知道的卻是:PHP是什麼,我們為什麼要關注,然後就是搭建相應的開發環境,這裡提示你的是,你不需要手動搭建開發環境,而是直接使用整合式開發環境,原因,這裡就不重複解答了,你可以參考我的其它文章。然後體驗一下整個開發的過程。
你要知道它的起源,特性,與其它語言的相同與不同,應用的範圍
5、先瞭解php的語言基礎,其實也就是三大組成部分(資料類型,資料結構,控制結構)。把所有php裡面的基礎資料型別 (Elementary Data Type)、資料結構(也可以叫儲存結構,控制類型)瞭解一遍,大體看看和你之前學習語言有啥不同就行了。假如你之前沒有學過C,沒任何語言基礎,沒關係,硬著頭皮把代碼打下來,看看到底有什麼發生改變了,變數和函數到底是在幹啥,不斷按照你的臆測去測試代碼,直到你大概想通了這些都寫在代碼裡是為什麼。他們之間是如何協調工作的。字串,數組,Regex你需要認真處理一下。
這部分內容為什麼要學呢,有的人想不通,其實主要的原因是為了將來筆試的時候用的到,當然在實際工作當中幾乎天天用到。
6、有的放矢的學習函數庫,PHP也是函數式語言,由於它吸收了其它語言的一些優點,提供了大量的函數庫來提供編程效率,但我們也要知道的是,不是所有的函數庫都需要瞭解,而是你應該知道最基本的函數庫有那些,都提供那些函數,到那裡去找函數。我會告訴我的學生,如何很好的利用PHP使用者手冊來學習相應的函數,至於說如何熟練的掌握,沒有什麼竅門,只有多寫多練才能掌握函數的用法,參數,以及根據自己的要求編寫自訂的函數。基本原則是:用什麼就先去找什麼。沒有什麼再去寫什麼
7、數組、字串和Regex,你應該好好實現一下,這裡有個技巧,學過Regex的人都知道,Regex不是那麼好學,要記的東西太多,有的人學了很長時間也沒有掌握,這裡,我是通過一些好用的工具,來教會我的學生來掌握這方面的內容。要知道,工欲善其事必先利其器。好的工具有時會起到事半功倍的效果,但前提是你必需知道必要的知識,才能知道工具如何使用。如果你連最基本的知識都不知道,工具就只能成為你的擺設了。
8、到這你有點累了,因為,你還沒有做出像樣的東西出來。那好,咱們開始著手使用一下PHP檔案處理吧,很好,我們終於能見到一些有用的程式結果了。如果你願意的話一下午你可以實驗所有的檔案函數,並能做出一些簡單基於檔案處理的應用來,雖然功能很簡單,但已經離成功不遠了!因為程式所有的最基本的功能基本上都完備,欠缺的只是其它方面,這也是我們下一步學習的重點內容。
9、前面的學習大多數都是在做背景開發,也就是使用PHP把資料經過簡單的處理,然後輸出到瀏覽器上。見到的都是一些沒有任何美觀的介面,這是不是一個缺憾呢?。那好,咱們開始著手使用一下HTML吧,很好,我們終於能見到不是醜陋的程式結果了。鮮活的介面出來了,你願意的話一下午你可以實驗所有的HTML組件(幀,表格,連結,文本,字型,圖片,視頻,音頻等……)
10、好,你會發現你的介面的所有的都很好看,但是卻不能執行任何動作,對,你要開始學習Javascript了。大部分的內容我們似曾相識,沒錯,大多數語言的基礎都是相通的,只是寫法不同而已。重點是BOM,基本函數的應用。換句話說,就是把原來在後台寫的代碼,放到前端來再寫一遍。
11、到此為止,我們應該能熟悉了PHP裡面的基本編程模式了,從後台過渡到了前端,對介面這部分當然我們還很模糊。沒關係,最重要的不是你現在就是個專業的程式員或者是個專業的美工,而是你現在依然保持著足夠高漲的學習興趣和熱情,你還有嗎?如果你還有,我們繼續,看看後面還要繼續學什麼。(待續)
嘮叨了這麼多,希望對年輕的朋友有一點點協助,也歡迎大家和我交流,留言交流更好。