Saran pertama saya adalah untuk tidak membatasi diri Anda hanya untuk satu peran saja. Sangat bagus untuk menjadi spesialis dan memiliki pengetahuan yang mendalam dalam keahlian tertentu (PHP, misalnya). Namun, sama pentingnya untuk memiliki pengetahuan luas yang mencakup seluruh domain Anda.
Dalam pengalaman saya sebagian besar tim tidak mencari untuk mempekerjakan seseorang yang memiliki pengetahuan untuk menulis ulang fungsionalitas inti dari PHP, tetapi seseorang yang dapat menangani masalah yang dilemparkan kepada mereka (meskipun memiliki tingkat pengetahuan itu tentu tidak akan merugikan). Atau setidaknya seseorang yang dapat membantu menyelesaikan masalah yang dihadapi tim. Misalnya, bayangkan situasi di mana aplikasi Anda turun dan pelanggan terpengaruh. Anda dapat mengangkat tangan dan berkata "Saya tidak tahu harus berbuat apa ..." atau Anda dapat SSH ke server, mulai memindai log, perhatikan bahwa ruang disk dari sistem file tertentu sudah penuh dan lanjutkan untuk membersihkannya. Ini adalah contoh kecil tapi saya pikir intinya jelas. Dengan pengetahuan dasar itu, sebagai pengembang, Anda bisa menulis skrip yang memantau sistem file tertentu dan membersihkannya setelah mencapai batas tertentu. Anda sekarang menjadi jauh lebih berharga bagi manajer Anda.
Hal lain yang saya pelajari selama karier saya, adalah bahwa segala sesuatu bergerak cepat, dan jika Anda tidak mengikuti Anda akan tertinggal. Semakin banyak yang Anda ketahui tentang seluruh lingkungan Anda (termasuk aspek bisnis), semakin baik Anda. Itu tidak berarti Anda harus menjadi ahli dalam semua hal yang Anda lakukan, tetapi setidaknya memiliki pengetahuan untuk tidak dicap sebagai orang yang tidak mengerti. Semakin akrab Anda, semakin mudah beradaptasi Anda, dan semakin berharga aset Anda bagi perusahaan Anda.
Untuk secara khusus menjawab pertanyaan Anda ...
- Elemen server apa yang harus saya ketahui sebagai pengembang?
Terbiasa dengan seluruh tumpukan aplikasi. Ketahui apa server web, database, mekanisme caching, dll. Yang digunakan. Dan versi mana juga. Miliki cukup keakraban sehingga Anda dapat menciptakan kembali lingkungan di server Anda sendiri. Yang, dalam dan dari dirinya sendiri, sangat penting. Anda harus berusaha untuk lebih atau kurang memiliki lingkungan yang sama dalam pengembangan dan produksi, karena hal itu mengurangi kejutan ( http://12factor.net/dev-prod-parity ).
- Sebagai pengembang, transaksi apa yang Anda miliki dengan server?
Ini sangat tergantung pada tim. Dalam kasus khusus saya, para pengembang memainkan peran besar dalam menentukan lingkungan. Kami adalah yang paling akrab dengan cara kerja aplikasi dan jadi berada di posisi terbaik untuk menentukan teknologi server apa yang ada untuk menjalankannya. Saya membayangkan tidak semua tim memiliki pendekatan langsung seperti itu, tetapi memiliki cukup keakraban untuk dapat melibatkan diri dalam diskusi adalah keuntungan besar. Khususnya, dalam hal kontrol versi, Anda sebagai pengembang sangat dipengaruhi oleh teknologi yang dipilih (Git, Subversion, Mercurial, dll.), Dan karenanya harus berusaha untuk melibatkan diri Anda dalam proses pengambilan keputusan.
Jadi sekarang apa?
Adapun saran saya tentang cara terbaik untuk mempelajari semua ini? Gerakkan kakimu . Jangan khawatir tentang mencoba membaca semua yang Anda bisa tentang subjek, sebagian besar mungkin akan bocor keluar dari otak Anda pada saat Anda selesai. Alih-alih, mulailah mengembangkan sesuatu dari bawah ke atas. Mulailah dengan Vagrant ; itu akan memungkinkan Anda untuk dengan mudah membuat dan mengelola mesin virtual yang dapat Anda gunakan sebagai taman bermain baru Anda. Kemudian, instal server web dan database dan mulai membuat. Jika Anda memiliki ide untuk suatu aplikasi, sempurna, lakukanlah ... jika tidak, temukan tutorial atau coba buat kembali aplikasi yang sudah ada. Intinya adalah untuk menjadi terbiasa dengan seluruh proses. Juga, sebagai pengembang PHP, pastikan untuk memeriksa PHP: The Right Way... itu benar-benar mengandung banyak info bagus. Dan yang paling penting, jangan stres sendiri. Saya membayangkan Anda mengikuti jalur pengembang karena itu adalah sesuatu yang Anda nikmati dan bersemangat tentang ... jangan lupa!