Konteks pribadi: Saya telah belajar C ++ secara resmi 6 bulan terakhir di universitas. Sebelum ini saya mencoba-coba JavaScript selama setahun. Sekarang saya sedang mempertimbangkan belajar Python selama satu bulan libur sekolah.
Dengan memecah fokus saya di awal proses pembelajaran, apakah saya menurunkan efisiensi pembelajaran saya? Haruskah saya menghabiskan bulan itu melanjutkan C ++? Atau tidak pernah terlalu dini untuk belajar bahasa baru?
programming-languages
learning
efficiency
Antisipasi
sumber
sumber
Jawaban:
Pengalaman saya dengan Python terbatas pada beberapa kode permainan hanya sedikit lebih kompleks daripada hello world, jadi ini tidak akan menjadi jawaban yang sangat mendalam untuk python secara khusus, tetapi saya dapat memberitahu Anda ini:
Perbedaan antara bahasa dalam rincian seperti sintaks dan spesifik bahasa tertentu akan berbeda (seperti cara kesalahan yang berbeda ditangani, kemampuan I / O dan bagaimana kompiler mengubah input Anda menjadi sesuatu yang dapat dieksekusi), tetapi C ++ dan Python keduanya menawarkan hal yang sama paradigma, sehingga pemecahan masalah dapat dilakukan dengan cara yang hampir sama dengan kedua bahasa. Baik C ++ dan Python keduanya Imperatif dan Berorientasi Objek, jadi Anda mungkin akan mengambil python dengan cukup cepat jika Anda merasa nyaman dengan C ++ setelah Anda menguasai sintaks baru menggunakan teknik pemecahan masalah yang Anda ambil dengan C ++. Jika Anda mau, Anda bisa menggunakan Python untuk pemrograman fungsional juga, tapi saya belum pernah menyentuh bagian itu, jadi saya tidak bisa memberi tahu Anda banyak tentang hal itu.
Apakah ini terlalu dini? Saya tidak bisa benar-benar menceritakan kisah Anda dalam jawaban ya atau tidak. Apakah Anda sudah cukup percaya diri untuk menulis aplikasi lengkap (GUI) dengan C ++? (Yaitu menggunakan perpustakaan, fitur bahasa yang lebih kompleks seperti generik dan / atau templating dll.) Saya pikir belajar paradigma bahasa baru jauh lebih sulit daripada belajar bahasa baru dalam keluarga paradigma yang sama. Ketika Anda melangkah keluar ke wilayah paradigma baru, Anda harus menghabiskan lebih banyak waktu untuk mendapatkan ide bagus tentang bagaimana menyelesaikan masalah dengan paradigma itu. Antara bahasa OO ada perbedaan tentang bagaimana warisan ditangani, dan bagaimana data dilewatkan dalam memori ketika Anda melewatkan parameter / argumen ke fungsi yang mempengaruhi kinerja. Tetapi untuk memulai ini biasanya menjadi perhatian kecil pada awalnya.
Dugaan saya adalah bahwa jika Anda cukup percaya diri dengan C ++ untuk melakukan sesuatu yang lebih dari halo dunia dengan cara yang mewah, Anda boleh meluncurkan. Mempelajari banyak bahasa secara dangkal akan membantu Anda memahami sampel kode terlepas dari bahasa yang digunakan, tetapi membuat kode Anda sendiri memerlukan sedikit lebih banyak pemahaman tentang bagaimana bahasa bekerja dan bagaimana mereka berbeda satu sama lain.
PS Ketika saya ingin belajar bagaimana menggunakan bahasa baru secara dangkal, saya biasanya akan mencoba hal-hal berikut untuk merasakan sintaks bahasa dan cara kerja yang dangkal:
sumber
Ya tentu saja.
Tidak ada keraguan tentang itu, kadang-kadang terlalu dini untuk belajar bahasa pemrograman baru.
Kasus paling sederhana adalah jika bahasa el-stinko keluar dan sebelum ada yang menunjukkan ketidakcocokan, dengan mempelajarinya Anda merusak otak Anda. Pasangan yang datang ke pikiran termasuk BASIC, FORTH, dan APL.
Untuk kasus yang lebih rumit, salah satu ilmuwan komputer yang hebat telah menggambarkan masalah ini yang secara singkat dinyatakan adalah bahwa praktik menjadi permanen, dan ada banyak disiplin ilmu yang harus dipelajari sebelum mempelajari bahasa komputer sehingga bahasa tersebut tidak mengubah pemahaman yang lebih mendasar. . Dalam kata-katanya:
Lawan baru terjun ke pemrograman bernama Edsger Dijkstra dan dia memiliki karir yang sangat terkenal. Dia dianugerahi ACM Turing Award dengan kutipan berikut:
Makalah di mana ia meluncurkan pembelajaran prematur bahasa pemrograman adalah:
"Tentang Kekejaman yang Benar-Benar Mengajar Ilmu Komputer" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
Juga, tolong jangan nyalakan saya, saya hanya pembawa pesan.
sumber
Apakah terlalu dini untuk belajar bahasa baru?
Saya akan mengatakan ya. Jika Anda masih menggunakan konsep bahwa komputer mungkin benar-benar melakukan apa yang Anda katakan, maka mempelajari bahasa kedua mungkin hanya akan membingungkan Anda.
Tetapi jika Anda melewati titik di mana Anda menyadari bahwa komputer melakukan persis apa yang Anda katakan, tidak peduli seberapa bodohnya itu, maka kemungkinan besar Anda memiliki pemahaman yang cukup masuk akal tentang bahasa pertama Anda yang melihat detik (dan ketiga) !) Bahasa tidak merusak fokus Anda.
sumber
Tidak bisakah kalian melakukan keduanya ?? Saya akan melakukan proyek dalam C ++ dan belajar bit Python (hanya karena sangat mengagumkan), Anda bisa menyelesaikan masalah di ProjectEuler.net menggunakan Python
Secara umum, saya pikir itu ide yang buruk untuk belajar bahasa, tinggalkan dan mulai belajar yang baru. Seseorang harus fleksibel bekerja dengan paradigma yang berbeda pada tahap awal. Tapi itulah yang saya pikirkan.
sumber
Bagi seorang programmer yang mempraktikkannya, saya dengan tegas mengatakan bahwa belajar bahasa baru hampir tidak pernah merupakan ide yang buruk. Untuk seorang mahasiswa, saya akan sedikit mengingatkan, tergantung pada kelas apa yang akan datang. Alasannya adalah, dalam ujian sekolah Anda sering harus membaca detail bahasa tanpa memanfaatkan lingkungan kompilasi / eksekusi yang akan dengan mudah menunjukkan kesalahan Anda.
Terutama ketika Anda hanya memiliki pengalaman beberapa bulan, sangat mudah untuk menggabungkan rincian dalam pikiran Anda. Jika Anda peduli dengan nilai Anda dan mengikuti kelas dengan ujian seperti itu, saya akan berhati-hati. Di dunia nyata, itu bukan masalah.
sunting : Saya awalnya mengatakan sintaksis, tetapi detail non-sintaksis sama pentingnya bagi para profesor, dan ada lebih banyak dari itu.
sumber
append()
vs.push_back()
untuk suatu daftar, yang merupakan sesuatu yang bahkan harus diprogram oleh pemrogram berpengalaman jika mereka belum menggunakan fitur tertentu dalam bahasa tertentu untuk sementara waktu. Mampu mengingat sintaksis di tempat tidak diragukan lagi membantu, tetapi untuk sebagian besar pekerjaan itu tidak pernah diperlukan .