Saya tahu itu mungkin terdengar agak kabur, jadi saya akan mencoba dan menjelaskan sedikit lebih jauh ...
Setelah menjadi wiraswasta pengembang selama bertahun-tahun saya sekarang mencari peran pengembang web komersial. Satu-satunya pengalaman saya dengan server dan hosting adalah mengunggah melalui FTP dan bermain-main dengan CPanel / WHM sedikit. Peran yang akan saya tuju adalah pengembangan web PHP, MySQL, HTML, peran tipe CSS, tetapi dalam wawancara baru-baru ini saya ditanyai tentang pengaturan berbagai hal di server, yang saya tidak tahu apa yang dikatakan ... yang tidak ideal!
Tanpa mengetahui lebih dari yang saya lakukan, sulit untuk menjelaskan apa sebenarnya yang ingin saya pelajari, tetapi pada dasarnya hanya elemen server yang harus saya ketahui sebagai pengembang web? Jika Anda seorang pengembang web, apakah Anda berurusan dengan server selain mengunggah file, dan jika demikian, apa? Apakah hal-hal seperti Subversion (SVN) dan sistem kontrol versi sering dibuat oleh tim pengembangan web, mungkinkah itu yang mereka bicarakan?
sumber
not a very valuable web developer
adalah apa yang saya coba atasi, jadi saya senang mempelajarinya dengan benar, saya hanya tidak tahu bagaimana cara terbaik untuk belajar ini, dan bidang mana yang menjadi fokus pertama.Jawaban:
Ini adalah serangkaian pertanyaan besar, tetapi saya curiga satu hal yang perlu diatasi oleh banyak orang, terutama ketika mereka mulai maju dalam karier yang dimulai dengan fokus front-end yang berat.
Anda menyebutkan bahwa Anda akan pergi untuk peran yang mencakup pengembangan PHP dan MySQL. Ini adalah hal-hal yang perlu dijalankan di server. Mampu membuat penilaian teknis yang baik sebagai pengembang mengharuskan Anda memperoleh pemahaman tentang bagaimana hal-hal ini bekerja di server dan bagaimana mereka berinteraksi dengan web front-end. Jadi, Anda jelas perlu mengembangkan pemahaman tentang server.
Daripada mencoba mencari tahu di depan tubuh yang tepat yang mungkin Anda butuhkan tentang server, saya akan merekomendasikan menyelam dan membangun sesuatu termasuk menginstal semua perangkat lunak sisi server sendiri. Cara yang bagus untuk membuat kaki Anda basah adalah dengan menginstal Linux di komputer Anda. Anda dapat menggunakan sesuatu seperti VirtualBox untuk menjalankannya di samping OS Anda saat ini. Instal MySQL, instal, dan atur server untuk PHP dan coba semuanya bekerja sama. Yang hebat adalah, hari-hari ini, laptop yang cukup lengkap dapat menjalankan semua ini dan menjadi "server".Ini bisa jadi sulit di awal, terutama jika Anda tidak memiliki pengalaman menggunakan Linux dan baris perintah. Sebagai seorang pengembang, Anda setidaknya harus cukup tahu untuk dapat melewati latihan ini dan itu akan memberi Anda lompatan awal dalam mencari tahu bagaimana memajukan pengetahuan Anda.
Ada tiga area di mana Anda mungkin perlu meningkatkan kecepatan:
Jika Anda ingin menggunakan Ubuntu, Anda bisa mengikuti instruksi dasar di sini untuk mengaktifkan dan menjalankan diri Anda. Catatan, Anda harus melakukan sedikit peningkatan pada dasar-dasar Linux sebelum mulai menginstal dan bermain dengan komponen server web / database.
Dalam hal bagaimana pengembang perlu berinteraksi dengan server, di luar mengunggah file, saya pikir ini sangat bervariasi dari organisasi ke organisasi.
Intinya adalah bahwa tidak ada jawaban tunggal untuk bagaimana tepatnya Anda perlu menyentuh server, tetapi selama karir Anda, itu pasti akan melampaui hanya mengunggah file melalui sesuatu seperti FTP. Memulai dengan mempelajari dasar-dasarnya sekarang akan membantu.
sumber
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 ...
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 ).
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!
sumber
Berfokus pada Apa yang perlu Anda ketahui tentang server untuk menjadi pengembang web? ...
Sebenarnya sedikit mengejutkan. Bidang pengetahuan utama Anda harus pemrograman, html, php, dll.
Yang perlu Anda ketahui adalah bagaimana menjalankan sesuatu secara lokal dan ketika Anda melakukan ini, Anda menggunakan kotak Anda sebagai 'server'. Jadi ketika menjalankan secara lokal Anda menggunakan browser web untuk melihat halaman, sama seperti situs internet mana pun ... kecuali Anda akan
http://localhost
atauhttp://127.0.0.1
Sedangkan untuk mengkonfigurasi cgi, http, dll. Saya tidak berharap Anda perlu tahu itu. Anda selalu dapat bekerja melalui buku umum tentang pengaturan server web untuk OS tempat Anda bekerja dan itu akan menjadi cakupan yang cukup untuk mengetahui ketentuan umum.
Untuk gambaran yang lebih besar, saya sarankan masuk ke Linux dan belajar cara mengatur dan mengkonfigurasi mesin seperti server web. Tetapi hanya jika Anda benar-benar tertarik pada barang-barang itu. Bukan hanya untuk mengesankan dalam wawancara.
Akhirnya saya akan merekomendasikan Anda mempertimbangkan membuat catatan selama wawancara tentang bidang-bidang yang Anda tidak cukup tahu. Ini akan membantu jika pertanyaan Anda lebih spesifik tentang istilah mana, dll. Anda tidak tahu.
sumber
Anda perlu tahu hal-hal di bawah ini untuk menyelesaikan siklus pengembangan web.
1) IDE (Netbeans dan Eclipse dll.)
2) Bahasa pemrograman apa pun untuk pengkodean. (PHP, java, dll.)
3) Teknologi depan untuk mendesain halaman (HTML, CSS dll.)
4) Database yang didukung untuk menyimpan dan mengambil data. (MySQL dll)
3) Versi mengendalikan sistem untuk memeriksa dan mengambil repositori bentuk kode Anda.
4) alat membangun untuk mengkompilasi kode Anda dengan file dependen. (Semut, Maven)
6) Server web untuk menyebarkan dan menjalankan kode Anda.
7) Perlu mengetahui proses penyebaran dasar pada server untuk menjalankan dan menguji komponen web dan ejb Anda. (Tomcat, server Web-Logic)
sumber
Selain jawaban DemetriKots, saya juga menambahkan mencari solusi untuk penerapan otomatis dan integrasi berkelanjutan. Menyiapkan server pada awalnya hanya satu langkah, dan menyebarkan melalui FTP itu menyakitkan dan rentan kesalahan, tanpa solusi yang tepat untuk memutar kembali penyebaran yang buruk.
sumber