Anda sering dapat mendengar bahwa programmer harus belajar banyak bahasa berbeda untuk meningkatkan diri mereka sendiri. Saya masih bersekolah dan tidak memiliki pengalaman pemrograman yang besar (sedikit lebih dari setahun). Tetapi niat mulia untuk meningkatkan keterampilan pemrograman berubah menjadi semacam OCD: Saya merasa tidak akan tenang sampai saya mempelajari semua bahasa pemrograman yang relatif dikenal.
Dan ini pertanyaannya: Akankah bahasa pemrograman polyglot benar-benar membantu Anda (Dan saya tidak bermaksud biasa "Programmer harus tahu setidaknya semua paradigma", maksud saya benar-benar semua bahasa yang biasa Anda dengar)? Adakah yang punya pengalaman serupa? Apakah itu membantu pekerjaan / keterampilan / karier? Seberapa sering Anda bisa menerapkan keterampilan itu?
sumber
Jawaban:
Itu membantu
Itu tidak membantu. Meskipun begitu Anda tahu semua paradigma, Anda bisa belajar bahasa seminggu.
Lebih optimal menghabiskan satu minggu mempelajari bahasa itu saat Anda membutuhkan bahasa itu.
Catatan samping:
Mempelajari bahasa umum / populer tidak membantu seperti mempelajari "semua paradigma". Yang pertama tidak mencakup yang terakhir. Misalnya belajar mandiri sangat berguna untuk memahami OO prototipikal. Ini bukan bahasa umum atau populer tetapi jauh lebih berguna daripada belajar python ketika Anda sudah tahu ruby.
Desain bahasa:
Mengetahui sebagian besar bahasa berguna jika Anda menulis / mendesain bahasa baru. Jadi ada kasus penggunaan yang solid untuk itu, tapi ceruknya cukup bagus.
Apa yang saya sarankan Anda lakukan sebagai gantinya:
Baca Kode Selesaikan 2 setidaknya 3 kali
Bahasa datang dan pergi ke kiri dan kanan tergantung pada "apa yang populer". Teknologi menjadi usang setelah berbulan-bulan atau bertahun-tahun tergantung pada seperti apa kurva teknologi itu. (Web mencela teknologi dengan kecepatan setiap 6 bulan).
Teknik pemrograman dan teori Ilmu Komputer selalu tetap sama.
sumber
Ini bukan tentang mengetahui cara membuat kode dalam banyak bahasa, ini, seperti yang Anda katakan, tentang paradigma. Semakin banyak opsi yang Anda ketahui tentang semakin baik. Mengetahui banyak bahasa tentu membantu, tetapi jika Anda terus mempelajari jenis bahasa yang sama Anda akan dengan cepat menemui jalan buntu.
Kuncinya adalah mengetahui bahasa / sistem apa yang terbaik untuk mengimplementasikan bagian dari proyek Anda. Bahkan jika Anda telah memutuskan satu bahasa utama (seperti kebanyakan proyek), Anda masih akan memiliki semua jenis alat, skrip, otomatisasi, dan membangun dukungan yang harus ditulis. Biasanya berbagai bahasa atau alat lain, lebih baik dalam hal ini daripada bahasa utama Anda.
Sekedar klarifikasi, saya merasa konyol untuk mencoba dan mempelajari semua bahasa yang benar-benar Anda dengar: ada ratusan di antaranya dan seringkali hanya sedikit variasi pada bahasa lain.
sumber
IMHO, tidak. Pertama karena Anda tidak dapat belajar bahasa dalam waktu kurang dari setahun. Dibutuhkan 2 hari untuk dapat menulis kode di dalamnya, tetapi dibutuhkan banyak pengalaman untuk menulis dengan lancar, dan kode yang terbentuk dengan baik untuk bahasa yang diberikan. Mengapa GC bekerja seperti itu, di mana mengalokasikan memori, yang membangun lebih cepat, cara menggabungkan string dengan benar, apa sudut bahasa yang berbahaya, dll.
Saya menulis kode Java / .NET yang buruk menjadi pengembang C ++, karena banyak pengembang Java menulis kode C ++ yang buruk.
Bagian terbaik tentang mempelajari bahasa lain adalah Anda mempelajari paradigma baru, dan mungkin memiliki alat yang lebih baik untuk beberapa masalah nyata. Katakanlah - Anda perlu aplikasi GUI yang sangat cepat, non-publik, .NET tidak tergantikan di sana.
Tetapi mempelajari bahasa sehingga Anda tidak menggunakan struct di .NET, atau tidak membocorkan setiap objek di C ++, membutuhkan banyak waktu. Saya pikir lebih baik menghabiskannya untuk mempelajari prinsip-prinsip desain, platform, dan bahasa pilihan Anda.
Tapi ini hanya pendapat saya saja.
sumber
Ini tidak praktis untuk tahu mereka, tetapi bisa sangat berguna untuk mengetahui tentang mereka. Yang saya maksud dengan itu adalah ketika Anda mendapatkan masalah baru, Anda dapat mengatakan, "Saya samar-samar ingat [bahasa lain] memiliki cara unggul untuk menyelesaikan masalah seperti ini. Saya harus mencari tahu itu."
sumber
Anda akan membantu karir Anda lebih banyak dengan membangun pengetahuan domain kemudian belajar banyak bahasa pemrograman. Belum lagi Anda akan perlu belajar alat tambahan untuk itu seperti bagaimana menggunakan profiler dalam bahasa Anda, sama untuk debugger, kerangka kerja GUI terbaik dan cara memprogram dengan cepat, apa yang ada di perpustakaan pihak ke-3 dengan pengorbanan dan idiom khusus bahasa.
Lebih bijaksana untuk belajar melakukan lebih banyak hal daripada banyak cara melakukan hal yang sama.
sumber
Saya telah bekerja pada beberapa sistem di mana komponen ditulis dalam berbagai bahasa (pelaku terburuk mengharuskan saya untuk mengirimkan kode yang ditulis dalam Ada 83, C, Fortran 77, SQL, dan DCL, sedangkan pekerjaan terakhir saya mengharuskan saya untuk memberikan C ++ dan kode Java ). Jadi, ya, ada kasus dunia nyata di mana Anda perlu tahu beberapa bahasa dengan cukup baik untuk menjadi produktif di dalamnya (produktif! = Mahir; Anda tidak akan menjadi ahli dalam C ++ dan Java dan ... kecuali Anda adalah orang aneh).
Selain itu, titik meluangkan waktu untuk belajar berbagai bahasa adalah untuk membantu memisahkan konsep dari implementasi . Bagi saya, OOP tidak mulai masuk akal sampai saya bekerja dengan beberapa OOPL. Juga, di beberapa titik dalam karir Anda, Anda akan harus cepat pindah persneling dan mulai bekerja pada sesuatu yang sama sekali baru dan asing; meluangkan waktu sekarang untuk melampaui apa yang perlu Anda ketahui akan membantu membuat transisi itu lebih mudah ketika itu terjadi.
sumber
Saya pikir Anda akan lebih baik belajar mempelajari beberapa bahasa yang berbeda dan kemudian setidaknya satu mendalam sebelum memulai kebutuhan untuk mempelajari setiap bahasa yang mungkin. Setelah Anda memiliki jumlah minimum, kedalaman menjadi sangat penting untuk kemajuan Anda sebagai pengembang. Saya akan melihat seseorang dengan kedalaman dalam satu atau dua bahasa dan segelintir pasangan lain daripada seseorang dengan segelintir segalanya. Mendalami kedalaman seperti mempelajari paradigma lain, itu akan mengubah cara Anda berpikir tentang pemrograman dan itu akan membuka pintu ke proyek-proyek menarik yang benar-benar kompleks.
sumber
Ini seperti belajar berbicara banyak bahasa. Mempelajari semuanya sampai pada titik berguna hampir tidak mungkin. Tetap berpegang pada yang Anda akan gunakan dan Anda akan lebih baik. Anda dapat mempelajari C ++, C #, dan Java dengan cukup baik, tetapi mencoba menekan Perl, Python, VB (bukan VB.NET), Ruby, dan JavaScript ke tingkat profesional pada saat yang sama hanya bodoh. Tidak cukup waktu dalam sehari untuk meningkatkan keterampilan Anda dalam semuanya sekaligus.
sumber