Mein erster Rat ist, sich nicht ausschließlich auf eine Rolle zu beschränken. Es ist großartig, ein Spezialist zu sein und ein tiefes Wissen über bestimmte Fähigkeiten zu besitzen (zum Beispiel PHP). Genauso wichtig ist es jedoch, ein breites Wissen zu haben, das sich über den Rest Ihrer Domain erstreckt.
Nach meiner Erfahrung suchen die meisten Teams nicht jemanden, der über das Wissen verfügt, die Kernfunktionalität von PHP neu zu schreiben, sondern jemanden, der mit jedem Problem fertig wird, das auf sie zukommt (obwohl dieses Wissen sicherlich nicht schaden würde). Oder zumindest jemand, der helfen kann, Probleme zu lösen, auf die das Team stößt. Stellen Sie sich zum Beispiel eine Situation vor, in der Ihre Anwendung ausfällt und Kunden betroffen sind. Sie können entweder Ihre Hände hochlegen und sagen "Ich habe keine Ahnung, was zu tun ist ..." oder Sie können SSH auf dem Server ausführen, Protokolle scannen, feststellen, dass der Speicherplatz eines bestimmten Dateisystems voll ist, und fortfahren, um es zu bereinigen. Dies ist ein kleines Beispiel, aber ich denke, der Punkt ist klar. Mit diesem Grundwissen, als Entwickler, Sie könnten ein Skript schreiben, das dieses bestimmte Dateisystem überwacht und es bereinigt, sobald es einen bestimmten Schwellenwert erreicht. Sie sind jetzt für Ihren Vorgesetzten um so wertvoller geworden.
Eine andere Sache, die ich in meiner Karriere gelernt habe, ist, dass sich die Dinge schnell entwickeln und wenn Sie nicht mithalten, werden Sie zurückgelassen. Je mehr Sie über Ihre gesamte Umgebung (einschließlich der geschäftlichen Aspekte) wissen, desto besser sind Sie. Das heißt nicht, dass Sie in allem, was Sie tun, ein Experte sein müssen, aber zumindest das Wissen haben müssen, um nicht als ahnungslos eingestuft zu werden. Je vertrauter Sie sind, desto anpassungsfähiger sind Sie und desto wertvoller sind Sie für Ihr Unternehmen.
Um Ihre Fragen gezielt zu beantworten ...
- Welche Serverelemente sollte ich als Entwickler kennen?
Machen Sie sich mit dem gesamten Anwendungsstapel vertraut. Wissen, welche Webserver, Datenbanken, Caching-Mechanismen usw. verwendet werden. Und welche Versionen auch. Machen Sie sich so vertraut, dass Sie die Umgebung auf Ihrem eigenen Server neu erstellen können. Was an und für sich lebenswichtig ist. Sie sollten mehr oder weniger die gleichen Umgebungen in Entwicklung und Produktion anstreben, um Überraschungen zu vermeiden ( http://12factor.net/dev-prod-parity ).
- Was haben Sie als Entwickler mit dem Server zu tun?
Das hängt wirklich vom Team ab. In meinem speziellen Fall spielen die Entwickler eine große Rolle bei der Inszenierung der Umgebungen. Wir sind mit der Funktionsweise der Anwendung am besten vertraut und können daher am besten ermitteln, welche Servertechnologien für die Ausführung der Anwendung vorhanden sind. Ich stelle mir vor, dass nicht alle Teams eine solche praktische Herangehensweise haben. Es ist jedoch ein großer Vorteil, über ausreichende Kenntnisse zu verfügen, um sich in die Diskussionen einbringen zu können. Insbesondere in Bezug auf die Versionskontrolle sind Sie als Entwickler stark von der Auswahl der Technologie (Git, Subversion, Mercurial usw.) betroffen und sollten sich daher bemühen, sich in den Entscheidungsprozess einzubeziehen.
Also, was jetzt?
Was meinen Vorschlag betrifft, wie ich am besten vorgehen kann, um all dies zu lernen? Bewegen Sie Ihre Füße . Machen Sie sich keine Sorgen, wenn Sie versuchen, alles zu lesen, was Sie zu diesem Thema können. Das meiste davon wird wahrscheinlich erst dann aus Ihrem Gehirn austreten, wenn Sie fertig sind. Beginnen Sie stattdessen, etwas von Grund auf neu zu entwickeln. Beginnen Sie mit Vagrant ; Auf diese Weise können Sie auf einfache Weise eine virtuelle Maschine erstellen und verwalten, die Sie als neuen Spielplatz verwenden können. Installieren Sie dann einen Webserver und eine Datenbank und beginnen Sie mit der Erstellung. Wenn Sie eine Idee für eine App haben, machen Sie es perfekt. Wenn nicht, finden Sie ein Tutorial oder versuchen Sie, eine vorhandene App neu zu erstellen. Es geht nur darum, sich mit dem gesamten Prozess vertraut zu machen. Als PHP-Entwickler sollten Sie auch unbedingt PHP: The Right Way ausprobieren... es enthält wirklich viele exzellente Infos. Und vor allem: Stress dich nicht aus. Ich stelle mir vor, Sie sind dem Weg eines Entwicklers gefolgt, weil es etwas ist, das Ihnen Spaß macht und an dem Sie leidenschaftlich sind ... verlieren Sie das nicht aus den Augen!