Il mio primo consiglio è di non limitarti esclusivamente a nessun ruolo. È bello essere uno specialista e avere una profonda conoscenza di un particolare set di abilità (PHP, ad esempio). Tuttavia, è altrettanto importante avere una vasta conoscenza che si estende su tutto il resto del dominio.
Nella mia esperienza, la maggior parte dei team non sta cercando di assumere qualcuno che abbia le conoscenze per riscrivere le funzionalità di base di PHP, ma piuttosto qualcuno che sia in grado di gestire qualsiasi problema che viene loro lanciato (sebbene avere quel livello di conoscenza certamente non farebbe male). O almeno qualcuno che possa aiutare a risolvere eventuali problemi che la squadra incontra. Ad esempio, immagina una situazione in cui l'applicazione non funziona e i clienti sono interessati. Puoi alzare le mani e dire "Non ho idea di cosa fare ..." oppure puoi SSH nel server, avviare la scansione dei registri, notare che lo spazio su disco di un particolare filesystem è pieno e procedere alla pulizia. Questo è un piccolo esempio ma penso che il punto sia chiaro. Con questa conoscenza di base, come sviluppatore, potresti scrivere uno script che monitora quel particolare filesystem e lo ripulisce quando raggiunge una certa soglia. Ora sei diventato molto più prezioso per il tuo manager.
Un'altra cosa che ho imparato durante la mia carriera, è che le cose si muovono velocemente e se non stai al passo rimarrai indietro. Più conosci il tuo intero ambiente (compresi gli aspetti aziendali), meglio sei. Questo non vuol dire che devi essere un esperto in tutto ciò che fai, ma almeno avere le conoscenze per non essere etichettato come privo di conoscenza. Più sei familiare, più sei adattabile e più preziosa è una risorsa per la tua azienda.
Per rispondere in modo specifico alle tue domande ...
- Quali elementi del server dovrei sapere come sviluppatore?
Acquisire familiarità con l'intero stack dell'applicazione. Conoscere quali server Web, database, meccanismi di memorizzazione nella cache, ecc. Vengono utilizzati. E anche quali versioni. Avere abbastanza familiarità da poter ricreare l'ambiente sul proprio server. Che, di per sé, è di vitale importanza. Dovresti cercare di avere più o meno gli stessi ambienti nello sviluppo e nella produzione, in quanto riduce le sorprese ( http://12factor.net/dev-prod-parity ).
- Come sviluppatore che rapporti hai con il server?
Questo dipende davvero dalla squadra. Nel mio caso particolare, gli sviluppatori svolgono un ruolo enorme nella messa in scena degli ambienti. Conosciamo meglio il funzionamento interno dell'applicazione e quindi siamo nella posizione migliore per determinare quali tecnologie server sono in atto per eseguirlo. Immagino che non tutte le squadre abbiano un approccio così pratico, ma avere abbastanza familiarità per essere in grado di coinvolgerti nelle discussioni è un grande vantaggio. In particolare, per quanto riguarda il controllo della versione, tu come sviluppatore sei fortemente influenzato dalla tecnologia scelta (Git, Subversion, Mercurial, ecc.), E quindi dovresti sforzarti di coinvolgerti nel processo decisionale.
E ora?
Per quanto riguarda il mio suggerimento su come affrontare al meglio l'apprendimento di tutto ciò? Muovi i tuoi piedi . Non preoccuparti di provare a leggere tutto ciò che puoi sull'argomento, la maggior parte probabilmente uscirà dal tuo cervello quando avrai finito. Inizia invece a sviluppare qualcosa da zero. Inizia con Vagrant ; ti consentirà di creare e gestire facilmente una macchina virtuale che puoi utilizzare come nuovo parco giochi. Quindi, installare un server Web e un database e iniziare a creare. Se hai un'idea per un'app, perfetta, provaci ... in caso contrario, trova un tutorial o prova a ricreare un'app esistente. Il punto è solo familiarizzare con l'intero processo. Inoltre, come sviluppatore di PHP, assicurati di controllare PHP: The Right Way... contiene davvero molte informazioni eccellenti. E, soprattutto, non stressarti. Immagino che tu abbia seguito il percorso di uno sviluppatore perché è qualcosa che ti piace e di cui sei appassionato ... non perdere di vista questo!