PHP之后我应该学习什么?

时间:2009-07-18 17:05:29

标签: php

我目前在PHP方面经验丰富,并在其中编写了多个应用程序。我知道HTML,CSS,MySQL和Javascript以及PHP。编程的下一步是什么?

(我知道有像Perl,C,Python这样的语言,但不知道它们是否基于Web,基于桌面等)

更新

我的目标是学习足够的编程,我能够专业地编程。让我澄清一下,我15岁,编写了一些复杂的应用程序。我已经处理了面向对象的编程,但几乎没有涉及框架的使用。这是我接下来要做的事情吗?

16 个答案:

答案 0 :(得分:22)

编程中没有“下一步”;与您提到的其他技术一样,PHP是我们用来解决问题的工具。

您可以做的一件有用的事情是看看如何使用其他技术解决类似的问题:您似乎对Web应用程序开发感兴趣,因此存在类似的工具,如Java / JSP,Ruby / Rails,C#/ ASP。 NET,等等。在编辑之后,这似乎是最明智的选择,因为像Java和.NET这样的平台似乎是组织的发展方式,而且在编程中很多工作都使用了技能。

花了一些时间沿着这些路线走下去,您可能会对使用企业功能的大型系统感兴趣。像JSF,Struts或者其他的东西 - 带有EJB的J2EE使用Web技术,但是更加企业化。

我还建议您查看一些开源Web应用程序,看看您提到的工具如何在更多用户的大型应用程序中使用。谁知道,也许你可以加入并帮助一个广泛使用的项目!

答案 1 :(得分:10)

我能告诉你的只是我自己的经历。大约12年前,我在UNIX上学习了PHP / HTML / MySQL / Oracle,并且喜欢它的易用性以及你可以很容易地将网站放在一起的方式(与CGI和C相比)。然而,大约6年前,我不情愿地转向“黑暗面”,不得不为我的工作学习Windows编程。经过一段可怕的学习'经典ASP'和VB的时期后,我进入了新兴的.NET技术,特别是ASP.NET和C#。我真的很高兴我做到了。

学习像C#(或Java)这样的“适当的”强类型OOP语言将有助于提高您的编程技能,并使您成为一个更有纪律的程序员。如果您可以学习.NET框架,您将扩展您的视野以及您的就业能力。您还将学习许多可以让您超越Web的编程技能 - 进入应用程序开发等。您将拓宽您的视野,并在此过程中得到丰富和奖励。

答案 2 :(得分:6)

如果你想继续做网站,我建议你继续使用相同的技术,但要了解更多相关技术。

你还没有真正指定你在PHP / HTML / CSS / JavaScript / MySQL中做过什么样的工作,所以很难指出。

在PHP方面,您可以查看一些体面的框架,例如Zend FrameworkCakePHP

您可能还想了解一些预先存在的CMS系统,例如JoomlaDrupal。需要经历很多事情 - 系统本身,可用的附加组件以及开发自己的插件。除非我正在构建没有任何类似CMS功能的东西(这种情况很少见),否则我倾向于在Joomla之上构建几乎所有东西。

还可以提高您的PHP技能。很容易陷入使用PHP编写快速,简单且不可维护的意大利面条代码的陷阱。您可以选择各种有用的模式和设计技术(上述框架或CMS可以提供​​有关如何执行此操作以及如何不执行此操作的一些提示)。您可以查看类/对象,适当的数据库抽象层(PDO,甚至ADO)等内容,将设计模式应用于PHP项目。标准库包含许多您可能没有使用的很酷的功能,而PEAR库包含更多。

在JavaScript方面,您可能希望首先考虑JQuery之类的框架,然后考虑构建在plugins之上的JQuery UI之类的框架。 。添加一些AJAX到你的保留节目。

答案 3 :(得分:6)

为什么不继续使用PHP?

成为专家,然后成为其中的大师。 PHP是一个非常大的主题,经过几年的开发,无论我做了多少更大或更小的项目,我都无法使用并了解它的所有方面。 PHP编码也有不同的方法,现在框架出现了,它们本身就是一个主题。

而不是最后一件事,可能是因为它的受欢迎程度,PHP是一种活生生的语言并且不断发展。新的东西出现在每日基础,模块,新版本,新应用程序,新框架,用它来解决的新问题。

答案 4 :(得分:5)

作为一个建议,在你开始学习另一种语言之前,花一些时间来研究设计模式会带来大量(语言中立)的成果。

http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

答案 5 :(得分:5)

这是非常主观的,但这里就是。

  • 对于网络开发,了解一种非常公司的语言(例如Java)并没有什么坏处。
  • 学习它的框架,比如Spring MVC,会非常方便。 Spring也有像AOP和IOC这样的概念,值得了解。
  • 为DAO / ORM添加Hibernate会很有用。
  • Ruby on Rails(Ruby是语言,Rails是框架)是另一个Web开发轨道。
  • 在编程生涯中的某个时候,你需要知道一种脚本语言; PythonPerl
  • 了解Maven或Ant,SubversionCVS等工具,并确保您知道如何使用IDE,例如Eclipse
  • 如果你不了解Linux,那么玩起来很有趣并且很有用。试试Ubuntu
  • 从理论层面,了解数据结构和设计模式

Data Structures通常是计算机科学的第二门大学课程,几乎肯定会帮助你编码。如果您构建示例来自学这一点,请使用您还不知道的语言,以便同时获得新语言的知识和新理论的知识。

有在线参考资料来学习这些材料。您应该了解链接列表,树和图形;排序,搜索和O(n)分析。

从招聘经理的角度来看,如果没有数据结构的知识,我就不会采访任何人。

无论如何,Project Euler也可能对您有所帮助;它是一组编程任务,旨在帮助您学习新语言,并帮助您解决新问题。

答案 6 :(得分:4)

这实际上取决于您要完成的任务,例如,您是否可以从头开始制作复杂的电子商务解决方案?

所以你知道如何使用php类和对象吗?

也许你可以学习使用一个允许动画制作的javascript框架。

我的建议是选择一个您有兴趣创建的项目,并且对使用它也很感兴趣,并了解它的用途。

答案 7 :(得分:4)

我在PHP和一点Perl之后用Java学习和开发了很多东西,我很高兴我做到了。我意识到在Java圈子中,有更多的思考和重点在于构建适当的软件架构。 在这里,我学到了很多关于软件质量,(敏捷)开发过程,架构的知识。

这不像动态语言社区无法提供强大的应用程序或缺乏一般的知识 - 我自己来自这个世界,而且我在Java中看到了很多废话。不过,我在那里学到了很多东西。

我同时也做了一些ruby / rails和groovy / grails的小项目,并且使用python / django玩了一下 - 但是现在回到基于Java的方法 - 但你的里程可能会有所不同。

最后,了解多种语言和框架是最好的,能够根据需求和员工选择最佳选择,我建议不仅要学习动态的,以网络为中心的语言和框架,还要更一般的。有了像Perl这样的东西(虽然由于它们的强大功能和OO功能而真的失败了),Python和Ruby你可以在大多数系统上轻松使用通用语言,可以用于shell脚本,Web和独立的GUI开发一样 - 也是非常好的方向!

我的“学习”列表中仍然有简单的C,scheme / lisp和scala以及许多有趣的框架。

答案 8 :(得分:4)

开发能够引人注目的编程语言。可以帮助社区的库或类文件。

你也可以想到一些事情,你可以把事情变得比当前的过程简单得多,如果你感觉很困难的话。

答案 9 :(得分:3)

在我看来,通过查看一些主要学校的一些CS课程,可以找到“编程的下一步”的暗示。如果我是你,我会选择与网络编程完全不同的东西,只是为了扩展我的观点。

如果你15岁,我建议学习C#并试着写一个像俄罗斯方块这样的简单游戏。

答案 10 :(得分:2)

您的思路是正确的:程序员学习不同的语言非常重要。我建议使用Ruby和Ruby on Rails。

Rails的巨大优势在于它可以很容易地以正确的方式执行操作 - 能够将代码传递给其他开发人员而无需花费数周时间来了解您的代码是非常重要的。

许多语言目前的趋势是将它们放在“Rails”上,即实现MVC环境。这是为Javascript,.NET和许多其他人完成的。

答案 11 :(得分:2)

或者,如果您想学习一些编程基础知识,请获取Structure and Interpretation of Computer Programs并真正打击您的想法!

答案 12 :(得分:1)

我建议的只是开始学习软件架构,OOP和设计模式,编程范例。

你甚至可以坚持使用你已经知道的工具,只需升级你的编程方式,学习新的和更好的解决方法,看看其他人和其他主要框架在做什么。

答案 13 :(得分:1)

由于您一直在使用PHP的面向对象功能,我建议接下来使用Java。 PHP的OO功能很大程度上受到Java的启发,例如他们通过实际的构造/关键字“接口”形式化了“面向接口”的编程。

无论如何,将Java作为我最流利的另一种服务器端语言对我来说很有用。您的里程可能会有所不同。

答案 14 :(得分:0)

我认为你应该尝试一个大的改变,扩大你的视野。 Learn Python,获取pygame并为游戏编程,例如俄罗斯方块,但可以是任何东西。我肯定会建议做一些非基于网络的事情,因为它会帮助你从另一个角度看问题。

答案 15 :(得分:0)

首先要知道你没有任何限制,而不是你自己的退出;)

如果您有乐趣编写程序,浏览互联网并查找您认为“我可以改进这个”的应用程序或“漂亮的工具,但我还有其他一些想法”。

然后只需查看编写这些应用程序的语言,并快速研究一下您自己创建此类应用程序的难度(例如在stackoverflow.com上)。

当你找到一个你真正想要设置的项目时,你选择了最适合编写这个应用程序的语言:开始学习这门语言。

寻找特定语言并不总是很重要,只需查找项目并进行设置即可。