Dasar-Dasar Kode: Tutorial Pemula Gratis

Halo, Habr! Kami di Hexlet meluncurkan tahun ini proyek terbuka dan gratis untuk pemula: code-basics.ru . Ini adalah kursus latihan interaktif bagi mereka yang belum pernah memprogram sama sekali. Kami mengajarkan dasar-dasar pemrograman dan berbicara tentang desain dasar komputer.


Kursus PHP yang lengkap dan modul JavaScript pertama sekarang tersedia. Di jalan Racket dan Python. Seluruh kode sumber platform dan pelajaran itu sendiri dalam open source.


Hari ini saya ingin memberi tahu sedikit tentang esensi Dasar-Dasar Kode, bagian dalamnya dan tumpukan teknologi.



Kenapa itu sama sekali


Pertanyaan utama: "mengapa Anda membutuhkan kursus dasar reguler, satu juta darinya?" Sayangnya, sebagian besar materi yang tersedia lebih seperti panduan atau tutorial reguler dengan gaya "lakukan, lihat di sini, ini berfungsi, itu keren, kan?".


Dalam proses mengerjakan program pelatihan utama di Hexlet, kami menemui masalah: jika seseorang memulai sepenuhnya, sepenuhnya dari awal, tidak mengetahui variabel dan fungsi apa, maka kursus dasar atau tutorial dasar tidak hanya tidak dapat membantunya, tetapi bahkan membahayakannya. Seorang pemula akan dengan mudah terbiasa dengan "sihir", bukan standar pengkodean terbaik, dengan pendekatan menghafal spesifik alih-alih memahami sistem.


Pada pandangan pertama, proyek ini mungkin menyerupai Codecademy, tetapi ada tiga perbedaan penting:


1. Pelajaran dalam bahasa Rusia. Kami mulai dengan PHP, termasuk untuk alasan ini - tidak ada pelajaran bahasa Rusia berkualitas tinggi, interaktif dan gratis, dan bahasanya tetap populer dan penting dalam industri ini.


2. Kami tidak mengajar secara dangkal. Ini adalah dilema abadi - di satu sisi, Anda perlu membahas banyak hal dan minat akan luasnya (dan “kata-kata populer”), di sisi lain, kami di Hakeslet terus mengikuti prinsip kami tentang pentingnya fondasi dan pemahaman sistem, bukan fitur. Lebih mudah dipahami dengan contoh:


a) Kami mempertimbangkan efek samping dan variabilitas - ini sangat penting, tetapi hampir tidak ada yang menyentuh topik ini dalam kursus dasar.


b) Mengenai string, penting untuk berbicara tentang konsep encoding . Untuk bekerja dengan simbol tidak berubah menjadi "kata-kata ajaib dan ajaib."


c) Ketika menjadi jelas bahwa bahasa memungkinkan Anda untuk melakukan hal-hal aneh seperti 1 + '7' , penting untuk memperkenalkan siswa untuk mengetik dan, khususnya, untuk mengetik yang lemah .


d) Ketika basis dilewatkan dan beberapa bagian berbeda muncul pada baris kode yang sama pada saat yang sama, sangat penting bahwa orang tersebut segera memahami apa ekspresi itu dan bagaimana hal itu berbeda dari instruksi. Dan bagaimana ekspresi dapat terkandung dalam definisi .


e) Ketika bekerja dengan fungsi dimulai, akan berguna untuk terus mempertimbangkan ekspresi, tetapi sudah dalam konteks panggilan, pengembalian, dan argumen.


Saya pikir Anda mengerti maksudnya. Kami programmer tidak terlalu memikirkan hal-hal seperti foo(a+b) atau return foo(x) , tetapi untuk pemula sangat sering konstruksi seperti itu ternyata jauh lebih rumit daripada foo(a) standar foo(a) atau return x . Dan di sini Anda dapat melihat semua kasus individu, tetapi lebih baik untuk menjelaskan esensi , sistem aturan dasar bahasa pemrograman.


Konten bersifat granular dan disajikan berurutan, secara bertahap meningkatkan kedalaman. Misalnya, fungsi dan ekspresi yang sama dibagi menjadi beberapa pelajaran, di mana kami mempertimbangkan berbagai aspek, secara bertahap menggabungkannya ke dalam gambaran besar.


3. Gratis dan interaktif. Kami membuat Kode-Dasar juga karena tidak ada tempat untuk mengirim pemula yang sedang mempersiapkan program utama kami, "Profesi pengembang PHP". Tidak ada kursus online gratis! Lebih tepatnya, sekarang ada :)



Fitur penting lainnya:


  • Kami mengajarkan Anda untuk menyebutkan fungsi dengan benar dan mengikuti standar pengkodean.
  • Kami berbagi pengalaman dan praktik terbaik kami.
  • Dalam setiap latihan ada keputusan guru, yang tersedia setelah keputusan independen atau setelah setengah jam mencoba :) Pada saat yang sama, keputusan Anda dapat dibandingkan dengan keputusan guru di satu halaman.
  • Setiap pelajaran dapat didiskusikan dengan siswa lain. Kami mencoba membersihkan diskusi dari "spoiler"
  • Quests dibangun di sekitar Game of Thrones :) (lihat layar di atas, misalnya)

Otorisasi, memungkinkan Anda untuk mengakses latihan dan menyimpan kemajuan pelajaran, sejauh ini hanya melalui Github. Kami mengambil kesempatan ini untuk memprovokasi pendatang baru untuk membuat akun di Github sesegera mungkin :)


Di bawah tenda


Hakeslet ditulis di Rails. Kami menulis tentang bagian dalam Hakeslet tiga tahun lalu (omg, tiga tahun!) Dalam artikel " Di Bawah Terpal Proyek Pendidikan Hakeslet ", dan sejak itu banyak yang telah berubah, tetapi pada dasarnya semuanya sama: Rails, PostgreSQL, semuanya berputar pada AWS dan sebagian lagi pada Azure , digunakan secara aktif buruh pelabuhan, penyebaran dan orkestrasi melalui Ansible. Di bawah setiap latihan dari setiap pengguna, sebuah wadah naik, yang memungkinkan Anda untuk melakukan latihan dari hampir semua kompleksitas: dengan kerangka kerja, server dan akses web.


Code-Basics awalnya memutuskan untuk mencoba sesuatu yang baru dan lebih ringan daripada Rails. Sebagai contoh, nodejs + typescript + beberapa microframework. Tetapi, lebih disukai, tidak kurang ekspresif dari Rails. Mengingat cinta kami pada Erlang, pilihan secara alami jatuh di Phoenix , terutama karena gatal adalah waktu yang lama untuk mencoba Elixir.


Kerangka kerja itu secara tak terduga terkejut. Meskipun jumlah fitur yang secara signifikan lebih kecil, itu dibuat sangat nyenyak. Integrasi dengan JavaScript, infrastruktur uji coba yang dikembangkan, ORM yang sangat baik (tetapi tidak biasa, Anda harus terbiasa dengannya), banyak mitra kereta api (misalnya, dukungan untuk slim atau gon).


Bahkan ada satu hal yang dilakukan jauh lebih baik daripada dalam kerangka kerja lain: membuat seperangkat middleware untuk rute tertentu atau sekelompok rute. Bahkan jika Anda tidak akan menggunakan phoenix, kami sarankan Anda berkenalan dengan pipa .


Dan mengingat kehadiran aktor (dan saluran yang dibuat sebelumnya di Phoenix), kita dapat dengan jelas mengatakan bahwa Elixir mengungguli Node JS di hampir semua situasi. Dan hal-hal lain dianggap sama, kita akan memilih Phoenix untuk pengembangan.



Di bagian depan - kami menggunakan React + Redux. Layout dibangun di Bootstrap 4, seperti semua situs kami (hexlet.io, guides.hexlet.io). Editor untuk latihan interaktif menggunakan Monako , yang merupakan dasar dari VS Code. Kami juga beralih ke Monako di Hexlet sendiri.


Infrastruktur dan penyebaran adalah Terraform, Ansible, dan banyak jalan pintas untuk tim paling populer. Sumber-sumber Code Code tersedia di Github , dan kami menerima permintaan pull.


Pelajaran dan latihan praktis sendiri juga . Termasuk kami menerima permintaan tarik untuk menerjemahkan pelajaran ke dalam bahasa Inggris. Sejauh ini, sejumlah pelajaran bahasa Inggris terbatas tersedia di sini .


Siapa yang Harus Menggunakan Dasar-Dasar Kode


  • Pemula dengan nol pengalaman.
  • Pemrogram pemula yang "berenang" sedikit dalam topik dasar dan tidak sepenuhnya memahami bagaimana hal-hal bekerja yang melampaui contoh sederhana dari buku teks.
  • Guru bekerja dengan pemula.

Paket


Kursus Kode-Dasar berikut adalah JavaScript, Racket, dan Python. Sekarang ada 63 pelajaran dalam PHP dan tak lama lagi beberapa akan dirilis: pada fungsi perpustakaan, bekerja dengan tanggal dan waktu, dan unicode. JavaScript memiliki modul pertama, dan konten untuk sebagian besar akan mirip dengan PHP: semuanya dari aritmatika hingga fungsi.


Rencana selanjutnya termasuk terjemahan ke dalam bahasa Inggris. Anda dapat membantu dengan ini :) Semua kursus Dasar-Dasar Kode ini juga akan sepenuhnya gratis.


Kami akan dengan senang hati menjawab pertanyaan Anda di komentar. Terima kasih

Source: https://habr.com/ru/post/id415301/


All Articles