Berapa banyak bahasa pemrograman yang diharapkan oleh seorang programmer? [Tutup]

21

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.

blueberryfields
sumber
2
Saya tidak berpikir ada jawaban objektif (atau bahkan subjektif) untuk pertanyaan ini. Semakin Anda ahli, semakin baik bagi Anda - semakin luas perspektif yang Anda miliki. Apakah maksud Anda "Berapa banyak paradigma bahasa pemrograman yang harus dimiliki oleh seorang programmer yang ahli?"
talonx
6
Saya tidak setuju dengan definisi Anda tentang pakar. Bagi saya, apakah Anda harus mencari fungsi perpustakaan atau tidak jauh lebih penting daripada apakah Anda dapat menulis kode idiomatik dalam bahasa itu atau tidak. Jika Anda dapat berpikir dalam bahasa, Anda setidaknya sudah dekat untuk menjadi seorang ahli.
Chinmay Kanchi
1
Bagaimana menurut Anda dalam suatu bahasa, jika Anda harus melihat sebagian besar kata-kata Anda dalam kamus untuk mengetahui apa artinya?
blueberryfields
1
@blueberryfields: Kefasihan dalam suatu bahasa jauh lebih dari sekadar kosakata dan melampaui dasar-dasar, kosakata adalah bagian kecil darinya. Tidak ada gunanya mengetahui fungsi ada jika Anda tidak dapat melakukan sesuatu yang cerdas dengan pengetahuan itu. Jauh lebih mudah untuk hanya mencari fungsi daripada mencari tahu bagaimana melakukan sesuatu yang cerdas dengannya. Saya akan mengatakan bahwa mengetahui dokumen dengan cukup baik untuk dengan cepat mengetahui di mana harus mencari fungsi yang diberikan jika ada cukup pengetahuan perpustakaan. Setelah itu, Anda akan mengingat dengan tepat yang Anda gunakan dan mengingat dengan samar-samar yang tidak Anda gunakan.
aaronasterling
2
@blueberryfields: Bergantung pada bahasa / platform , sedikit pengetahuan bisa menjadi hal yang berbahaya . Yang saya maksud adalah: jika seseorang mengaku mengetahui banyak fungsi perpustakaan dengan hati dan tidak perlu membaca dokumentasi, saya akan berharap orang itu juga mengetahui semua nilai pengembalian, kondisi pengecualian, dan perangkap / peringatan, à la Raymond Chen dengan sepenuh hati, dan dapat menulis buku dan memberi kuliah kepada Microsoft / Google dll. Singkatnya, orang tersebut akhirnya membuat banyak kesalahan kecil yang lucu.
rwong

Jawaban:

33

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.

Bahasa pemrograman yang tidak mengubah cara Anda berpikir tentang pemrograman tidak perlu diketahui. -Alan Perlis

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.

Inaimathi
sumber
3
ya itu memperluas cakrawala saya juga - berpikir dalam banyak bahasa untuk mengatasi masalah
maz3tt
3
+1 untuk semua kata Inaimathi. Pikirkan bahasa pemrograman sebagai alat. Ya kita perlu tahu alat kami dengan sangat baik tetapi ketika Anda hanya tahu cara menggunakan palu maka semuanya mungkin terlihat seperti paku
Liviu T.
14

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!

David Conde
sumber
+1 "programmer yang baik hanya menulis kode ... bahasa dan teknologi tidak begitu penting" - sangat benar, dibutuhkan banyak paparan untuk sampai pada kesimpulan itu.
Orbling
Terima kasih, dan Anda melakukannya dengan benar: 11 tahun dan terus bertambah ... :)
David Conde
3

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.

JeffO
sumber
3

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.

Harald Scheirich
sumber
2

Satu. Tapi kau sebaiknya jago dalam hal itu.

Satanicpuppy
sumber
2

Satu

Yang ada di depanmu.

Steven A. Lowe
sumber
1
+1 Jumlah bahasa yang harus Anda kuasai paling tidak jumlah yang harus Anda gunakan. ;-)
Orbling
1

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.

chiurox
sumber
1

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.

JB King
sumber
1

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.

vpit3833
sumber
1

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.

Manoj R
sumber
0

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.

Bruce Alderman
sumber