Tolong bantu saya lokalisasikan repo ini!
Belajar Haskell adalah ide yang bagus, namun anda tidak perlu melakukannya sendirian. Buku Haskell Programming from First Principles by Chris Allen dan Julie Moronuki menyediakan kurikulum yang sempurna untuk kelompok belajar. Dengan menjalankan kelompok belajar saya sendiri untuk mengerjakan buku ini, saya dapat membuktikan keberhasilannya: membuat anda termotivasi, tetap pada jalur, dan mempertahankan kejujuran anda. Anda mungkin dapat bergabung kelompok yang sudah ada, namun dapat dikatakan lebih baik jika anda bisa memulainya sendiri, walaupun anda tidak merasa pantas. Saya pada dasarnya tidak tahu sama sekali tentang Haskell atau pemrograman fungsional ketika memulai kelompok pertama saya di kota New York. Faktanya, menurut saya hal tersebut adalah situasi terbaik yang memungkinkan pelajaran anda tidak terhambat atau penilaian anda tersamarkan dengan pengalaman sebelumnya atau ekspektasi yang tidak relevan, dan anda dapat belajar bersama dengan rekan-rekan pemula. Kalian semua didalamnya bersama-sama! Lagipula, kebanyakan pengembang Haskell -yang kita harapkan- bahkan belum terlahir. Mulai belajar hari ini, dan anda akan tetap menjadi bagian dari pelopor.
Repo ini menyatukan beberapa sumber untu orang yang mau memulai kelompok belajar Haskellnya sendiri namun tidak yakin harus bagaimana melakukannya. Termasuk didalamnya adalah saran untuk mempublikasikan kelompok anda, pedoman untuk peserta, jadwal yang direkomendasikan, dan sumber-sumber lainnya. Jika anda menyukai apa yang anda lihat, berikut adalah yang menurut saya anda harus lakukan:
-
Jika anda memulai kelompok belajar anda sendiri, fork repo ini dan modifikasi repo ini sesuai kebutuhan anda. Jika kamu melakukannya, Saya hanya meminta anda untuk menghargai ruh dari materias yang diberikan dan tidak menambahkan kepada saya perubahan apapun terhadap proses atau teknik pengajarannya.
-
Tambahkan kelompok belajar anda ke dalam daftar dibawah ini, dan ajukan pull request kepada repo ini untuk menjadikannya publik. Mintakan penambahan hanya jika anda ingin (kurang atau lebih) mengikuti rekomendasi saya.
-
Dalam repo anda sendiri, Saya menyarankan anda untuk membuat berkas
guidelines.md
sebagai berkasREADME.md
anda, buatlah perubahan yang anda anggap perlu. Anda mungkin dapat menaruh tautan ke repo ini jika anda suka. -
Beberapa tambahan sumber telah termasuk di dalam repo ini. Gunakan mereka. Tambahkan lagi. are included with this repo. Use them. Add more. Saya berharap untuk menambahkannya lebih banyak secara berangsur-kemungkinan.
Haskell Programming from First Principles, yang sehari-hari dikenal sebagai the Haskell Book, merupakan dasar dari pelajaran kelompok belajar yang ditawarkan repo ini. Jangan mengharapkan untuk mencari alternatif yang memadai. Penulisnya menyediakan kode diskon kepada anggota kelompok belajar sebelumnya seperti yang diindikasikan oleh panduan yang diberikan. Namun saya secara personal tidak dapat memberikan jaminan untuk diskon. Kontak penulisnya dan tanyakan secara pribadi sebelum anda mengumumkan penawaran tersebut ke kelompok anda.
Langkah pertama
Kamu dapat melakukannya semua sendiri, tapi saya menemukan Meetup sebagai tempat yang bermanfaat dikarenakan efek jaringan yang tersedia didalamnya. Para pengembang dan yang antusias terhadap teknologi sepertinya telah terwakili untuk memulainya disana, dan kelompok anda akan diumumkan kepada semua orang yang sebelumnya memiliki ketertarikan yang sama. Jika kota atau wilayah kamu memiliki Kelompok Pengguna Haskell (seperti Depok Haskell User Group (DHUG) -pent.) atau bahkan kelompok Meetup yang secara tangensial berhubungan, anda sebaiknya bertanya kepada mereka untuk membuat anda sebagai Pembuat Acara sehingga anda dapat menjadwalkan pertemuan anda sendiri dan tidak perlu membayar untuk memulay sebuah Meetup sendiri. Anda mungkin mendapatkan dukungan yang berguna dari komunitas lokal, jadi saya tidak mengharuskannya bergantung pada mereka. Tapi itu tidak menyakitkan untuk menghubungi setiap pengembang Haskell di area anda dan untuk secara personal mendatangi beberapa meetup terkait pemrograman (Haskell atau lainnya) untuk mengumumkan bahwa anda memulai sebuah kelompok belajar. Sentuhan personal tetap terhitung untuk sebuah kesepakatan yang bagus.
Mengumumkan acara keluar
Setelah anda berkomitmen untuk memulai sebuah kelompok, anda perlu mencari anggota. Percaya pada saya, mereka diluaran sana, menunggu untuk seseorang dengan inisiatif lebih (yaitu anda) untuk mencari mereka. Saya menyarankan untuk melakukan pencarian secara luas. Secara jelas, anda harus mengumumkan keinginan anda untuk sebuah komunitas Haskell dan pemrograman fungsional yang lebih besar. Tapi itu juga merupakan ide bagus untuk menjangkau pengembang manstream, yang mungkin memiliki ketertarikan di FP, dan bahkan non-pengembang, yang mungkin ingin menjelajahi hal baru atau karir baru. Untuk pilihan pertama, dibawah ini adalah saran saya. Untuk yang kemudian, anda harus mencoba untuk melakukan bujukan secara personal, bergantung kepa ucapan atau gunakan imajinasi anda sendiri.
- Reddit adalah tempat awal yang baik untuk memulai. Anda harus membagikan tautan Meetup anda kedalam subreddits yang sesuai. Beberapa saran:
- haskell
- functional programming
- programming
- javascript - tempat yang besar untuk pengenmbang, khususnya untuk mereka yang baru memulai koding dan/atau semangat untuk belajar hal baru.
- setiap subreddits untuk komunitas lokal anda.
- Hacker News - pastikan anda memiliki judul yang bagus.
- Lobsters - secara umum berkualitas bagus, namun adna mungkin membutuhkan undangan untuk bergabung.
- IRC
#haskell
#haskell-beginners
- Slack - anda mungkin harus melakukan pencarian untuk mencari tempat membagikan.
- FPChat
- Code Newbie
- Elm
- Slacks lain yang berhubungan dengan developer. area lokal anda, apapun bahasa atau fokusnya- sebagai contoh, di kota New York saya membagikan ke Slacks ini:
- Haskell Mailing Lists - bukan merupakan sumber langsung peljar yang wajib, namun mungkin berguna sebagai sumber tidak langsung jika anda secara sopan meminta penerimanya untuk membagikan informasi ke pihak-pihak yang tertarik.
- Social media
Lokasi
Ini adalah bagian yang susah-mencari tempat fisik untuk bertemu. Meskipun anda dapat melakukannya di cafe (atau selama jam istirahat di sebuah tempat makan, yang mana umumnya luas), namun akan lebih baik jika anda memiliki tempat yang privat. Sebuah papan tulis dan proyektor adalah fisilitas yang ideal. Tanyakan pada calon anggota, terutama para pengembang, untuk menanyakannya di tempat mereka bekerja. Hubungi perusahaan IT lokal. Jika mereka telah mendukung Haskell atau bahasa fungsional lainnya, mereka mungkin akan lebih tertarik. Atau cari sekitaran tempat di Meetup untuk mempelajari dimana kelompok lain melakukannya. Saya menyarankan anda memiliki tempat cadangan, jika memungkinkan, dalam hal tempat utama anda tiba-tiba menjadi tidak dapat digunakan.
Jadwal
Begitu anda menemukan tempat untuk berkumpul, anda dapat merancang halaman info untuk Meetup (jika anda menggunakannya) dan tetap pada jadwal. Saya menyarankan agar anda bertemu paling sedikit 1 minggu sekali jika anda ingin membuat kemajuan yang berarti. Ini adalah contoh halaman dari kelompok belajar saya di New York.
Cara Belajar dan Kurikulum
Repo ini mengandung This repo contains kumpulan panduan dasar yang terpisah, termasuk kurikulum 12 minggu yang direkomendasikan sebagai 18 Bab awal dari Haskell Book, yang mana anda akan gunakan untuk kelompok belajar anda. Saya sangat menyarankan anda untu mengimplementasikan secara sederhana panduan ini sebagaimana adanya dan tahan keinginan untu "mempermudahnya". Panduan ini terbukti bekerja. Tentunya, anda harus menambahkan setiap rincian yang sesuai dengan keadaan anda. Sebagai contoh, halaman Meetup anda sendiri dan/atau channel Slack.
Akan atau tidaknya anda menambah kurikulum adalah terserah pada anda. Pertama kalinya saya menjalankan sebuah kelompok belajar, kami melewait seluruh buku, satu bab seminggu (satu dari beberapa bab yang panjang kami bagi selama dua minggu). Saya tidak lagi merekomendasi pendekatan tersebut, pasalnya sangat susah untuk mengajak orang untuk komitmen pada pertemuan mingguan selama 39 minggu berturut-turut. Saya menyarankan untuk anda memulai dengan 12 minggu atau berapapun yang anda rasa pantas untuk memenuhi 18 bab pertama dari buku ini, yang mana anda akan sampai pada bahasan monad. 18 Bab itu mencakup material untuk tingkat Pemula. Jika ada keinginan untuk melanjutkan kelompok belajar, anda dapat melanjutkannya dan memenuhi materi lanjutan. Sangat disarankan juga untuk mengharapkan peserta untuk mendapatkan kompetensi cukup dan disiplin untuk membaca materi ini sendiri.
Sebagai tambahan dari saran dan sumber-sumber yang ada pada repo ini, Saya telah sebelumnya menuliskan tentang tata cara belajar yang pantas untuk kelompok belajar serupa di Medium:
Pertemuan pertama anda
Kamu akan pada dasarnya menarik perhatian sejumlah orang yang banyak pada pertemuan pertama. Sebagian dari mereka akan menjadi turis. Secara umum, anda dapat mengharapkan beberapa orang untuk RSVP setiap pertemuan ketimbang yang sebenarnya datang. Dan anda akan menemukan tingkat pengurangan dari waktu ke waktu. Namun, untuk pertemuan ini, lakukan penjelasan terbaik anda tentang tujuan adanya kelompok belajar dan bagaimana anda ingin menjalankannya. Anda dapat menanyakannya kepada saya jika mau, namun saya tidak akan melayani saran, pertanyaan umum seputar Haskell atau ingin mempertahankan Bahasa Pemrograman Fungsional dalam praktek.
Secepat mungkin, masuk pada latihan. Karena ini adalah pertemuan pertama, penjelasan umum tentang lambda calculus dapat berguna untuk mencairkan suasana, namun saya merekomendasikan untuk hanya memberikan pengenalan singkat dan temu sapa serta membagi beberapa orang kedalam kelompok kecil untuk melakukan pekerjaan rumah mereka, kecuali anda memiliki tingkat partisipasi yang kecil. Anda dapat membacakan jawaban secara kolektif setelah semua orang telah mendapat kesempatan membagikan pekerjaan mereka. Hal ini sangat penting untuk menciptakan standarisasi kelompok di awal pertemuan.
Pertemuan selanjutnya
Kurang lebih, lakukan apa yang anda telah lakukan pada minggu pertama namun tanpa temu sapa. Pendatang baru harus secara mandiri mengejar ketertinggalan, karena anda tidak dapat terus menerus diganggu oleh orang yang tidak dapat datang dari awal. Dengan kata lain, jangan menjadi korban, tapi undang mereka untuk mengambil inisiatif pribadi menghubungi rekan mereka diluar pertemuan reguler untuk menutupi pekerjaan yang mereka lewatkan. Saya menemukannya berguna, ketika melakukan latihan secara kolektif, untuk meminta semua orang untuk menyingkirkan komputer mereka dan melakukannya lagi dengan cepat. Pengulangan sangatlah bermanfaat dan hal itu juga menimbulkan solidaritas di kelompok. Orang yang mengerjakan pekerjaan rumahnya akan tetap berusaha untuk mengingatnya sedikit sementara orang yang tidak akan dengan cepat melihat kesalahan cara mereka.
Anda dapat juga mempersiapkan sebuah file kerangka code yang akan diisi selama pertemuan. Disinilah sebuah proyektor sangat berguna. Ekstensi GHC InstanceSigs
sangat berguna untuk keperluan ini. Seperti biasa, anda harus membagi rata monitor anda antara PDF Haskell Book dan REPL dan/atau file kode anda. Pastikan anda memberikan setiap orang kesempatan untuk berkontribusi dalam meeting anda, termasuk (mungkin khususnya) yang enggan, memiliki personalitas yang kurang dominan dapat mulai mengambil alih. Sabar. Semangati. Bersenang-senanglah. Berbagi kudapan dan minuman setelahnya. Tetap terus melaju.
Ketentuan Pengajaran dan Peserta
Mengajar adalah sesuatu yang anda akan atau tidak menjadi lebih baik dengan latihan. Bagi kebanyakan koordinator kelompok belajar, anggapan terbaik anda adalah untuk berasumsi hanya sebagai koordinator dan tidak untuk mengajar (ya benar, mengajar). Anda akan cukup untuk memastikan bahwa pertemuan anda berjalan dengan baik. Untuk interaksi yang lingkupnya kecil, cobalah untuk mendengarkan dan bertemu dengan peserta didik sesuai dengan ketentuan mereka. Chris Done telah menulis sebuah tulisan blog yang menarik tentang hal tersebut. Saya secara penuh tidak teryakini akan keberhasilan dari sebuah metode Sokratik, tapi I pastinya setuju bahwa metode tersebut tidak produktif untuk memberikan jawaban atas masalah yang sulit.
Anda sebaiknya menentukan beberapa panduan kepada kelompok anda sebelumnya, sehingga partisipan setidaknya secara tidak langsung setuju untuk kooperatif dan baik. Recurse Center's social rules adalah tempat awal yang baik untuk memulai. Jika anda merasa butuh untuk memperluas formula saya, maka lakukanlah. Namun jangan pernah menjadikan aturan membuat anda tidak sopan atau, sebaliknya, memaksa anda melakukan tindakan yang bertolak belakang dengan penilaian terbaik anda.
Meneruskannya Kemudian
Setelah kelompok belajar anda telah selesai, apa kemudian? Anda dapat berpindah ke materi menengah atau atas. Lebih baik lagi, anda dapat memulai kembali dari awal. Komunitas ini perlu tambahan orang, dan akan selalu ada kebutuhan akan kelompok belajar yang ramah untuk pemula. Jika pengalaman anda seperti saya, anda akan menemukan banyak orang yang baru mengetahui kelompok belajar anda dan terlambat untuk bergabung. Jika anda tidak mau melakukannya lagi sendiri, solusi lain yang lebih baik adalah untuk menunjuk "lulusan" yang sukses pada kelompok belajar pertama anda untuk melakukan kedua kalinya. Dan seterusnya. Ini adalah yang paling sedikit mereka dapat lakukan untuk membayar kerja keras anda sebagai penyelenggara, ya kan?
Daftar kelompok belajar berikut telah mengadopsi atau terbiasa dengan format dan panduan yang diberikan dalam repo ini. Setiap kelompok dapat mendaftarkan pull request untuk ditambahkan kedalam daftar ini. Daftar berikut bukanlah sebuah dukungan atau penilaian.
Eropa
Amerika Utara
- haskell-lang.org - Portal yang mudah untuk ekosistem Haskell
- How to learn Haskell - Terjemahan memulai Haskell dari salah satu penulis Haskell Book
- School of Haskell - Beberapa pelajaran dari orang-orang di FP Complete
- A Haskell Study Syllabus - Juga dari FP Complete
- HaskellWiki - Sejumlah artikel dalam berbagai topik
- Typeclassopedia - Bagian dari HaskellWiki, referensi berguna
- Haskell WikiBook - Suplemen untuk HaskellWiki
- Haskell is easy - Koleksi daftar pustaka Haskell
- Haskell Libraries - Koleksi daftar, berikut tautan untuk latihan
- Haskell on Stack Overflow - Mungkin seseorang sudah menanyakan pertanyaan anda
- Haskell on Reddit
- How I Start: Haskell - Bagaimana memulai project Haskell
#haskell
and#haskell-beginners
- IRC channels on freenode