我的第一点建议是不要将自己局限于任何一个角色。能成为专家,并且对特定技能(例如PHP)有深入的了解真是太好了。但是,拥有跨域其余部分的广泛知识也同样重要。
以我的经验,大多数团队并不想聘请具有重写PHP核心功能知识的人,而是可以解决所遇到的任何问题的人(尽管拥有一定水平的知识当然不会伤害到他们)。或者至少有人可以帮助解决团队遇到的任何问题。例如,设想一下您的应用程序出现故障而客户受到影响的情况。您可以举手说“我不知道该怎么做...”,也可以SSH进入服务器,开始扫描日志,注意特定文件系统的磁盘空间已满,然后继续进行清理。这是一个较小的例子,但我认为重点很明确。有了这些基础知识,作为开发人员,您可以编写一个脚本来监视该特定文件系统,并在达到特定阈值时将其清除。现在,您已变得对您的经理更有价值。
我在职业生涯中学到的另一件事是,事情发展很快,如果不跟上,就会被抛在后面。您对整个环境(包括业务方面)的了解越多,您的情况就越好。这并不是说您需要做任何事情的专家,但至少要知道不要被标记为无知。您越熟悉,适应性就越高,资产对公司的价值就越高。
为了专门回答您的问题...
熟悉整个应用程序堆栈。了解正在使用什么Web服务器,数据库,缓存机制等。还有哪个版本。足够熟悉,您可以在自己的服务器上重新创建环境。就其本身而言,这至关重要。您应该努力在开发和生产中或多或少具有相同的环境,因为这样可以减少意外(http://12factor.net/dev-prod-parity)。
这真的取决于团队。在我的特殊情况下,开发人员在分阶段环境中发挥着巨大作用。我们最熟悉应用程序的内部工作原理,因此最适合确定运行该应用程序的服务器技术。我想并不是所有的团队都有这样的实践方法,但是拥有足够的熟悉度并能够参与讨论是一个很大的优势。特别是在版本控制方面,您作为开发人员会受到选择哪种技术(Git,Subversion,Mercurial等)的强烈影响,因此应努力使自己参与决策过程。
那么现在怎么办?
至于我关于如何最好地学习所有这些的建议?移动你的脚。不必担心尝试阅读有关该主题的所有内容,大多数内容可能会在您完成课程时从大脑中泄漏出来。而是从头开始开发一些东西。从流浪汉开始; 它可以让您轻松创建和管理可用作新游乐场的虚拟机。然后,安装Web服务器和数据库并开始创建。如果您有一个理想的应用程序构想,那就继续吧...如果没有,请查找教程或尝试重新创建现有的应用程序。关键是要熟悉整个过程。另外,作为PHP开发人员,请务必查看PHP:正确的方法...它确实包含许多出色的信息。最重要的是,不要压力太大。我想您会沿着开发人员的道路前进,因为这是您喜欢并热衷的事情……请不要忽视这一点!