Apakah sebagian besar programmer mengkhususkan pada satu tumpukan, membiarkan hal-hal lain terjadi, atau apakah mereka ahli dalam berbagai bahasa pada saat yang sama? Jika lebih dari satu, berapa standar?
Maksud saya, lebih dari sekedar mengetahui sintaks suatu bahasa - seorang ahli cukup tahu perpustakaan standar, alat, lingkungan, dan sintaksis untuk dapat menulis program yang tidak sepele tanpa harus terus mencari atau membaca buku / tutorial.
programming-languages
self-improvement
experience
blueberryfields
sumber
sumber
Jawaban:
Manfaat utama dari mengetahui berbagai bahasa tidak tertulis secara langsung. Semua hal lain dianggap sama, saya lebih suka bekerja dengan programmer C # yang juga tahu C, Python dan Lisp (misalnya) daripada yang hanya pernah diretas dalam C #. Bukan berarti mengetahui lebih banyak bahasa lebih baik, tetapi mampu memikirkan masalah di berbagai tingkatan dan dari berbagai perspektif sangat membantu.
Ini bukan tentang mengecek satu bahasa lagi, atau menaruhnya di resume Anda; Anda hanya perlu memahami konsep dasarnya cukup baik untuk memprogram di dalamnya untuk mendapatkan manfaat penuh. Anda tidak akan mendapatkannya dari memiliki pemahaman dasar tentang sintaksis.
Jawaban yang lebih langsung adalah "itu tergantung".
Di perusahaan besar Anda diharapkan / diizinkan untuk berspesialisasi, tetapi seperti yang saya katakan di atas, saya percaya masih ada manfaatnya untuk memahami hal-hal di luar satu alat favorit Anda.
Di tempat yang lebih kecil, Anda benar-benar tidak bisa lolos dari itu. Jika tidak ada yang lain, Anda biasanya perlu memelihara aplikasi Anda serta membangunnya, dan Anda mungkin tidak dapat menggunakan bahasa yang sama untuk menjalankan log / data munging seperti yang Anda lakukan untuk benar-benar membangun aplikasi Anda. Saya kira Anda secara teknis bisa lolos dengan mengetahui satu bahasa, tetapi manfaat memiliki berkinerja baik, sangat diketik (atau setidaknya mampu menegaskan), mungkin bahasa yang dikompilasi melakukan angkat berat, dan bahasa scripting untuk pemeliharaan / tugas setup / scripting tampaknya cukup besar. Saya tidak ingin melakukannya tanpanya.
sumber
Anda memiliki pertanyaan yang sangat menarik:
Saya tidak berpikir bahwa setiap programmer harus menjadi "ahli" pada bahasa tertentu. Keyakinan saya adalah bahwa sebagai programmer kita harus menjadi ahli dalam pemrograman, merancang algoritma, berpikir dalam langkah-langkah yang jelas, tetapi bahasa pemrograman adalah sesuatu yang baru saja Anda pelajari.
Seorang programmer "baik", maksud saya menangani proyek pengembangan tanpa menakuti klasik "Saya belum pernah bekerja dengan itu sebelumnya", harus belajar bahasa dalam waktu kurang dari 5 hari kerja. Anda belajar praktik terbaik, alat, dan perpustakaan terutama dari 2 cara, 1: membaca dan 2: bekerja. Entah Anda memantul kepala Anda terhadap kode atau membaca banyak buku.
Dalam beberapa tahun setelah premis "Pemrogram yang baik menulis hanya kode" tanpa kode C # atau kode C ++ atau kode Java, Anda akan menyadari bahwa setelah Anda belajar mengembangkan program, bahasa dan teknologi tidak begitu penting. Tentu, Anda akan tahu cara bergerak lebih baik dari C # daripada PHP, tetapi jika Anda telah belajar dengan baik, Anda akan menemukan cara melalui Python jika Anda harus.
Semoga ide saya seperti Anda!
sumber
Satu, tetapi itu tidak berarti Anda bisa mengabaikan yang lain. Anda harus cukup tahu untuk membenarkan mengapa Anda tidak menggunakannya atau mengetahui keterbatasan Anda, sehingga Anda dapat meminta bantuan jika perlu.
sumber
Saya pikir itu mungkin tergantung pada kepribadian Anda, ada orang yang senang menggali sudut dan celah suatu subjek, dan ada orang lain yang suka mendapatkan pandangan luas tentang berbagai hal. Anda mungkin perlu mencari tahu kepribadian seperti apa Anda. Saya tidak menempatkan satu di atas yang lain masing-masing memiliki kegunaannya.
Sebagai mantan, Anda akan menjadi ahli, guru, spesialis. Sebagai yang terakhir Anda akan lebih umum digunakan dan mungkin digunakan dalam berbagai situasi tetapi mungkin tidak masuk ke dalam atau selama subjek.
sumber
Satu. Tapi kau sebaiknya jago dalam hal itu.
sumber
Satu
Yang ada di depanmu.
sumber
Seperti yang dikatakan Joel dalam podcast SO, lebih baik untuk mengetahui banyak bahasa dan tahu bagaimana / kapan menggunakan bahasa yang tepat untuk tugas tersebut. Ada beberapa hal yang dapat Anda lakukan lebih cepat dalam satu bahasa daripada yang lain. Saya pikir akan lebih baik untuk mengetahui bahasa imperatif dan bahasa fungsional misalnya. Banyak kali belajar bahasa yang lebih sulit atau lebih esoteris melatih otak Anda untuk menjadi programmer yang lebih baik secara keseluruhan.
sumber
Tidak ada karena ada kemungkinan beberapa programmer yang tidak akan menjadi ahli dalam bahasa apa pun tetapi mereka menikmati lingkungan beragam yang mereka miliki dan akan menggunakan berbagai bahasa tergantung pada keadaan karena beberapa mungkin tahu beberapa teknologi sisi server seperti PHP, ASP.Net di C # .Net atau VB.Net, atau Java, beberapa bahasa skrip sisi klien seperti JavaScript atau Flash, dan ini tanpa masuk ke perangkat keras apa pun yang digunakan untuk memasang barang-barang web di sini.
Pada saat yang sama, mungkin ada beberapa programmer yang ahli dalam selusin bahasa atau lebih karena itulah yang mereka pelajari dengan cukup setia sebagian besar waktu untuk tetap menguasai begitu banyak hal dalam setiap bahasa.
sumber
Satu, tetapi harus dapat membaca program dunia nyata non-sepele yang ditulis dalam beberapa bahasa lain dari waktu ke waktu. Dalam beberapa cara, yang di mana programmer adalah seorang ahli adalah seperti bahasa ibu mereka, mereka berpikir di dalamnya, tetapi belajar dan berbicara bahasa lain sangat baik karena itu menunjukkan programmer dapat menghargai cara berpikir lain. Jika mereka bisa berfikir dalam lebih dari satu bahasa sama fasihnya dengan bahasa ibu mereka, itu luar biasa.
sumber
Ini pertanyaan yang bagus, tapi saya rasa tidak ada standar. Biasanya dengan apa yang saya lihat orang-orang ahli penuh dalam satu bahasa tingkat tinggi (C ++, Java, dll) dalam satu lingkungan (windows / linux, mac, solaris). Mereka tahu kira-kira beberapa bahasa tingkat tinggi lainnya tetapi tidak sepenuhnya memahaminya. (mis. C ++, orang Jawa saling mengenal secara kasar). Dengan kasar Aku berarti mereka dapat membandingkan kinerja satu tugas dalam bahasa mereka ahli dan dalam bahasa lain. Dan kemudian mereka moderat dalam beberapa bahasa scripting. (mis. Linux orang tahu bash, Windows orang tahu VBA, web orang tahu PHP)
Bagi saya yang penting adalah pengetahuan algoritma dasar daripada bahasa. Jika dasar-dasar Anda bagus, ada sedikit peluang untuk mengacaukan dalam bahasa apa pun.
Tapi ya, terkadang berguna untuk mengetahui bahasa apa yang lebih baik untuk tugas apa. misalnya kode berikut jauh lebih cepat di pascal daripada di C.
strcat (A, "Hello"); strcat (A, "WOrld"); strcat (A, "I say hi!");
Ini karena Pascal menyimpan panjang string di lokasi pertama dan karenanya mudah untuk melompat ke lokasi terakhir. Di C, terminasi string adalah '\ 0' dan karenanya Anda harus melintasi seluruh string untuk operasi strcat.
sumber
Itu tergantung pada lingkungan di mana Anda pemrograman. Di pekerjaan sebelumnya, sebagian besar pekerjaan saya di Perl; selama waktu saya di sana saya cukup mahir dalam hal itu. Sekarang saya bekerja di tempat yang memiliki program warisan dalam tiga bahasa yang saya hampir tidak tahu sintaksnya; Saya diharapkan untuk mempertahankannya di samping pekerjaan saya di proyek-proyek baru. Saya sekarang kurang menguasai bahasa apa pun, tapi saya pikir saya sudah lebih merasakan pemrograman . Saya telah belajar cara berpikir lebih abstrak, melihat gambaran besar terlebih dahulu, dan kemudian mencari sintaks dan perpustakaan untuk mengisi detailnya.
sumber