為什麼很多人覺得學習PHP很簡單?
來源:互聯網
上載者:User
回複內容:
PHP的部署簡單,概念比較少(官方也傾向於讓各種概念保持模糊,驅使人們用直覺來學習PHP編程)。
為什麼說PHP比Java和C要簡單呢?Java和C有一個類似的特點,就是它提供了很多概念,卻沒有提示你該怎麼用。
比如C的指標。你可以用指標實現動態數組,可以用它記錄回呼函數,或者指向一個結構體。好了,能做這些,然後呢?為什麼要做這些?初學者可能會很困惑,他不明白這些東西和他想實現的試算表管理軟體有什麼關係。
再比如Java。有類,繼承有介面,然後呢。組合代碼,代碼重用,這些跟我想做的試算表軟體有什麼關係嗎?
但是PHP的思路完全不一樣,它給你展示PHP是怎麼用的,但是卻不解釋這些概念。我覺得這給新手以很好的指引,因為編程就是這麼一回事,它終究是用來解決問題的,拘泥於概念對學習的協助不大。因為PHP一般都是在Linux系統運行,沒有線程的概念,基本上不需要攻城師自己管理記憶體。而且PHP提供了很多實用的內建函數,特別是處理字串和數組相關的,為Web開發提供了很多方便,讓代碼更好寫了。
此外,雖然PHP也可以用來開發諸如web伺服器這種用戶端軟體,但是主要還是被用來做Web開發,應用環境比較單純(較少涉及底層操作,這也和PHP的設計初衷有關),所以可能相對C這種底層語言更容易一些吧。
update:
PHP一般都是在Linux系統運行,沒有線程的概念=》這句我說錯了,PHP可以通過擴充操作進程。
PHP也可以用來開發諸如web伺服器這種用戶端軟體=》我是想說PHP除了web指令碼以外也可以做別的,可以通過擴充實現底層操作,比如sockets模組什麼的。
這樣改過以後準確了嗎?我寫錯的地方歡迎指出來,我自己也願意修改。匿名關閉評論這樣很有意思嗎?第一次被邀,就寫點什麼,也作為對自己的一個回顧,表達能力有限,請多見諒.
我粗淺的認為,人在接觸跟自己思維方式相匹配的事物的時候,會產生一種莫名的親切感,而PHP的一些feature決定了它和非常多初學者的思維方式不衝突(比如:弱類型,既能面向過程又能物件導向, etc..).說白了,就是學習門檻不高.這樣,初學者會很容易在PHP的學習過程中的到一定的成就感,有了初期的成就感之後,他們就會願意去學這個東西.有了這個意願了,就不會輕易放棄這個東西了(我這裡說的是初學者).
就我瞭解的情況來看,PHP目前有各種各樣的開源項目,開源架構(這都歸功於程式員們天生的喜歡自己造輪子的強迫症.),這給初學者和剛入門的同學提供了非常豐富的學習資源.當然,這些各種各樣的項目的品質確實是參差不齊,但是有誰在初學程式的時候,不是靠看別人的代碼過來的呢?隨著初學者掌握的知識和經驗越來越豐富,自然而然的就會對之前看過的那些代碼產生自己的見解.
上面有人提到了PHP的部署容易,這個feature也確實給初學者帶來了很大的方便.能讓初學者真正把精力放在學習編程這件事情上.也許有人會說,初學者部署的時候也會遇到很多問題.對於這一點,我不否認,因為我本人也幫很多初學者解答過初期搭建apache+php+mysql環境的問題(當時的xampp之類的套件還沒有現在這麼方便易用).即便是初學者在搭建環境上多花了一點時間,在真正開始學習寫代碼的時候,就不用再管編譯或者deploy之類的事情了.
當然,學習PHP簡單,並不就是說PHP需要學習的東西不多.由於PHP在web開發中的普遍使用,web開發中和後端語言無關的內容都得瞭解到,比如HTTP協議啊,HTML啊, MYSQL啊等等...雖然在大牛眼裡這些東西都是毛毛雨,但是在初學者眼裡,這些東西都還是挺複雜的東東.但是這些東西,在初學PHP的時候完全不用關心.當然學習其他語言的初期也不用關心這些東西:)
隨著後來的學習和實踐等等,遇到的問題越來越多,要學習的東西還是挺多的.比如像 @Laruence 鳥哥那樣,研究PHP的源碼,分析各種詭異BUG的真正原因. 這又要看得懂C了.並且PHP源碼裡面的各種宏擴充,要看懂也並不是只看懂C那麼簡單.
好像有些偏題了....就說這麼多吧....
我其實更想看看 鳥哥@Laruence 的觀點因為PHP一般都是
在Linux系統運行,沒有線程的概念,基本上不需要攻城師自己管理記憶體。而且PHP提供了很多實用的內建函數,特別是處理字串
和數組相關的,為Web開發提供了很多方便,讓代碼更好寫了。
此外,雖然PHP也可以用來開發
諸如web伺服器這種用戶端軟體,但是主要還是被用來做Web開發,應用環境比較單純(較少涉及底層操作,這也和PHP的設計初衷有關),所以可能相對C這種底層語言更容易一些吧。
真牛逼。
大概人們覺得學習 PHP 很簡單因為看到的 PHP 工程師都是這個水平的?學習皮毛都簡單,
覺得它簡單,只是你拿它做的是簡單的東西,
c++,java因為它們是完整的體系,學習曲線陡,學起來複雜,
但是PHP是指令碼,或者說就是個API,用起來方便些。
很多人寫出來的PHP程式,功能是實現了,代碼卻慘不忍睹。
真正的PHP是一套體系,這個體系也包含了c/c++或java.
沒見過不學習低級語言就能學好指令碼語言的。