
Dalam posting terakhir saya mulai cerita tentang Sekolah 42, yang terkenal dengan sistem pendidikan revolusionernya: tidak ada guru, siswa sendiri memeriksa pekerjaan masing-masing, Anda tidak perlu membayar untuk studi. Di pos ini, saya akan berbicara lebih banyak tentang sistem pelatihan dan tugas apa yang dilakukan siswa.
Tidak ada guru, ada internet dan kawan-kawan. Pendidikan di sekolah didasarkan pada prinsip-prinsip kerja proyek bersama - pembelajaran peer-to-peer. Siswa tidak belajar buku teks apa pun, mereka tidak memberikan kuliah kepada mereka. Penyelenggara sekolah percaya bahwa semuanya dapat ditemukan di Internet, tanya teman atau siswa yang lebih berpengalaman dengan siapa Anda bekerja pada suatu proyek.
Tugas yang diselesaikan diperiksa 3-4 kali oleh siswa lain, sehingga semua orang dapat menjadi siswa dan juga seorang mentor. Tidak ada peringkat juga - Anda hanya perlu menyelesaikan tugas dengan benar dan lengkap. Bahkan jika itu dilakukan 90%, itu akan dihitung sebagai kegagalan.
Tidak ada peringkat, ada poin. Untuk mengecek proyek, Anda harus memiliki sejumlah poin - poin koreksi. Poin diperoleh dengan memeriksa pekerjaan rumah siswa lain. Dan ini adalah faktor pertumbuhan tambahan - Anda harus memahami berbagai tugas, terkadang melebihi tingkat pengetahuan Anda.
“Beberapa proyek adalah kosmos nyata, otak meledak darinya. Dan kemudian, untuk mendapatkan hanya satu poin koreksi, Anda harus berkeringat sepanjang hari, memahami kode. Suatu ketika saya beruntung, dan saya menerima sebanyak 4 poin dalam sehari - ini adalah kesuksesan yang jarang , ”kata teman saya, mahasiswa Sergei.
Duduk di sudut tidak akan berhasil. Proyek dilakukan sendiri dan berpasangan, dan dalam kelompok yang lebih besar. Mereka selalu dilindungi secara pribadi, penting bahwa semua anggota kelompok mengambil bagian aktif, dan bahwa setiap orang memahami kode dan sangat termotivasi. Diam dan duduk di sini tidak berhasil. Dengan cara ini, sekolah memompa kerja tim dan keterampilan komunikasi yang sukses. Dan selain itu, semua siswa mengenal satu sama lain dan berkomunikasi satu sama lain, yang sangat berguna untuk jejaring dan karir masa depan.
Gamifikasi Seperti dalam permainan komputer, siswa naik ke atas dan memantau kemajuan mereka dengan bantuan Grafik Suci - kartu "suci", yang dengan jelas menunjukkan seluruh jalur yang dilalui dan akan datang. Seperti dalam "pengalaman" RPG yang diperoleh untuk proyek-proyek, dan setelah mengumpulkan jumlah tertentu, transisi ke tingkat baru dibuat. Kemiripan dengan game sebenarnya juga terletak pada kenyataan bahwa setiap level baru lebih rumit dari yang sebelumnya, ada semakin banyak tugas.

Kaca dan Laks. Sekolah memiliki dua divisi utama - Bokal (teknisi) dan Adm (administrasi). Glass - menangani masalah teknis dan komponen pedagogis, sementara Adm - dengan masalah administrasi dan organisasi. Cadangan staf Glass / Adm diisi kembali dengan mengorbankan siswa yang magang di Sekolah.
Bagaimana dan apa yang diajarkan di sini
Semuanya dimulai dengan "C". Sekolah hanya menggunakan Unix, mengingat Windows bukan pilihan terbaik. Kode diajarkan dari dasar-dasar yang sangat, memaksa untuk memahami logika pemrograman. Beberapa level pertama, semua proyek hanya dilakukan dalam C dan C ++, IDE tidak digunakan. Siswa menggunakan kompiler gcc dan editor teks vim.
“Dalam kursus lain Anda akan diberikan fungsi, diminta untuk menyelesaikan suatu proyek, dan hanya kemudian akan dijelaskan bagaimana mereka diprogram. Di sini Anda tidak dapat menggunakan fungsi sampai Anda menulisnya sendiri. Pada awalnya, ketika masih di "kolam", saya tidak mengerti mengapa saya membutuhkan malloc ini, mengapa saya harus mengalokasikan memori sendiri, mengapa saya tidak belajar Python dan Javascript. Dan tiba-tiba itu datang kepada Anda, dan Anda mulai memahami bagaimana komputer berpikir. "
Normineut. Setelah perlindungan berhasil, semua proyek diunggah ke mitra GitHub setempat. Tetapi sebelum itu, mereka harus lulus pemeriksaan kepatuhan kode dengan program Norminette.
“Jika kodenya berfungsi dengan baik, tetapi ada kebocoran memori, maka proyek tersebut dianggap gagal. Juga memeriksa sintaksis. Kami memiliki daftar fungsi, atribut, bendera yang dilarang, dan penggunaannya sama dengan curang. Anda harus melakukan semuanya dengan tangan Anda sendiri dan dengan sangat hati-hati , ”kata Sergey.

Contoh tugas
Semua tugas yang dilakukan oleh siswa diperiksa dalam tiga cara: secara terprogram, dengan daftar periksa oleh siswa lain dan perwakilan dari Glass. Berikut adalah beberapa proyek yang dilakukan secara independen dan diperiksa sesuai dengan daftar periksa:
Init (Sistem dan Administrasi Jaringan) - Anda perlu menginstal sistem operasi Debian pada mesin virtual dan mengkonfigurasinya sesuai dengan persyaratan yang ditentukan dalam tugas.
Libft - mengimplementasikan fungsi perpustakaan standar dalam C, seperti: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
, dll. Tidak ada perpustakaan pihak ketiga, semua dengan tangan Anda sendiri. Anda menulis tajuk sendiri, Anda menerapkannya sendiri, Anda membuat Makefile
sendiri, Anda mengompilasinya sendiri.
Printf - perlu untuk mengimplementasikan sepenuhnya fungsi printf
standar dengan semua argumennya dalam C. Ini cukup sulit bagi pemula.
Fillit - perlu mengumpulkan kuadrat dari area minimum dari daftar tetramino yang datang ke pintu masuk. Pada setiap langkah baru, tetramino baru ditambahkan. Tugas ini diperumit oleh kenyataan bahwa perhitungan harus dilakukan dalam C dan untuk waktu minimum.
Libls - laksanakan versi ls
dengan semua flag standarnya. Anda dapat dan harus menggunakan pencapaian dari tugas-tugas sebelumnya.
Rheshes
Selain tugas yang dilakukan sendiri, ada kategori tugas yang dilakukan oleh sekelompok siswa - terburu-buru. Tidak seperti proyek independen, terburu-buru tidak diperiksa oleh siswa pada daftar periksa, tetapi oleh staf sekolah dari Bokal.
Pipex - program input menerima nama file dan perintah shell sewenang-wenang, siswa harus menunjukkan kemampuan untuk bekerja dengan pipa di tingkat sistem dan menerapkan fungsi yang identik dengan perilaku reguler sistem di terminal.
Minitalk - mengimplementasikan aplikasi client-server di C. Server harus dapat mendukung banyak klien dan mencetak pesan yang dikirim oleh klien menggunakan sinyal sistem SIGUSR1 dan SIGUSR2.
Beku - tulis server IRC di Golang, yang dapat bekerja dengan beberapa klien secara bersamaan, menggunakan konkurensi dan goroutine. Klien harus dapat masuk menggunakan nama pengguna dan kata sandi. Server IRC harus mendukung banyak saluran.
Kesimpulan
Siapa pun dapat masuk Sekolah 42, dan Anda tidak perlu memiliki pengetahuan khusus untuk melakukan ini. Terlepas dari kenyataan bahwa program ini dirancang untuk pemula, tugas-tugas sederhana dengan cepat digantikan oleh tugas-tugas non-sepele, seringkali dengan formulasi fuzzy. Siswa diminta untuk memberikan dedikasi maksimal, kemampuan untuk mencari informasi yang hilang dalam dokumentasi resmi dalam bahasa Inggris, dan juga bersatu dengan siswa lain untuk menyelesaikan tugas. Program pelatihan tidak memiliki urutan yang ketat, sehingga semua orang memilih jalur pengembangan untuk dirinya sendiri. Tidak adanya peringkat end-to-end memungkinkan Anda untuk berkonsentrasi pada kemajuan dan pengembangan Anda, dan tidak membandingkan diri Anda dengan orang lain.