我目前在PHP方面非常有經驗,並且已經寫了多個應用程序。我知道HTML,CSS,MySQL和Javascript以及PHP。編程的下一步是什麼?PHP之後我該學什麼?
(我知道有如Perl,C,Python這樣的語言,但並不確切地知道他們是基於Web的,基於桌面等)
更新
我的目標是:學習足夠的編程,我可以專業地編程。讓我澄清我15歲,並編寫了一些複雜的應用程序。我已經處理了面向對象的編程,但幾乎沒有涉及框架的工作。那我以後應該去做什麼?
我目前在PHP方面非常有經驗,並且已經寫了多個應用程序。我知道HTML,CSS,MySQL和Javascript以及PHP。編程的下一步是什麼?PHP之後我該學什麼?
(我知道有如Perl,C,Python這樣的語言,但並不確切地知道他們是基於Web的,基於桌面等)
更新
我的目標是:學習足夠的編程,我可以專業地編程。讓我澄清我15歲,並編寫了一些複雜的應用程序。我已經處理了面向對象的編程,但幾乎沒有涉及框架的工作。那我以後應該去做什麼?
編程中沒有「下一步」和您提到的其他技術一樣,PHP也是我們用來解決問題的工具。
你可以做的一件有用的事情是看看如何使用其他技術解決類似的問題:你似乎對Web應用程序開發感興趣,所以類似的工具存在,如Java/JSP,Ruby/Rails,C#/ ASP .NET等等。編輯完成後,這似乎是最明智的選擇,因爲像Java和.NET這樣的平臺似乎是組織的發展方向,以及在編程中大量工作中使用技能的方式。
花費了一段時間後,您可能會對使用企業功能的大型系統感興趣。像JSF,Struts或者其他的東西 - 包含EJB的J2EE使用Web技術,但是以更加企業的方式。
我還建議你看看一些開放源代碼的Web應用程序,看看你提到的那些工具如何用於更多用戶的大型應用程序。誰知道,也許你可以加入並幫助一個廣泛使用的項目!
這實際上取決於您要完成什麼,例如,您能否從頭開始製作複雜的電子商務解決方案?
所以你知道如何給你的PHP類和對象?
也許你可以學習使用一個允許花哨動畫的javascript框架。
我的建議是選擇一個你有興趣創建的項目,並且也希望使用它,並且看看它在哪裏。
在我看來,「編程的下一步」暗示可以通過查看一些主要學校的CS課程課程來找到。如果我是你,我會選擇與網絡編程完全不同的東西,以擴大我的觀點。
如果你是15歲,我建議學習C#並嘗試編寫一個簡單的遊戲,比如俄羅斯方塊。
如果你想繼續做網站,我建議你使用相同的技術,但要多瞭解它們。
你還沒有真正指定你在PHP/HTML/CSS/JavaScript/MySQL中做過什麼樣的工作,所以指點很難。
在PHP方面,有許多體面的框架可供您查看,例如Zend Framework或CakePHP。
您可能還想了解一些預先存在的CMS系統,如Joomla或Drupal。有很多事情要做 - 系統本身,可用的附加組件和開發自己的插件。除非我正在構建一些沒有任何類CMS功能的東西(這很少見),我傾向於在Joomla之上構建幾乎所有的東西。
還有提高你的PHP技能。陷入用PHP編寫快速,簡單,不可維護的意大利麪代碼的陷阱相當容易。有各種有用的模式和設計技巧可供您選擇(上述框架或CMS可以提供關於如何操作的一些提示,以及如何去做)。您可以查看類/對象,適當的數據庫抽象層(PDO,甚至ADO)等東西,將設計模式應用於PHP項目。標準庫包含很多很酷的功能,你可能還沒有用過,而PEAR庫包含更多。
在JavaScript方面,您可能希望查看框架,如JQuery開始,然後一些plugins已建立在它的頂部,如JQuery UI。爲你的曲目添加一些AJAX。
在使用PHP和一些Perl後,我學習並開發了很多Java,我很高興我這麼做了。我意識到在Java環境中,構建正確的軟件體系結構需要更多的思考和重點。 在這裏,我學到了很多關於軟件質量,(敏捷)開發流程和架構的知識。
這不像動態語言社區不能提供強大的應用程序或缺乏一般的知識 - 我自己來自這個世界,而且我在Java中看到了很多廢話代碼。不過,我在那裏學到了很多東西。
我也在ruby/rails和groovy/grails的同時做了一些小項目,並且用python/django玩了一下 - 但現在回到基於Java的方法 - 但你的里程可能會有所不同。
最後,最好了解多種語言和框架,以便能夠根據需求和人員選擇最佳選項,而且我建議不僅要學習動態的,以Web爲中心的語言和框架,而且還要學習也是更一般的。有了像Perl這樣的東西(儘管由於它們的強大功能和OO特性,它確實失去了基礎),但Python和Ruby具有在大多數系統上易於使用的通用語言,可用於shell腳本,Web和獨立的GUI開發一樣 - 也是非常好的方向!
在我的「學習」列表中,我仍然有簡單的C,scheme/lisp和scala以及許多有趣的框架。
作爲一個建議,在開始學習另一種語言之前,花一些時間研究設計模式將會產生大量(語言無關)成果。
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
我可以告訴你的是我自己的經驗。我在12年前學習了UNIX上的PHP/HTML/MySQL/Oracle,並且非常喜歡它的易用性和您可以非常輕鬆地將網站放在一起的方式(與CGI和C相比)。然而,大約6年前,我不情願地轉移到「黑暗的一面」,不得不爲我的工作學習Windows編程。在經歷了一段糟糕的'經典ASP'和VB學習之後,我學習了新興的.NET技術,特別是ASP.NET和C#。而我真的很高興我做到了。
學習了「適當」的強類型OOP如C#(或Java)語言將有助於提高你的編程技巧,讓你更嚴格的程序員。如果你可以學習.NET框架,你將擴展你的視野以及你的就業能力。您還將學習許多編程技巧,這些技能可以將您從網絡轉移到應用程序開發等領域。您將拓寬自己的前景並在此過程中得到豐富和獎勵。
我建議的唯一事情就是開始學習軟件架構,OOP和設計模式,編程範例。
你甚至可以堅持你已經知道的工具,只需升級你如何編程,學習解決事情的新的和更好的方式,看到別人和其他主要框架正在做的。
開發一些能夠引起人們注意的編程語言。可以幫助社區的圖書館或類文件。
你也能想到的東西,你可以做的事情相比,目前的過程,如果你覺得是艱苦跋涉簡單得多。
爲什麼不繼續使用PHP?
成爲專家,然後成爲專家。 PHP是一個相當大的主題,並且在幾年的開發過程中,我無法使用並知道它的所有方面,無論我做了多少更大或更小的項目。在PHP編碼中也有不同的方法,現在框架已經出現,並且它們本身就是一個話題。
而不是最後一件事,可能是因爲它的流行,PHP是一種活躍的語言,並且會不斷髮展。新的東西出現在每日基地,模塊,新版本,新應用程序,新框架以及用它來解決的新問題上。
你的思路是正確的:程序員學習不同語言是很重要的。我會建議Ruby和Ruby on Rails。
Rails的最大優點是它可以很容易做的事情以正確的方式 - 能對你的代碼傳遞給另一個開發商沒有他花星期的時間來理解你的代碼是相當了不起的。
在有很多的語言目前的趨勢是把他們「on Rails的」,即實現MVC環境。這是爲Javascript,.NET和其他許多人完成的。
由於您一直在使用PHP的面向對象的功能,所以我會建議下一個Java。 PHP的OO功能很大程度上受Java的啓發,例如他們通過一個實際的結構/關鍵字「接口」來形式化「面向接口」編程。
無論如何,將Java作爲我最流暢的另一種服務器端語言適用於我。你的旅費可能會改變。
我認爲你應該嘗試一個大的改變,擴大你的視野。 Learn Python,獲得pygame並編程一個遊戲,例如俄羅斯方塊,但可以是任何東西。我肯定會推薦做一些非基於網絡的事情,因爲它會幫助你從另一個角度看待事情。
另外,如果您想了解一些編程基礎,讓Structure and Interpretation of Computer Programs真的吹你的心!
首先知道,你根本就沒有自己的exitus任何限制;)
如果你玩得開心寫程序,瀏覽互聯網,並查找您認爲的「人我可以改善這種」或'應用漂亮的工具,但我有一些其他的想法'。
然後,只需照顧這些應用程序的編寫語言,並快速研究自己創建此類應用程序的難度(例如,在stackoverflow.com上)。
當你找到一個你真正想要設置的項目,並且選擇了編寫這個應用程序最有意義的語言時:開始學習這種語言。
尋找特定語言並非總是很重要,只需尋找一個項目並進行設置即可。
這是非常主觀的,但在這裏。
Data Structures通常是第二個計算機科學大學課程,幾乎肯定會幫助你的編碼。如果你建立例子來教你自己,用一種你還不知道的語言,這樣你就可以同時獲得新語言的知識和新理論的知識。
有學習材料的在線參考。你應該學習鏈表,樹和圖表;排序,搜索和O(n)分析。
從招聘經理的角度來看,如果沒有數據結構的知識,我不會採訪任何人。
無論如何,Project Euler也可能幫助你;這是一組編程任務,旨在幫助您學習新的語言,並有幫助您解決新問題的任務。
這是一個非常主觀的問題。你的目標是什麼 - 在我們知道之前,我們無法說出任何話。 – 2009-07-18 17:07:54
你稱之爲「在PHP中經驗豐富」?你有沒有使用過框架,面向對象的程序,...? – 2009-07-18 17:08:37
不要學習新的語言,而應該考慮去開發一些新的東西,而這些東西在你當前的語言中是缺乏的。人們總是轉向更新的,當他們發現當前的更好,但幾乎沒有人想到在這裏改變它。 Rails frameowork的一個更多的例子,它的設計模式導致市場繁榮... – Kevin 2009-07-19 00:50:43