Saya membaca Seorang programmer harus berkonsentrasi pada setidaknya berapa banyak bahasa? , dan saya tahu bahwa saya tidak tahu bahasa di nomor 2, 3 dari jawaban pertama. Saya ingin belajar lebih banyak bahasa untuk meningkatkan pengetahuan dan keterampilan pemrograman saya. Namun, biasanya di perusahaan mereka jarang menggunakan kerangka kerja tetap dan bahasa serta perubahan. Jadi saya tidak yakin apakah saya bisa mendapatkan kesempatan untuk belajar bahasa-bahasa itu dan saya pikir itu akan sama dengan programmer lain.
Namun, saya telah melihat banyak pengembang yang tahu banyak bahasa di sini. Bagaimana Anda mendapat peluang untuk belajar banyak bahasa?
Memperbarui
Saya pikir, ada banyak orang yang merasa tidak nyaman karena sepertinya saya tidak ingin belajar di waktu luang saya sama sekali. Sebenarnya, itu tidak benar. :) Saya seorang programmer yang antusias dan itulah mengapa saya memposting pertanyaan semacam ini di sini. Saya belajar di waktu luang, tetapi saya pikir itu tidak cukup untuk menjadi terampil dalam bahasa. Bagaimanapun, terima kasih atas semua jawaban!
sumber
Jawaban:
Saya menemukan cara terbaik untuk belajar bahasa adalah dengan menggunakannya segera untuk membuat sesuatu yang bermanfaat atau yang Anda butuhkan .
Sebagai contoh saya menemukan diri saya perlu mengotomatiskan banyak operasi yang harus saya lakukan secara manual setiap waktu. Tugas berulang, pembuatan file dan folder, dll ... jadi saya hanya memilih bahasa scripting untuk membuat beberapa alat yang bermanfaat. Saya memilih Perl, dan mulai mempelajari sintaks dan fungsi yang saya butuhkan untuk membuat skrip, berkat tutorial dan buku online.
Dalam beberapa hari saya memiliki alat saya dan berjalan, maka di waktu luang saya terus belajar hal-hal baru tentang bahasa dan menambahkan lebih banyak fungsi ke dalamnya.
Pilihan hebat lain yang terlintas dalam pikiran adalah: jika Anda tidak menemukan bahasa yang Anda sukai, atau Anda pikir tidak sesuai dengan kebutuhan Anda sepenuhnya, Anda masih dapat membuat bahasa Anda sendiri .
Saya melakukannya sekarang dengan Perl, saya memilih sintaks yang akan membantu saya memecahkan masalah khusus saya (karena Anda menulis bahasa Anda sendiri, Anda mungkin ingin memilih sintaks yang tepat untuk pekerjaan itu, salah satu yang paling menggambarkan dan memecahkan masalah domain spesifik Anda).
Hasil? Pengembangan sekarang jauh lebih cepat dan kode itu sendiri jauh lebih deskriptif karena merupakan bahasa domain tertentu. Saya mengajukan pertanyaan terkait dengan topik ini beberapa minggu yang lalu dengan banyak tautan bermanfaat.
Anda dapat menggunakan bahasa skrip apa pun untuk membuat yang baru, bahkan dengan PHP.
sumber
Pertanyaan-pertanyaan semacam ini selalu membingungkan saya. Saya telah menggunakan 7 bahasa secara profesional, memiliki kode tertulis di sekitar 5 bahasa lainnya dalam pengaturan hobi dan akademik, dan dapat membaca kode dalam mungkin selusin bahasa lainnya. Tidak sekali pun saya belajar bahasa hanya untuk itu. Selalu ada tujuan konkret dan segera dalam pikiran. Sebagai contoh, akhir pekan ini saya belajar cukup banyak perpustakaan Android untuk mulai mengerjakan aplikasi untuk keluarga saya. Jika kami memiliki iPhone, saya akan belajar Objective-C.
Perasaan saya adalah mengetahui beberapa bahasa adalah gejala menjadi programmer yang terampil, atau setidaknya antusias, bukan penyebabnya . Jika Anda tidak dapat memikirkan alasan kuat untuk mempelajari bahasa baru, saya tidak tahu seberapa besar manfaatnya bagi Anda.
sumber
Cara terbaik untuk belajar bahasa baru ketika Anda memiliki masalah untuk dipecahkan. Daripada hanya menggunakan apa yang Anda sukai, luangkan waktu untuk melihat alat apa (bahasa, kerangka kerja, perpustakaan) yang mungkin berguna dalam membantu Anda memecahkan masalah. Jika Anda punya waktu untuk mempelajari alat baru, lakukanlah. Anda mungkin tidak dapat melakukan ini di tempat kerja, ketika Anda memiliki tekanan jadwal dan keterbatasan teknologi yang didorong oleh faktor luar, tetapi tidak ada alasan mengapa Anda tidak dapat mengambil pendekatan ini untuk proyek pribadi.
sumber
Anda hanya perlu meluangkan waktu untuk melakukannya. Lihatlah buku "Tujuh Bahasa dalam Tujuh Minggu" dari Prags. Ini akan memberi Anda intro ke tujuh bahasa yang sangat menarik dan dari sana Anda dapat pergi ke berbagai tempat.
sumber
Mulai gunakan saja. Jelas, membangun sistem produksi dari awal dalam bahasa yang Anda tidak pernah memiliki eksposur adalah ide yang buruk, tetapi berikut adalah beberapa saran:
sumber
Pilih sesuatu yang relatif kecil yang telah Anda lakukan dalam satu bahasa, dan kembangkan pengganti drop-in dalam bahasa lain. Lakukan ini hanya untuk menantang diri sendiri. Untuk menyelesaikannya, Anda akan belajar banyak tentang bahasa lainnya.
Hanya dalam seminggu terakhir, saya memutuskan untuk belajar dan menulis ulang layanan web di NodeJS (sebelumnya merupakan layanan JSP.) Hanya butuh satu hari untuk membuat layanan tulang-telanjang bekerja, dan beberapa hari kemudian Saya telah memperluas infrastrukturnya, penanganan kesalahan, penebangan, dan menambahkan pemantauan langsung. Sekarang lebih unggul dari aslinya. Apakah manajemen menerimanya atau tidak, tidak penting, karena saya telah mempelajari sesuatu dan sangat senang dengannya.
sumber
Saya menganggap bahwa sebagian kecil dari pekerjaan saya adalah "penelitian". Pada tahun 1998 penelitian berarti memperbaiki bug Y2K. Penelitian bulan lalu berarti mempelajari Subversi. Saya telah melakukan penelitian selama 40 tahun. Ketika saya membuat daftar bahasa saya harus mencantumkannya dalam urutan abjad.
Ketika saya belajar suatu bahasa, saya membaca sampul buku pedoman referensi. Lalu saya benar-benar menggunakannya selama beberapa bulan. Kemudian saya membaca manual referensi lagi. Pembacaan kedua mengungkapkan banyak trik dan implikasi yang saya lewatkan pertama kali.
Penelitian praktis mencakup bahasa normal, seperti C # dan Pascal. Penelitian lanjutan mencakup bahasa-bahasa aneh, seperti LISP dan FORTH. Anda mungkin tidak akan pernah menggunakan LISP secara profesional, tetapi mempelajarinya memperluas pikiran Anda.
Tentu saja, di lingkungan saya, saya tidak dibayar untuk waktu, saya dibayar untuk pengiriman. Jika saya bisa melahirkan dalam dua minggu, menggunakan enam jam sehari, saya bisa menggunakan tiga lainnya untuk penelitian. Jika dibutuhkan dua belas jam sehari, well, tidak ada penelitian.
Semua penelitian, tentu saja, harus memiliki beberapa kegunaan potensial bagi yang membayar saya. Utilitas kecil baik; lain kali Anda ingin memproses kode sumber C Anda, cobalah dengan Python. (Tidak, saya tidak tahu Python, tapi saya pernah mendengar itu bagus untuk manipulasi string.)
sumber
Terkadang peluang datang dari pekerjaan Anda. Biasanya ada satu dari tiga pendorong untuk jenis peluang ini.
Ini adalah teknologi baru. Misalnya, banyak perusahaan membayar pelatihan C # untuk pengembang mereka dalam dua atau tiga tahun pertama setelah .NET dirilis.
Mudah dipelajari. Misalnya, di toko linux, Anda harus menulis skrip .bash. Jika Anda telah menggunakan sesi terminal, dll., Dan ada pengembang lain yang memiliki pengalaman menulisnya, Anda harus dapat memperoleh keterampilan ini, jika hanya untuk mengotomatisasi beberapa tugas Anda sendiri.
Ini adalah keterampilan teknis yang jarang digunakan, dan perusahaan Anda tidak ingin melalui waktu dan biaya untuk mencari konsultan untuk melakukan pekerjaan. Sebagai contoh, saya belajar cara menulis XSLT karena kami membutuhkan cara mudah untuk mengubah beberapa file XML (log) untuk tampilan.
Peluang lain yang Anda butuhkan untuk diri sendiri di luar pekerjaan. Pilih dengan cermat - teknologi apa yang menurut Anda berguna di masa depan? Dalam hal ini, Anda harus meluangkan waktu dan upaya untuk mempelajari dan menerapkan teknologi. Ini harus menjadi bagian dari rencana karir keseluruhan, dan Anda mungkin harus membayar untuk kelas. (Saya beruntung - ketika saya belajar Jawa, mereka mengajar malam itu di sebuah perguruan tinggi setempat).
sumber
Menjawab pertanyaan Anda, dari pengalaman saya sendiri (saya cukup baru di industri sehingga tidak banyak) Saya bisa belajar bahasa baru dengan melakukan riset untuk melihat bahasa mana yang paling sesuai dengan kebutuhan saya. Di perguruan tinggi, saya memiliki projet dalam kriptografi yang membutuhkan penggunaan bilangan bulat besar. Itu menjadi cukup sulit di C ++ jadi saya beralih ke Java karena disediakan kelas BigInteger. Dalam pekerjaan saya saat ini, saya bisa melihat bahwa shell scripting tidak dapat menyelesaikan masalah saya sepenuhnya tanpa menjadi terlalu kompleks sehingga saya belajar Perl. Belajar sambil jalan adalah saran saya sebagai persyaratan; Tentu jika Anda merasa bosan, ada banyak bahasa untuk dijelajahi.
sumber