自學 PHP,如何不走彎路?
大學畢業一年,現在想學 PHP,但是沒有基礎,看了半月的 html div+CSS,感覺還行,就是複雜的頁面布局比較模糊,求高人指點下該如何學習不走彎路,謝謝!
彎路都有哪些,我列舉下你可以對照著看看
- 資料庫查詢用字元串拼接。正常的做法是用ORM進行封裝
- 分不清PHP和JavaScript各自都幹啥。這個真無解,你得好好了解啥是客戶端腳本啥是服務端腳本
- 以為PHP是最牛逼的語言。千萬別這麼認為
- 以為web開發里PHP是最牛逼的語言。同上條,千萬別這麼認為
- 以為會資料庫查詢、會PHP讀取數據展示就認為會寫網站了。這個水平只能寫個個人主頁
- 搞不清session是啥。好好學習HTTP協議
想到再補充吧。
我也是自學php,而且是非計算機專業,算半路出家的。(工作了一段時間又自學編程)
1.一本好書至關重要。如果這本書的知識非常深入,那麼還是不要看了。對初學者來說只能是打擊。因為很多東西都看不懂。一本知識較為淺顯,並且說明非常詳細,但是能讓你上手的基礎知識又非常完善的書籍就非常好。(推薦php紅寶書)
2.理順學習流程。php本身的實踐重點是web。以後深入了可以用作其他用處。而寫出一個能看的web必然與html和css密切關聯。所以,首先,了解html+css+js的知識是非常重要的。(很多中小公司html+css+js+php都是一個人完成。沒有詳細的分工。)這樣對學習的積極性也會有幫助。其次,要掌握伺服器環境的配置,不然只能寫寫靜態頁面了。再次就是sql語言的學習。
3.了解程序原理,程序的語法永遠都是次要的。重要的還是原理,知道程序是怎麼工作的遠遠比程序是怎麼寫的要重要的多。(數據結構+演算法=程序)
4.項目實踐,有了理論,那麼就是實踐了,只有通過實踐才能知道自己哪裡有不足,改掉了不足,自己的水平自然就提高了。(從最簡單的hello world,到創建自己的框架)
5.進階。計算機的世界每天都在不斷更新。想要讓自己不掉隊,那麼就要不斷的學習新知識。寫博客,記錄自己解決問題的方法和過程。看高手的博客,不斷充實自己的知識和技術細節。邁向php語言的底層。讓自己掌握更多的c/c++的知識,如果有可能也看一看java的知識。還有操作系統。你會發現其實php原來只是浮雲啊。
6.關於視頻教程,這個東西仁者見仁,對我個人而言我是比較喜歡看視頻的,因為非常直接,別人怎麼做的一目了然。但是這個東西也有壞處,如果講課的人講不到這個知識點那麼可能自己也就不去注意了。還有就是,很容易受講課人的影響,形成某種編程和思考習慣。(個人認為形成自己的編程和思考習慣是非常重要的)
彎路是不可避免的。
了解網站的運行原理,懂得一次請求都發生了什麼。
http協議htmlcssjslinuxapachemysql...
學php不僅是學一門語言。
為什麼害怕彎路,我們的每一次成長不都是從掉到坑裡爬起來而獲得的么?
如果你沒見過糟糕的代碼,又怎麼會了解到好代碼的可貴?如果你沒經歷過架構設計的失敗,怎麼對比好架構的難得。
邀請我回答這個,幾天前已經回答過一個類似問題 自學PHP有哪些書籍和教程值得推薦? - Summer 的回答 - 知乎。
為方便查閱,下面貼出來。
我在整理這份方案時,也是為了讓新手少走彎路,提高學習效率,把更多的時間放到項目練習上,同學們可以參考下。
作者:Summer
鏈接:自學PHP有哪些書籍和教程值得推薦? - Summer 的回答 - 知乎
來源:知乎
著作權歸作者所有,轉載請聯繫作者獲得授權。
剛給一位親戚整理了一份關於 Web 開發學習的方案,他也是想成為 PHP 攻城獅,所以這裡也貼一下給他的學習路線和思路。
網路上教程太多,五花八門,為他總結這份方案的目的,在於最高效的學習。真的不需要看 100 個 PHP 基礎課程或者書籍來學習 「PHP Web 開發」。「PHP Web 開發」是技能,只需要看剛剛需要的知識,然後做項目練習,在練習中成長。這個方案,也兼顧了 @countryRoad 同學提到的,**保護學習的樂趣**,找到舒適感,獲取成就感,在積極的過程中學習是最高效。
PHP 無法單獨學,因為是 Web 開發的專屬語言,需要整套的 Web 開發知識。Web 最基本的學習可以從 HTML+CSS 開始。第一步是學習一下下面這個交互課程:
HTML+CSS基礎課程-慕課網
交互課程的好處是可以實時反饋,並且一開始不需要為開發環境的事情擔憂,直接上手。注意上面那個課程不要求完全學會,過一遍即可,不懂的東西先記起來,然後跳過,後面再不斷 Review ,不要妄想一下子學會全部。編程是 「技能」多一點,重在練習,這裡我們只求知道個大概,以方便後面其他課程的繼續。
接下來就是 PHP 基礎和進階課程了:
PHP入門篇_PHP入門視頻教程-慕課網
PHP進階篇_php視頻教程-慕課網
還是跟學習 HTML 一樣,過一遍即可,我們的目的只求知道個大概,以方便後面其他課程的繼續,不懂得東西後面等我們慢慢上手,找到舒適感了,再逐個擊破。
有了上面的基礎知識,接下來可以開始學習實戰課程了。這是最重要的一步,一個 PHP 工程師的能力,完全是靠項目累積出來的。我們經常笑稱為「打怪升級」,從第一個項目開始,每做多一個項目,能力值和經驗值就會增加。
一個概念要放在腦子裡面,這是很多人一路學過來經常猜的坑,那就是:不要看太多書或者文檔,要動手做,你真正的 PHP 學習是從你開發第一個項目開始。
因為編程是一門技能,你看再多的書,最多只是知識,知識和技能是有區別的。就如你可以預想到的,一個人看了三個月 NBA 籃球視頻,期間連球都沒摸到,到了球場肯定還是不會打球。他真正的籃球學習,從他開始動手的那一刻起。
PHP 的學習,可以歸納為三個類型:
- 語言的基礎語法學習,這些是 ifelse, while, switch, class, function, trait 等;
- 內置函數/類學習,這些是 array 的操作,string 的操作,cookie 等;
- 應用學習,這些是隊列、計劃任務、註冊登錄、緩存、郵件、分頁、許可權管理、ORM等;
第一和第二,入門是上面提到的慕課網的交互課程,進修是在 PHP: PHP 手冊 - Manual 裡面。所以後面隨著學習的深入,文檔要多看,有個心理準備,作為一位 PHP 高級工程師,文檔基本上得過 5 ~ 10 遍。
第三部分的學習,可以藉助一個優秀的框架來學習,站在巨人的肩膀上。跟著框架學習的好處在於你能確保走在一條正確的路徑上,框架解決的是實現生產環境中遇到的通用問題,所以基本上框架學習涉及的話題,那都是 PHP 開發中經常會面對的問題,並且你學習到的是解決方案。
學習框架提供的每一個功能,並且在學習的時候問下面幾個問題:
- 這個功能為什麼會出現?解決了什麼問題?
- 這個功能通用性有多強?為什麼會被放到框架裡面?
- 這個功能在設計上有哪些優於其他框架的地方?
PHP 框架首推 Laravel ,原因見這裡: 最好的 PHP 框架是什麼?為什麼?。
Laravel 學習資料,入門先看這個《Laravel 入門教程》 ,這本書是我專為 PHP/Laravel/Web 初學者定製的,也是我的公司 「優帆遠揚」 http://estgroupe.com/ 的工程師必修課。
此書將教你如何使用 Laravel 一步一步構建一個類似新浪微博的應用,註冊、登錄、授權、ORM 使用等,甚至是從 0 到部署。讓你從實際開發中體會到 Laravel 開發的敏捷、愉悅與輕鬆。
書中涉及到 HTML、CSS、JavaScript、PHP 和 Laravel 等 Web 開發相關的基礎知識。不僅於此,還會對這些基礎知識點進行延伸擴展,為你講解一些在 Web 開發中更為專業、實用的技能,如 Git 工作流、Gulp 前端工作流、Bootstrap 框架基本使用,上線部署代碼等。這些知識將為你未來的編程開發奠定下堅實的基礎。
此書的線索性很強,我們故意這樣設計,讓讀者能跟著線索練習下去。這裡的要求是,跟著此書做 5 遍。
學完此書,有了第一個項目經驗。就可以開始閱讀 Laravel 的文檔 https://laravel-china.org/docs/home ,嘗試著去理解文檔中涉及的話題。
遇到問題可以到 Laravel China 開發者社區 裡面找答案,或者提問題,提問題時注意看下 社區發帖和管理規範 。
Laravel China 開發者社區 這個是國內現在最靠譜的 PHP/Laravel 社區,還算是蠻有技術氛圍的,至少我們一班管理員都是一直以這個為目標在努力。
後面的學習就是不斷的看 PHP 手冊 + Laravel 文檔 + 做自己的項目,或者公司項目。
還是要強調一下,DO IT 、DO IT 、DO IT 。動手練習是編程的唯一學習方法。
Summer
- 哦,PHP不是簡單的html+css,這是前端的事情。
- 別看了,如果可以盡量找個培養新人的公司,先進去開始coding吧。
- 沒有編碼1萬行,談什麼都是空的。
- 多google吧,如果還有百度,你就一直得屌下去了。
- 學會用stackoverflow
- 學會用github
- 開始把編程作為一種樂趣吧
首先:div+css說法本身就是錯誤的。正確的應該是(X)HTML+CSS
回答:不走彎路是不可能的。但可以少走彎路,去http://php100.com http://phpchina.com http://lampbrother.net 這些網站或論壇逛逛。
看別人怎麼做的。跟著學。
多看書,多寫代碼,無他。如果在校生那就多看書。
回想我的 PHP 學習過程,我至少看過,3 本PHP相關的編程書籍,1 本web開發書籍,2 本JS書籍,1 本HTTP權威指南,1 本CSS權威指南,2 本設計模式,2 本MySQL, 3 本Linux相關,後期還看過 PHP 擴展開發的書籍,但是覺得太無聊了,沒看下去。每次看這些書都感覺特別有收穫,很有必要。另外,還需要多看開源代碼,我通讀過至少 3 種 PHP 框架的源碼。目前 PHP 編程能力不敢說精通,但至少是相當熟悉。
最近在學 erlang,準備先看完 2 本 erlang編程指南再說,很喜歡 erlang, 原來編碼還可以那樣子來。
另外,本人不推薦通過視頻來學習,曾經在校時,覺得看書沒意思,看了十幾集視頻,就是那種從頭到尾教你怎麼寫一個CMS的那種,感覺效率不是太高。還有我發現之所以要看視頻來學習完全是因為自己懶,懶得看書,而不看書不學習會感覺愧疚,於是就想看視頻。
推薦一個叫 Slim 的小巧框架,感覺設計不錯,適合移動app後端開發。
強烈反對上面有人說看書不如看官網文檔的,我想請教一下,看官網文檔怎麼看,就對著一個個函數看怎麼使用嗎,太無聊了吧,耗時且效率低。一般我們說查閱文檔,是指當遇到一個概念或者一個函數或者一個類的使用方法不太了解,想去深入查證一下,這個時候才是需要看文檔的時候。而不是通過閱讀文檔來學習編程!
這麼多同學都在分享自己學習的經歷,我也忍不住說說自己是怎麼入門的,如有不同的觀點請輕噴!
1)單純的學PHP肯定不行,這裡不僅僅局限於PHP,前端也要涉及,例如div+css+js,不是說要精通,但是一定要熟悉了解,至少對於JS這塊jquery的熟練運用是一定要有的。還有伺服器方面,apache,nginx神馬的!
想當初我前端和PHP一起學習的時候,自己寫了一個webQQ(大三自己一個人),界面,通信方面都是自己實現的,花了我三個月,不過當時沒有考慮到大數據以及性能的問題,所以干程序這行一定要有鑽研精神。
下面這個就是我寫的webQQ,獻醜:
2)要說怎麼學PHP,有人說視頻,有人說看書,其實都是很好的選擇,我個人開始學習的時候是看視頻,畢竟大多的視頻教程都是入門級的,到後面視頻的教程滿足不了你的時候,你就可以去看看一些有深度的書籍了,實踐出真知。
3)Linux環境下的開發是必不可少的。要學習Linux,鳥哥的linux私房菜的書籍,肯定是要看過的啦!等真正會用linux的時候,你就明白linux有多有趣了!尤其是在操作命令不需要滑鼠的時候,別提多爽了!
4)資料庫,不用說肯定是mysql最熟悉了,curd操作,查詢優化這個是最基本的了解和掌握。
tip:關於有人說php源碼的問題,我剛開始學的時候,有些人會建議我去讀php的源代碼,對於這一點我當時真的去讀了,但是結果顯而易見,你讀不懂,也許你學過C(我本身是學軟體工程),但是如果沒有一些架構,技術鑽研的沉澱,你還是看不懂,而且你想想全中國那麼多PHP的工程師,能有幾個是看完PHP源碼的呢?就算是新浪微博的那個惠新宸也許也沒看完,做什麼事情不要鑽牛角尖為好!
對於後面的深入學習我也在自己探索,就不班門弄斧了!PHP語言入門不難,我大三的時候自學基本一個星期可以入門。
你想要不走彎路,建議看書+多練習。
其實不用想著不走彎路,不去走怎麼知道那一條是彎路。
只有走過了彎路,才能看到別人看不到風景,才能學會別人不知道的東西。
學會用是很容易,入門後可以看下 thinkphp這個框架。挺好用也挺多人用的。
祝你自學成才~
第一眼看成了自學PHD,把我嚇一跳
基本語法
編碼技巧,編碼規範
各類函數
各類PHP模塊
學習一款cms或二次開發
了解PDO,ADO、數據驅動層、順路去學下mysql
報錯機制
面向對象
使用一款框架幫助開發
魔術方法
設計模式
反射
動手寫各類工具類、驅動。
自己寫一款小框架(說實話,你沒這麼多精力去寫的,要面面俱到,了解很多泛面知識)
你已經是個中高級程序員了。
開始折騰PHP的運行原理和內核機制吧
試著寫一些php的C擴展幫助你的項目
這個時候,就強烈建議你去學一門強類型語言如JAVA。
對比不同和優缺點。
笑死人,你這不是已經彎了么。學php 你整那些前端的幹啥,最簡單的辦法,自己寫個mvc框架,就都熟悉了
推薦個集成開發環境phpstorm, 蠻好的
彎路未嘗沒有好風景
可以看看韓順平的PHP視頻
學php跟學書上內容一樣,學了你最好不能忘.
1.php基本語法,類操作2.mysql操作,php對mysql的操作
3.html/css/javascript,不求精通,只求熟悉
4.邏輯和顯示分離,include載入html骨架的顯示文件(v),include載入mysql的操作文件(m),控制需要顯示的數據以及各種邏輯(c),並在html文件中做數據展示 echo
5.熟悉php的oop編程
6.了解MVC架構,了解模版引擎 如smarty
7.學習php框架,如TP3.2.3
8.用框架在本地建站
9.學習linux基礎操作
10.學習lamp的搭建,配置
11.上傳項目代碼
12.修行靠個人...
先學們強類型的語言,再去學弱類型的語言!
剛開始就學 PHP ,會弄的你的基本編程思想都建立不起來。:)
在你學習PHP的時候,你要適當的學習:
- HTTP協議
當然如果資金和時間比較充裕的話,我是建議你去培訓班學習一下的、國內挺出名的php培訓也有好多,你可以查一下。
如果你真是想靠自己的實力來學習的話,我建議你去一些php培訓的網站上,他們的網站上都有詳細的培訓課程體系,你可以按照他們的體系安排來學習,這樣也不錯。
推薦閱讀:
※有朋友還在用飯否嗎?
※你覺得你能離開互聯網多長時間?
※為什麼做 IT 互聯網的人都睡那麼晚?
※如何利用網上的聊天室賺錢?
※如何看待人民日報微博上線?