Mon premier conseil est de ne pas vous limiter exclusivement à un seul rôle. C'est formidable d'être un spécialiste et d'avoir une connaissance approfondie d'un ensemble de compétences particulier (PHP, par exemple). Cependant, il est tout aussi important d'avoir une vaste connaissance qui couvre le reste de votre domaine.
D'après mon expérience, la plupart des équipes ne cherchent pas à embaucher quelqu'un qui a les connaissances pour réécrire les fonctionnalités de base de PHP, mais plutôt quelqu'un qui peut gérer tout problème qui leur est posé (bien que ce niveau de connaissance ne nuise certainement pas). Ou au moins quelqu'un qui peut aider à résoudre tous les problèmes rencontrés par l'équipe. Par exemple, imaginez une situation dans laquelle votre application tombe en panne et les clients sont affectés. Vous pouvez soit lever les mains et dire "Je n'ai aucune idée de quoi faire ..." ou vous pouvez SSH sur le serveur, commencer à analyser les journaux, remarquer que l'espace disque d'un système de fichiers particulier est plein et procéder au nettoyage. Ceci est un exemple mineur mais je pense que le point est clair. Avec ces connaissances de base, en tant que développeur, vous pouvez écrire un script qui surveille ce système de fichiers particulier et le nettoie une fois qu'il atteint un certain seuil. Vous êtes maintenant devenu beaucoup plus précieux pour votre manager.
Une autre chose que j'ai apprise au cours de ma carrière, c'est que les choses avancent vite et si vous ne suivez pas, vous allez être laissé pour compte. Plus vous en savez sur tout votre environnement (y compris les aspects commerciaux), mieux vous vous portez. Cela ne veut pas dire que vous devez être un expert dans tout ce que vous faites, mais au moins avoir les connaissances nécessaires pour ne pas être étiqueté comme étant désemparé. Plus vous êtes familier, plus vous êtes adaptable et plus un atout est précieux pour votre entreprise.
Pour répondre spécifiquement à vos questions ...
- Quels éléments de serveur dois-je connaître en tant que développeur?
Familiarisez-vous avec l'ensemble de la pile d'applications. Sachez quel serveur Web, base de données, mécanismes de mise en cache, etc. qui sont utilisés. Et quelles versions aussi. Ayez suffisamment de familiarité pour pouvoir recréer l'environnement sur votre propre serveur. Ce qui, en soi, est d'une importance vitale. Vous devez vous efforcer d'avoir plus ou moins les mêmes environnements de développement et de production, car cela réduit les surprises ( http://12factor.net/dev-prod-parity ).
- En tant que développeur, quelles relations entretenez-vous avec le serveur?
Cela dépend vraiment de l'équipe. Dans mon cas particulier, les développeurs jouent un rôle énorme dans la mise en scène des environnements. Nous connaissons le fonctionnement interne de l'application et sommes donc les mieux placés pour déterminer quelles technologies de serveur sont en place pour l'exécuter. J'imagine que toutes les équipes n'ont pas une telle approche pratique, mais avoir suffisamment de familiarité pour pouvoir s'impliquer dans les discussions est un grand avantage. Plus précisément, en ce qui concerne le contrôle de version, vous, en tant que développeur, êtes très affecté par la technologie choisie (Git, Subversion, Mercurial, etc.) et devez donc vous efforcer de vous impliquer dans le processus de décision.
Et maintenant?
Quant à ma suggestion sur la meilleure façon d'aborder l'apprentissage de tout cela? Déplacez vos pieds . Ne vous inquiétez pas d'essayer de lire tout ce que vous pouvez sur le sujet, la plupart s'écouleront probablement de votre cerveau au moment où vous aurez terminé. Au lieu de cela, commencez à développer quelque chose à partir de zéro. Commencez avec Vagrant ; il vous permettra de créer et de gérer facilement une machine virtuelle que vous pourrez utiliser comme nouveau terrain de jeu. Ensuite, installez un serveur Web et une base de données et commencez à créer. Si vous avez une idée d'application, parfait, allez-y ... sinon, trouvez un tutoriel ou essayez de recréer une application existante. Il s'agit simplement de se familiariser avec l'ensemble du processus. De plus, en tant que développeur PHP, assurez-vous de consulter PHP: The Right Way... il contient vraiment beaucoup d'excellentes informations. Et surtout, ne vous stressez pas. J'imagine que vous avez suivi le chemin d'un développeur parce que c'est quelque chose que vous aimez et que vous êtes passionné ... ne perdez pas de vue cela!