Saya mendengar tentang C, C ++, Java setiap hari setiap kali orang mulai berbicara tentang ilmu komputer, tetapi di kelas ilmu komputer pertama kami, kami diminta untuk menulis dalam Skema (DrRacket).
Mengapa demikian?
Apa perbedaan yang akan terjadi pada pemahaman saya tentang pemrograman di masa depan?
PEMBARUAN: Saya telah menyelesaikan masa jabatan pertama saya, tetapi tidak sepenuhnya selesai dengan Skema. Dalam istilah kedua saya (yang sekarang) kami masuk ke pemrograman C. Awalnya merasa frustrasi untuk belajar petunjuk, tetapi sekarang saya merasa jauh lebih baik.
Tidak banyak yang bisa dikatakan selain itu. Saya mencoba untuk mengajar diri saya sendiri Java (atau C ++?) Untuk bagian OOP yang saya lewatkan. Sejauh ini, saya masih suka pemrograman fungsional terbaik. Lambda hanya menarik. :)
Jawaban:
Kedengarannya seperti sekolah yang hebat! Dialek Lisp mengikuti paradigma matematika dari algoritma jauh lebih dekat. Mereka memaksa programmer untuk mempelajari rekursi dan gaya fungsional. Ini pengalaman yang luar biasa. Sekolah Anda berada di jajaran MIT, yang masih menggunakan Abelson dan Sussman untuk CS 6.001 yang diperlukan.
Anda mungkin menemukan artikel ini membesarkan hati dan membantu dalam memahami masalah ini.
sumber
Tidak ada yang berharap bahwa sebagai mahasiswa baru Anda akan cukup mahir dalam bahasa apa pun untuk mendapatkan pekerjaan nyata, jadi mengapa tidak mulai dengan yang mudah dipelajari? Mengharapkan pemula untuk belajar pemrograman dengan menggunakan bahasa profesional dalam IDE profesional adalah seperti memberikan pisau bedah kepada mahasiswa kedokteran tahun pertama dan meminta mereka bekerja pada benda hidup.
Jangan khawatir; Anda akhirnya akan belajar Java / C / C ++, mungkin mulai tahun kedua Anda. Jika Anda mulai belajar Java 6 sekarang, pada saat Anda lulus Java 8 akan keluar. Atau itu akan digantikan oleh Python. Atau bahasa lain yang belum ditemukan tetapi mengambil industri dengan badai. Lebih baik menunda belajar hal-hal "populer" selama mungkin sehingga tidak usang ketika Anda keluar dari dunia kerja.
Skema / Racket akan membantu Anda fokus pada konsep-konsep penting: desain algoritma, struktur data, dan manipulasi informasi. Anda tahu, hal-hal yang umum untuk semua bahasa.
sumber
Selamat, Anda sekarang berubah menjadi setara dengan seorang vegan di dunia komputer, dan dalam dua tahun Anda tidak akan dapat mengakhiri diskusi apa pun tanpa memberi tahu orang-orang tentang landasan moral yang lebih tinggi yang Anda perjuangkan. ;)
Pokoknya kamu mendapatkan sekolah yang sangat bagus. Sekolah yang tidak dicambuk industri bagus.
Seperti kata orang lain, mereka mengajarkan Anda ilmu pengetahuan, dari mana Anda mendapatkan kerajinan itu .
Banyak peternakan kode-monyet yang buruk mengajarkan Anda tentang kerajinan itu, dan kemudian Anda dapat menyimpulkan ilmu pengetahuan darinya, tetapi itu tidak dijamin. (dan Anda mungkin berakhir dengan kesalahpahaman yang cukup aneh tentang hal itu)
Bagaimanapun, sebagai anggota terhormat dari kerumunan fungsional, ketika Anda keluar dari sana, Anda akan selalu merasa disalahpahami dan kurang dihargai .
Yang, mari akui saja, untuk ahli komputer rata-rata bukanlah hal baru.
Anda sekarang berada dalam risiko tinggi:
Anda mungkin juga akan menyukai open source, tetapi Anda tidak akan pernah menemukan cukup kolaborator untuk proyek fungsional Anda.
sumber
Itu sedikit seperti bertanya bagaimana membaca Shakespeare akan membantu Anda menulis makalah. Pemrograman (dalam bahasa apa pun) hanyalah sarana untuk mengekspresikan ide-ide Anda dalam bentuk yang dapat dieksekusi. Ilmu komputer menyediakan blok bangunan konseptual yang akan memberi Anda sesuatu yang menarik untuk dikatakan. Sintaks skema relatif sederhana, sehingga Anda bisa mendapatkan ide-ide menarik dengan cepat dan tanpa mengalami banyak kesalahan kompiler, perpustakaan standar, dll.
Perhatikan baik-baik di kelas - Anda akan belajar banyak hal menarik semester ini.
sumber
Sepertinya Anda sangat baru dalam pemrograman yang tidak memiliki pengalaman sebelumnya sama sekali. Jadi, inilah beberapa klarifikasi:
Mengapa Skema dan bukan C / C ++ / Java ...?
Saat mempelajari bahasa pemrograman (analogi dapat dibuat dengan bahasa Inggris) Anda mempelajari sintaks yang harus Anda ikuti sehingga kode Anda benar secara gramatik. Namun bahasa tidak akan mengajarkan Anda logika di balik penyelesaian masalah. Untuk mempelajari logika itu, Anda mempelajari berbagai paradigma pemrograman .
Setiap bahasa dapat menerapkan (kurang lebih akurat) satu atau lebih paradigma. Paradigma adalah cara untuk menyusun logika Anda, dan paradigma yang diterapkan oleh Skema disebut Pemrograman Fungsional (FP).
Jadi pertanyaan sebenarnya yang Anda tanyakan adalah: Mengapa FP?
Seperti yang Anda sebutkan, C, C ++ dan Java (yang tidak menerapkan FP) jauh lebih populer. Sebagai fakta, (dan karena berbagai alasan, semua orang memiliki pendapat mereka) FP tidak terlalu populer di industri.
Di sisi lain, FP sangat dihargai di kalangan akademisi. Ini lebih dekat dengan pendekatan matematika umum, lebih berfokus pada provabilitas dan optimalisasi algoritma, dan kebanyakan orang akan setuju bahwa itu akan membuat Anda seorang programmer yang lebih baik secara umum.
Ini mirip dengan sekolah-sekolah yang mengajarkan bahasa Latin untuk belajar sastra Inggris.
sumber
Anda seharusnya belajar bagaimana pemrograman dilakukan dan apa konsep dasarnya. Bahasa sehari-hari yang digunakan di sebagian besar bisnis mungkin sangat cocok untuk memproduksi perangkat lunak yang dibutuhkan saat ini, tetapi tidak selalu paling cocok untuk mengajarkan Anda dasar-dasar pemrograman.
Setelah Anda memahami konsepnya, mudah untuk menerapkannya ke bahasa lain.
sumber
Jika Anda belajar dengan DrRacket, saya berani bertaruh Anda juga menggunakan kurikulum Cara Desain Program.
Inilah yang salah satu penulis (diakui bias) dari HTDP katakan tentang bagaimana mengajar Skema telah mempersiapkan mahasiswa di Northeastern University untuk program pendidikan koperasi ( "co-op": siswa semester alternatif studi akademis dengan semester penuh-waktu pekerjaan).
Sunting: bagi mereka yang sangat tertarik dengan alasan di balik kurikulum, inilah penjelasan arsitek utamanya - http://www.youtube.com/watch?v=m3be1PHW5X0
sumber
Sekolah saya juga mulai dengan Skema. Salah satu alasan yang disebutkan adalah ini membantu meratakan lapangan bermain. Kebanyakan tahun pertama Comp Sci mungkin memiliki beberapa, atau banyak, paparan bahasa yang lebih umum. Lebih kecil kemungkinannya bahwa seseorang memiliki banyak pengetahuan tentang Skema.
sumber
Sebenarnya, karena Lisp (Skema menjadi dialek) adalah Grande Dame dari bahasa fungsional (pikirkan F #, Groovy, Clojure, Haskell dll), maka pelatihan ini tidak membuat Anda pada kerugian komersial apa pun, karena ini adalah terpanas topik di blok pengembangan sekarang.
sumber
Skema akan membantu Anda menjadi baik dan berpikir dengan cara yang tepat untuk menggunakan bahasa pemrograman fungsional. Scala misalnya adalah Functional / OO hybrid yang cukup cemerlang, meski agak padat. Bahasa seperti ini menandai masa depan - semoga.
Bahasa-bahasa yang mirip keris meskipun memiliki kemurnian dan kesederhanaan pada desain mereka yang membuat mereka sedikit lebih mudah untuk mengajar. Namun manfaat baiknya adalah Anda akan lebih mudah mempelajari sesuatu seperti Scala sesudahnya.
sumber
Kami menyelesaikan Skema di paruh pertama dan pertama semester kedua. Baru setelah kami benar-benar mulai bekerja dengan C, saya mulai menyadari kekuatan Skema.
Mengenai pertanyaan Anda, mengapa Skema dipilih: jawabannya adalah bahwa itu adalah salah satu bahasa paling sederhana di luar sana dan memungkinkan Anda untuk melakukan banyak hal (terutama ketika kita mulai bermain dengan daftar malas nanti). Selain itu:
sumber