Saya seorang programmer PHP / Python yang mempelajari Java dan C # (. NET).
OS pengembangan utama saya adalah windows 7 tetapi saya telah menggunakan Linux dan saya saat ini dual-boot dengan Ubuntu. Namun pengetahuan Linux saya, sangat terbatas. Saya dapat bekerja dengan baris perintah pada tugas-tugas sederhana tetapi cukup banyak. Saya tidak melakukan scripting shell dan saya tidak tahu banyak perintah penting.
Minat saya adalah pengembangan web, aplikasi seluler, dan mungkin beberapa hal yang disematkan di masa depan. Apakah keterampilan shell scripting bermanfaat untuk minat ini dan jika demikian, bagaimana?
web-development
linux
Maxtor
sumber
sumber
Jawaban:
Jika saya mengode aplikasi windows (atau aplikasi mac) mengapa saya harus tahu Linux? Haruskah mekanik Ford mengenal traktor John Deer? Semuanya tergantung pada apa yang Anda lakukan, secara profesional atau pada waktu "hobi" Anda sendiri.
Sekarang, tidak ada salahnya untuk mengetahuinya. Bahkan, saya sangat percaya pada "semakin banyak Anda tahu, semakin baik Anda"
sumber
Jika Anda seorang programmer PHP, Anda pasti harus mengenal Linux. PHP dibuat di Linux, dan PHP adalah bagian penting dari tumpukan LAMP: Linux + Apache + MySQL + PHP. Bahkan jika Anda memiliki kesempatan untuk mengembangkan untuk server Windows sekarang, pekerjaan Anda berikutnya mungkin akan membuat Anda mengembangkan untuk server Linux, dan Anda harus terbiasa dengan lingkungan Linux sehingga Anda tidak menjalankan pertengkaran dengan isme khusus Window ' dari PHP.
Di ruang aplikasi seluler, mengetahui Linux akan (sayangnya) memiliki sedikit relevansi dengan lingkungan yang Anda kembangkan. iPhone OS tidak ada hubungannya dengan Linux, dan Android membuat Anda begitu ketat berpagar menjadi mesin virtual, Anda tidak akan pernah tahu ada Linux di bawah Anda. Anda dapat memprogram untuk Linux di Meego atau Maemo, tetapi mereka tidak memiliki popularitas yang mendekati iPhone dan Android.
Di ruang yang tertanam, Anda harus tahu Linux. Embedded Windows jarang, tetapi embedded Linux cukup umum. (Tentu saja, pemrograman tertanam bare-metal juga cukup umum, jadi itu tergantung di mana Anda ingin pergi.)
Jika Anda mempelajari Linux secara mendalam selama beberapa tahun, Anda akan memiliki beberapa tingkat pemahaman tentang setiap bagian sistem dari kernel, melalui proses bootup, hingga baris perintah, dan GUI.
sumber
Ada beberapa tingkat pemikiran 80/20 yang dapat Anda terapkan di sini. Sebenarnya tidak butuh waktu lama untuk mempelajari dasar-dasar cara kerja Linux dan perintah inti yang perlu Anda ketahui dari Shell. Konfigurasi dasar Apache juga sangat nyaman untuk dimiliki jika Anda membutuhkannya. Anda tidak perlu mendedikasikan hidup Anda selama bertahun-tahun untuk itu, tetapi tentu saja cukup berharga untuk mempelajari dasar-dasar yang dapat Anda peroleh dengan menjalankan server Anda sendiri jika perlu.
Ini garis yang bagus. Jika Anda tidak berhati-hati, Anda dapat dengan cepat menemukan Windows mulai benar-benar memberi Anda tanda centang ketika Anda terbiasa dengan apa yang Linux tawarkan ...
sumber
Anda tidak harus mempelajarinya tetapi itu akan membuat Anda seorang programmer yang lebih baik. Anda akan belajar cara melakukan berbagai hal dengan cara yang berbeda dari cara Windows. Menggunakan salah satu shell * sh pada akhirnya akan mengarah ke scripting dan menggunakan ekspresi reguler, mengotomatisasi instalasi, mem-parsing file besar, dll.
Saya tidak peduli tentang diejek karena tidak mengetahuinya, sebanyak saya peduli tentang betapa kerennya setiap kali saya belajar bagaimana melakukan sesuatu yang lain di Linux. Itu terus menjadi lebih baik dan lebih baik dengan setiap bit baru.
Powershell memiliki banyak yang berasal dari dunia nix, mereka akhirnya menyadari bahwa untuk memiliki otomatisasi Anda memerlukan konsol yang baik (pujian untuk MS untuk itu). Baik Perl dan Python tampaknya merupakan campuran C, bash, sed, awk, semuanya disatukan menjadi hal yang baik dengan cara mereka sendiri.
Paling tidak Anda akan memiliki sesuatu yang lain untuk dimasukkan ke dalam resume Anda, tetapi itu sebenarnya bukan hal terbaik yang akan Anda dapatkan darinya.
Saya yakin Anda akan menemukan barang-barang Anda sendiri yang akan membuat Anda pergi: "Wow, keren sekali!" Pertama saya bisa "membunuh" Apache menggunakan sinyal USR1 untuk membuatnya memuat ulang file konfigurasi baru dan restart log, tanpa pernah menghentikan layanan dan terus menerima koneksi. Juga ssh dan rsync, duka yang bagus mengapa MS port tidak akan berada di luar jangkauan saya.
sumber
Itu tidak akan menyakitimu. Bahkan di semua perusahaan Microsoft, semakin besar kemungkinan Anda akan bertemu dengan setidaknya beberapa server Linux. Stack Overflow, misalnya, menggunakan Linux untuk penyeimbang bebannya. Ini terutama benar ketika virtualisasi mulai berlaku.
Sebagai seorang programmer, Anda mungkin lebih baik dengan mempertimbangkan untuk terbiasa dengan POSIX, bukan hanya varian seperti UNIX. Walaupun memang memiliki beberapa keanehan, itu mewakili banyak upaya yang masuk ke upaya luar biasa untuk membangun antarmuka standar yang (kebanyakan) portabel di semua lingkungan seperti UNIX. Catatan, banyak sistem seperti UNIX tidak 100% "benar benar", tetapi ini adalah titik awal yang baik.
Sebagai pengguna biasa, saya hanya dapat menyarankan bahwa itu menyenangkan untuk mencari sesuatu yang baru dan mempelajari hal-hal baru. Saya kira adalah mungkin untuk menjadi 'guru' dengan setiap sistem operasi yang dapat dipikirkan seseorang, tetapi saya tidak berpikir itu adalah upaya yang paling berguna bagi seorang programmer. Namun, pengetahuan yang baik tentang hal-hal yang mungkin Anda temui adalah baik .. dan dari pertanyaan Anda, Anda sepertinya akan menghadapi Linux di masa depan.
sumber
Ya, tetapi Anda tidak terdengar seperti Anda perlu mempelajarinya secara aktif.
Bagi saya, keakraban saya dengan linux dikembangkan melalui penggunaannya sebagai OS pekerjaan saya. Sepotong demi sepotong aku mempelajari hal-hal yang perlu kuketahui saat mereka muncul, dan terus melakukannya. Internet penuh dengan sumber daya tentang cara melakukan apa saja yang perlu Anda lakukan dengan linux, jadi alih-alih saya menyarankan agar Anda pandai membaca halaman manual dan dokumentasi dan membiarkan otak Anda menyerap (dan melupakan) perincian cara mencapai tugas spesifik saat Anda pergi .
Yang sedang berkata pasti ada beberapa perintah yang Anda akan dijauhi dari dunia linux karena tidak memiliki pemahaman dasar.
sumber
Dalam empat dari lima pekerjaan terakhir yang pernah saya jalani, para pengembang dan QA (setidaknya mulai) bekerja pada Windows, tetapi server pengujian dan produksi adalah Linux / UNIX. Semua dari mereka perlu mengetahui setidaknya sejumlah kecil UNIX untuk setidaknya bisa mendapatkan pada server uji dan melihat log atau men-debug program yang sedang berjalan di lingkungan 'nyata'. Sangat sedikit perkembangan yang sebenarnya ditakdirkan untuk Windows di perusahaan-perusahaan yang sudah dalam 20 tahun terakhir.
Menggemari orang lain di sini, sangat sedikit yang mungkin "perlu" untuk pekerjaan atau karier Anda, tetapi itu akan membantu pemahaman Anda tentang pekerjaan Anda sendiri, manfaat dan keterbatasan bahasa atau sistem yang Anda gunakan.
sumber
IMHO, untuk seorang programmer yang kompeten yang mengetahui Linux / Unix akan menjadi batu loncatan besar untuk filosofi Unix yang lebih penting
sumber
Ketika saya mengambil kursus Sistem Operasi Ilmu Komputer, kami mempelajari sistem operasi berbasis UNIX dan melakukan pekerjaan kami di RedHat karena itu open source dan karena kami dapat melihat kode dan karena kami dapat melakukan hal-hal dengan itu yang tidak dapat dilakukan di Windows.
Saya akan mengatakan jika Anda akan mempelajari dasar-dasar bagaimana sistem operasi bekerja di bawah tenda, Anda mungkin harus memiliki pengalaman dengan Linux, bahkan jika itu hanya dalam lingkungan akademik.
Saya baru saja kembali ke Windows 7 dari Ubuntu 10.04. Saya merasa sedikit tersesat tanpa grep dan beberapa alat baris perintah lainnya. Saya lebih suka berkembang di lingkungan Linux karena saya merasa sistemnya lebih kondusif bagi pengguna dan pengembang yang tangguh.
Saya tahu benar. Pemrogram NET yang keluar dari perguruan tinggi yang tidak tahu apa-apa tentang Linux, jadi itu bukan keharusan, tapi saya berharap siapa pun dengan pengalaman pemrograman lebih dari 5 tahun telah terpapar ke Linux dalam satu bentuk atau lainnya dalam satu bentuk waktu dalam karir mereka.
Anda harus menjadi juri dari apa yang Anda fokuskan; namun. Jika saat ini ada jalur untuk Anda mengembangkan aplikasi seluler, dan mengetahui Linux sebenarnya bukan keharusan, maka mungkin Anda fokus mempelajari lebih lanjut tentang SDK seluler alih-alih Linux. Ada tradeoff untuk semuanya, dan sepertinya Anda memiliki beberapa paparan dasar ke Linux di mana Anda bisa belajar lebih banyak tentang hal itu jika diperlukan.
sumber
Apakah salah satu dari yang berikut ini mengganggu Anda?
Ada banyak peluang kerja dan jalur karier yang masih bisa Anda kejar. Saya tidak mengatakan semua ini 'harus' mengganggu Anda. Jujur saja dengan diri Anda sendiri dan awasi industri pada umumnya dan Linux pada khususnya untuk melihat apakah jalur Anda mungkin melintas. Tidak diragukan lagi Anda bisa mencari tahu kapan saatnya tiba. Siapa tahu, proyek Linux mungkin datang besok.
sumber
Saya selalu kode di lingkungan Windows. Bagi saya, Linux hanya digunakan sebagai OS lain yang saya miliki sebagai cadangan jika Windows saya mengalami masalah. Saya hanya tahu perintah dasar dan semua yang saya coba lakukan sepertinya sulit. Tapi sekarang pada pekerjaan saya saat ini sebagai pengembang web, kita semua menggunakan Linux jadi saya terpaksa mempelajarinya dan menggunakannya untuk semuanya. Semakin saya menggunakannya, semakin saya menyukainya dan saya pikir itu jauh lebih produktif dan fleksibel. Saya menyesal tidak pernah mengacaukan Linux sebelumnya. Sekarang saya hanya mengejar ketinggalan.
Jadi ya, Anda harus mempelajarinya kapan pun Anda bisa.
sumber
Linux adalah alat di kotak alat Anda dengan cara yang sama seperti Windows "hanya" alat. Menjadi fasih dalam keduanya memungkinkan Anda untuk melakukan beberapa hal lebih baik tetapi tidak relevan untuk hal-hal lain.
Secara pribadi saya telah menemukan Linux dalam bentuk Ubuntu sangat berguna karena memungkinkan saya untuk dengan mudah membuat dan memelihara hal-hal seperti server database, server mail, server web pengujian dan banyak lagi di mesin virtual tanpa harus mempertimbangkan biaya lisensi (ditambah versi server membutuhkan sumber daya lebih sedikit daripada Windows). Jika Anda tidak melakukan hal-hal ini, saya rasa Linux tidak masalah bagi Anda.
sumber
Ketahuilah bahwa jika Anda bermaksud untuk menyebarkan ke OS tertentu, maka Anda dapat memastikan bahwa aplikasi Anda berfungsi, tetapi jika tidak ... Anda tidak perlu tahu apa-apa.
sumber
Kecuali saya sedang melakukan .NET, saya lebih suka menggunakan Linux. Tumpukan LAMP hanya terasa lebih alami bagi saya daripada WAMP.
Saya pasti akan merekomendasikan mempelajarinya jika Anda memiliki minat sama sekali dalam mempelajari sesuatu selain dari hal-hal Microsoft.
sumber