Saya ingin berbicara dengan Anda tentang mengapa kami memperbaiki pipa ledeng lebih sering daripada menulis disertasi tentangnya, tentang berbagai pendekatan dalam pengajaran pemrograman dan bagaimana kami mencoba menerapkan salah satunya pada produk Hyperskill baru kami.
Jika Anda tidak suka perkenalan panjang, lewati langsung ke bagian pemrograman. Tapi itu akan kurang menyenangkan.

Penyimpangan liris
Mari kita bayangkan seorang wanita muda Masha. Hari ini, Masha akan mencuci dirinya dengan buah-buahan dan menonton film dengan tenang, tapi ini nasib buruk: tiba-tiba dia menemukan wastafel di dapur tersumbat. Apa yang harus dilakukan dengan ini belum jelas. Anda dapat menunda masalah ini tanpa batas, tetapi sekarang ada waktu luang, jadi Masha memutuskan untuk segera menyelesaikan masalahnya. Akal sehat menyarankan dua pilihan: a) memanggil tukang ledeng b) mengatasinya sendiri. Wanita muda itu memilih opsi kedua dan mulai mempelajari instruksi di YouTube. Atas saran Vasya_the_plumber, Masha melihat ke bawah wastafel dan melihat pipa plastik mengular dari beberapa bagian. Gadis itu dengan hati-hati membuka satu bagian di dasar bak cuci dan tidak menemukan apa pun. Sepotong pipa di bawah tersumbat dengan zat yang tidak dikenal, dan bahkan garpu yang ditemukan di atas meja tidak dapat mengatasi penyumbatan. Para ahli dari Internet memberikan perkiraan yang mengecewakan: bagian itu harus diubah. Di peta, Masha menemukan toko terdekat, membawa sebatang pipa yang malang bersamanya dan membeli yang sama, hanya yang baru. Atas saran penjual, Masha juga mengambil saringan baru untuk pencegahan. Pencarian selesai: wastafel berfungsi sebagaimana mestinya lagi, dan karakter utamanya, sementara itu, menemukan yang berikut:
- Pipa-pipa di bawah bak cuci bisa lepas dan berputar sendiri;
- Toko pipa terdekat adalah satu setengah kilometer dari apartemen mobil.
Kemungkinan besar, Masha bahkan tidak memperhatikan berapa banyak yang baru dia pelajari dan apa yang dia pelajari, karena dia khawatir tentang kenyamanannya sendiri di masa depan, dan pada saat yang sama pemutaran film dan apel yang dicuci. Lain kali, ketika masalah yang sama muncul, gadis itu akan menyelesaikannya berkali-kali lebih cepat. Bahkan, Masha tidak hanya mengembalikan dunia ke keadaan biasanya; dia belajar secara
induktif , yaitu, pada acara-acara khusus, dan
berorientasi pada praktik , yaitu melakukan hal-hal, dan tidak mempelajarinya secara terperinci dan di muka.
Segalanya bisa berubah secara berbeda. Misalkan Masha duduk di kursi berlengan di malam hari dan tiba-tiba menyadari bahwa dia secara mental dan fisik tidak siap untuk tersumbat di wastafel. Dia buru-buru memasuki akademi pipa ledeng, mempelajari jenis-jenis bak cuci, pipa dan kemungkinan koneksi, klasifikasi masalah dengan pipa ledeng dan kemungkinan solusi. Masha tidak tidur di malam hari, mengingat istilah dan nama. Mungkin dia bahkan menulis gelar Ph.D dalam ilmu pipa teoritis, di mana dia berbicara tentang bantalan karet. Akhirnya, setelah menerima sertifikat, Masha dengan bangga mensurvei dapur dengan penuh keyakinan bahwa sekarang bahkan masalah kecil dengan bak cuci akan diselesaikan dengan satu jari. Dalam skenario ini, gadis itu belajar secara
deduktif , bergerak dari umum ke khusus, dan lebih fokus pada
teori .
Jadi pendekatan mana yang lebih baik? Dalam kasus wastafel dan penyumbatan - yang pertama, dan di sini untuk alasan apa:
- Jika hanya wastafel yang penting, maka itu sudah cukup untuk mengetahui hanya apa yang menjadi perhatian bidang khusus ini. Ketika Masha menyadari bahwa tidak ada cukup pengetahuan, dia pasti akan menemukan cara untuk belajar lebih banyak.
- Kecerdasan ensiklopedis mungkin tidak hidup dalam situasi nyata, karena kebiasaan belum berhasil. Untuk mempelajari urutan tindakan, masuk akal untuk tidak membaca tentang mereka, tetapi untuk melakukan.
Mari kita tinggalkan Masha yang malang sendirian dan beralih ke proses belajar.
Pemrograman: belajar atau melakukan?
Kami terbiasa berpikir bahwa untuk mengembangkan dan menjadi ahli dalam bidang yang tidak dikenal, Anda harus terlebih dahulu kuliah atau setidaknya mendaftar untuk kursus. Kami secara teratur mendengarkan apa yang dikatakan, dan kami melaksanakan tugas. Ketika ijazah atau sertifikat berharga ada di tangan, kita langsung tersesat, karena kita masih tidak mengerti mengapa kita membutuhkan begitu banyak informasi dan cara menerapkannya secara khusus. Ini bukan masalah jika rencananya adalah untuk menulis karya ilmiah dan bepergian bersama mereka ke konferensi. Kalau tidak, perlu berjuang untuk keterampilan, yaitu melakukan dan melakukan hal-hal tertentu lagi, mencoba dan membuat kesalahan, untuk waktu yang lama untuk mengingat cara terbaik untuk tidak melakukannya.
Salah satu bidang di mana "tangan penuh" atau "mata-berlian" mendekati keluasan pikiran adalah pemrograman. Jika Anda berbicara dengan pengembang berpengalaman, Anda akan mendengar cerita bagus di mana seseorang dari usia muda terlibat dalam matematika / fisika / pengajaran, dan kemudian dia menjadi lelah dan beralih ke backend. Akan ada programmer tanpa pendidikan tinggi! Pertama-tama, pengembang tidak menghargai sertifikat, bukan diploma, tetapi kuantitas dan kualitas program, skrip, dan situs tertulis.
"Tapi tunggu!", Anda keberatan, "Kedengarannya indah - ambil dan lakukan! Saya tidak dapat dengan mudah menulis program untuk diri saya sendiri jika saya belum memprogramnya sebelumnya (a)! Penting bagi saya untuk memahami di mana harus menulis, bagaimana berbicara bahasa pemrograman dengan kompiler pada prinsipnya "Ini bukan telepon ledeng di google untuk ditemukan."
Kebenaran pahit dalam hal ini. Salah satu aspek yang tidak dikenal menarik yang lain, yang, pada gilirannya, adalah yang ketiga, dan segera proses ini berubah menjadi pertunjukan pesulap, yang terus menarik saputangan yang diikat dan tidak mengeluarkannya dari silinder. Sejujurnya, prosesnya tidak menyenangkan, pada sapu tangan ke-5 sepertinya kedalaman ketidaktahuan dekat dengan Palung Mariana. Alternatif untuk ini adalah kuliah yang sama tentang 10 jenis variabel, 3 jenis loop dan 150 perpustakaan yang berpotensi bermanfaat. Menyedihkan.
Hyperskill: kami membangun, membangun dan akhirnya membangun
Kami memikirkan masalah ini untuk waktu yang lama. Tentang berapa lama kita berpikir, fasih berbicara tanggal posting terakhir di blog kita. Setelah semua perdebatan dan upaya untuk mengintegrasikan pendekatan baru di Stepik, kami mendapat ... situs lain. Anda mungkin sudah pernah mendengar tentang dia sebagai bagian dari Akademi JetBrains. Kami menyebutnya Hyperskill, dibangun dalam pembelajaran berbasis proyek di sana, mengikat basis pengetahuan Java, dan meminta dukungan dari tim EduTools. Dan sekarang lebih terinci.
Tujuan khusus. Kami menawarkan "menu" proyek, yaitu program yang dapat Anda tulis dengan bantuan kami. Diantaranya adalah tic-tac-toe, asisten pribadi, blockchain, mesin pencari, dll. Proyek terdiri dari 5-6 tahap; hasil dari setiap tahap adalah program yang selesai. "Mengapa kemudian seluruh tahapan, jika yang pertama sudah berhasil semuanya?" Terima kasih untuk pertanyaannya. Dengan setiap langkah, program menjadi lebih fungsional atau lebih cepat. Pada awalnya, kode membutuhkan 10 baris, pada akhirnya, mungkin tidak muat dalam 500.
Sedikit teori. Tidak mungkin untuk duduk dan, tanpa mengetahui sepatah kata pun tentang pemrograman, bahkan menulis Hello World. Oleh karena itu, pada setiap tahap proyek, Anda melihat dasar-dasar teoretis apa yang harus Anda kuasai dan, yang paling penting, di mana mendapatkannya. Dasar-dasarnya juga terletak di Hyperskill di bagian "Peta Pengetahuan". Jika untuk tahap pertama proyek, siswa tidak diharuskan membaca data dari file, bahkan jika mereka tidak tahu bagaimana melanjutkan. Mereka kemudian akan mempelajarinya sendiri, untuk pengembangan umum, atau akan dibutuhkan pada tahap selanjutnya.
Peta pengetahuan. Ini menunjukkan topik mana yang telah Anda pelajari dan bagaimana mereka saling berhubungan. Buka topik cantik apa saja. Anda dapat mengatasinya dengan mata Anda, tetapi kami menyarankan Anda melakukan tugas-tugas kecil untuk memastikan bahwa informasi itu ada di kepala Anda. Pada awalnya, platform akan memberikan tes kepada Anda, setelah mereka - beberapa tugas pemrograman. Jika kode mengkompilasi dan lulus tes, kemudian membandingkannya dengan solusi sampel (solusi referensi), kadang-kadang membantu untuk menemukan cara yang lebih optimal untuk mengimplementasikannya. Atau pastikan bahwa keputusan Anda sangat indah.
Tidak lebih. Kami menunggu pengguna "hijau" dan pengembang berpengalaman. Jika Anda sudah memiliki program tertulis, itu tidak masalah, kami tidak akan memaksa Anda untuk melipat 2 + 2 lagi atau membalikkan garis. Untuk sampai ke tingkat yang tepat segera, saat pendaftaran, tunjukkan apa yang sudah Anda kenal, dan pilih proyek yang lebih rumit. Jangan takut untuk melebih-lebihkan diri Anda: jika ada, Anda selalu dapat kembali ke topik yang terlupakan di peta pengetahuan.
Alat Sangat bagus untuk menulis potongan-potongan kecil kode di jendela khusus di situs, tetapi pemrograman yang sebenarnya dimulai dengan bekerja di lingkungan pengembangan (
Saya ntegrated
D evelopment
E nviroment). Pemrogram berpengalaman tidak hanya tahu cara menulis kode, tetapi juga bagaimana membangun antarmuka grafis, merakit file yang berbeda menjadi sebuah proyek, menggunakan alat pengembangan tambahan, dan IDE menangani beberapa proses ini. Mengapa tidak mempelajari keterampilan ini saat Anda menguasai pemrograman? Di sinilah JetBrains datang untuk menyelamatkan dengan versi khusus IntelliJ IDEA Community Education dengan plugin EduTools yang sudah diinstal sebelumnya. Dalam IDE seperti itu, Anda dapat mengambil kursus pelatihan, memeriksa masalah yang diselesaikan dan mengintip tips proyek jika Anda lupa sesuatu. Jangan khawatir jika Anda pertama kali mendengar kata "plug-in" atau "IDE": kami akan memberi tahu Anda apa itu dan bagaimana cara menginstalnya di komputer atau laptop dengan penderitaan minimal. Pahami teorinya, lalu pergilah ke IDE dan selesaikan tahap proyek selanjutnya di sana.
Tenggat waktu Mereka tidak ada di sana! Siapa kita untuk mengetuk kepala dan menunjukkan pada kecepatan apa Anda menulis program. Ketika Anda suka menulis kode dan ingin menyelesaikannya sampai akhir, Anda menambahkannya, hari ini atau besok. Terlibat dalam pengembangan kesenangan Anda sendiri.
Kesalahan Semua dari mereka mengizinkan, Anda mengira Anda berada di salah satu tahap proyek, dan kemudian tahap ini tidak akan lulus tes otomatis. Nah, Anda harus mencari tahu sendiri apa yang salah. Kita dapat mengatakan di mana letak kesalahannya, tetapi apakah ini mengajarkan Anda untuk menulis kode dengan hati-hati? Baca tips dari IDEA atau topik teoretis tentang Bug, dan ketika program akhirnya bekerja, lonjakan dopamin kemungkinan besar tidak akan lama.
Hasil visual. Jadi, Anda sudah menyelesaikan proyek pertama, bagaimana selanjutnya? Gunakan hasil kerja! Mainkan tic-tac-toe bersama teman-teman Anda, dan pada saat yang sama membanggakan kesuksesan. Unggah proyek ke GitHub untuk menunjukkan perusahaan yang akan datang, tulis sendiri deskripsi, tunjukkan pengetahuan yang Anda gunakan di sana. 4-5 proyek kompleks, dan sekarang, portofolio sederhana untuk pengembang pemula siap.
Peluang untuk tumbuh. Misalkan Anda melihat Hyperskill dan tidak melihat topik penting atau proyek yang bermanfaat di sana. Beri tahu kami tentang itu! Jika latar belakang Anda lebih luas dan lebih kaya daripada peta pengetahuan, maka tuliskan kepada kami dalam formulir
Kontribusi . Tim kami akan membagikan kiat & triknya sendiri kepada Anda, jadi kami akan dengan senang hati membantu Anda mengubah pengetahuan Anda menjadi konten yang bermanfaat yang dapat dipahami oleh pengguna dari segala usia dan level. Mungkin kita bahkan akan membayar, tetapi itu tidak pasti.
Selamat datang:
https://hi.hyperskill.org/ Ayo, lihat, coba, sarankan, puji, dan tegur. Kami juga belajar mengajari Anda.