![]() |
gambar via https://www.wikihow.com/
|
Ya karena Anda harus bisa berpikir berlapis-lapis. Dengan kata
lain, abstraksi.
Ini menyebabkan belajar bahasa pemrograman itu sangat sulit. Membuat
sintaks tidak sulit dan membuat program dasar juga tidak sulit. Misalnya,
permainan Tic Tac Toe (Naughts and Crosses) dianggap sebagai awal yang “baik”
untuk pemula. Nasihatnya selalu sama ketika seseorang dipandu untuk
membuat permainan Tic Tac Toe. Itu selalu dimulai dengan sesuatu seperti
"isi kotak pada layar, lalu lakukan ini, kemudia lalukukan itu..."
ketika benar, Anda tidak akan membuat permainan Tic Tac Toe mengikuti saran
ini. Anda butuh sesuatu yang lain.
Sesuatu yang lain adalah yang sulit. Saya telah menemukan ratusan video di Internet yang disebut "bagaimana cara berpikir seperti seorang pemrogram?" dan hampir semuanya berbicara tentang betapa mudahnya menulis sintaks.
Saya setuju, bahasa pemrograman mudah. Apa
yang sulit dipelajari dari daftar di bawah ini?
- Variabel
- Loop
- Function
- Class
- Inheritance
- Interface
- Struct
- dll ...
Tidak ada dalam daftar di atas yang sulit, semuanya
sangat sederhanakan jadi mengapa belajar bahasa pemrograman sulit? apanya yang
sulit?
Bayangkan dua lingkaran, lingkaran luar dan
lingkaran dalam.
Lingkaran luar mewakili proses pemikiran umum
pemrograman sedangkan lingkaran dalam mewakili apa yang semua orang ajarkan dan
pelajari.
Ide umum (lingkaran luar) berisi lingkaran dalam tetapi lebih dulu melompat ke lingkaran dalam daripada melihat lingkaran luar. Apa ide umum disini?
Ide umum merupakan cara mengetahui apa yang harus dilakukan sebelum masuk ke lingkaran dalam. Jadi kita semua tau variabel, loop, dan function-nya, tetapi tidak tau cara menggunakannya.
Menggunakan Tic Tac Toe sebagai contoh lagi, saya perlu melihat bagaimana mendapatkan X dan O ke grid, saya harus memeriksa siapa yang menang, saya harus melacak putaran pemain, apa yang terjadi jika ini seri? Bagaimana cara memberi tau komputer?
Inilah masalah sebenarnya. Ini yang sulit. Kita perlu tau bagaimana membangun sesuatu dengan benar dan teratur. Jadi saya punya kisi-kisi/kotak-kotak (grid) di layar tetapi bagaimana saya membangun ke kisi itu?
Apa yang terjadi selanjutnya?
Pemula mulai frustrasi, mereka mungkin menyerah
atau melanjutkan. Jika mereka melanjutkan mereka mungkin akan melakukan segala
sesuatu dalam urutan yang salah dan harus kembali dan mengubah kode sebelumnya
agar sesuai dengan kode terbaru dan akhirnya banyak bergerak bolak-balik.
Ada yang bilang algoritma membantu. Ya, algoritma sangat membantu dalam membangun proses pemikiran berurutan tetapi dalam konteks permainan? Ini berbeda. Seorang pemrogram perlu menyesuaikan proses pemikirannya dengan tugas yang ada.
Kita perlu belajar cara membangun balok. Jadi saya sudah melakukan langkah 1 (mendapatkan grid ke layar) tetapi saya perlu langkah 2 Bagaimana langkah 2 terhubung ke langkah 1? Bagaimana saya bisa bergerak secara logis dari langkah 1 ke langkah 2, lalu ke langkah 3 dan seterusnya? Ada yang bilang bangun UI dulu baru kode, ada yang bilang kode dulu baru fokus ke UI.
Jika dapat mengaturnya untuk mengajar dan belajar bagaimana secara logis berpindah dari satu langkah ke langkah lain, kami telah memecahkan masalahnya.
Saya belum menemukan apa pun yang mengajarkan itu. Tidak ada. Bagian ini jelas merupakan bagian yang paling sulit dalam pemrograman, untuk saya juga. Jika Anda mencari di Google untuk tutorial Tic Tac Toe Anda akan melihat pemrogram membangun permainan dengan cara mereka, cara yang cocok untuk mereka, yang baik-baik saja, tetapi ketika video disebut "Cara membuat permainan Tic Tac Toe" itu adalah agak menyesatkan karena saya tidak belajar bagaimana membangun permainan Tic Tac Toe. Saya belajar bagaimana membangun permainan Tic Tac Toe dengan cara Anda.
Siapa di luar sana yang mengajari orang-orang cara membuat balok tanpa jatuh ke dalam lingkaran sintaksis?
Saya percaya pemrograman dapat memiliki satu model pemikiran umum yang dapat diterapkan untuk semua skenario. (Ini mungkin pernyataan pemula yang naif tidak yakin). Jika seseorang berhasil membuat model itu dan memberikannya kepada orang-orang, pemula akan bersenang-senang pemrograman. Hal terdekat yang dapat saya pikirkan adalah algoritma tetapi algoritma berada dalam konteks algoritma tertentu. Jadi sekali lagi, kita perlu mengambil algoritma tersebut dan entah bagaimana melatih otak kita untuk membentuk algoritma untuk tugas yang dihadapi. Kesulitan tetap ada. Tidak hanya untuk pemula tetapi juga untuk seorang pemrogram yang berpengalamanpun. Setiap orang mengalami kesulitan hanya saja pada tingkat yang berbeda.
Tic Tac Toe bagi saya adalah sesuatu yang logis
seperti ini:
1. Dapatkan kotak 3 x 3 ke layar
1. Dapatkan kotak 3 x 3 ke layar
2. Tambahkan tombol
ke setiap kotak ke kotak
Di sini, saya telah secara logis pindah dari kisi ke tombol tetapi bagaimana saya bisa pindah dari tombol ke langkah berikutnya? Ketika saya mengklik tombol apa yang harus muncul? Siapa yang akan mengklik tombol?
3. Buat satu pemain
4.
Buat dua pemainDi sini, saya telah secara logis pindah dari kisi ke tombol tetapi bagaimana saya bisa pindah dari tombol ke langkah berikutnya? Ketika saya mengklik tombol apa yang harus muncul? Siapa yang akan mengklik tombol?
3. Buat satu pemain
Jadi saya punya kotak dan itu bisa diklik. Saya punya pemain sekarang apa?
6. Tetapkan O ke pemain 2
Jadi sekarang saya memiliki kotak yang dapat diklik, saya memiliki pemain saya
dan masing-masing pemain saya memiliki simbol mereka sendiri. Jadi pemain yang
pertama, klik tombol dan menunggu pemain 2 untuk melakukan hal yang sama. Ini
tidak akan berhasil.
7.
Buat logika "putar" sehingga ketika pemain 1 bermain, pemain 2 harus bermain
setelahnya.
Jadi, pemain 1 diklik dan mendapat tanda X pada tombol yang diklik. Klik berikutnya haruslah pemain 2 dan ketika pemain itu mengklik kita harus mendapatkan O di layar. Dari atas kepala saya, saya tidak tau bagaimana melakukan ini. Jika saya memiliki model di kepala saya, saya akan tau. Jadi bagaimana saya bisa secara logis pindah ke langkah ini dari yang sebelumnya?
Di setiap klik, saya akan membutuhkan sesuatu yang diperhitungkan. Jadi,
ketika pemain 1 mengklik, saya akan
memiliki variabel yang bertambah satu. Sekarang apa? Klik pemain 1 dan variabel
saya sekarang berubah dari 0 menjadi 1. Sekarang apa? Bagaimana saya bisa
secara logis beralih ke giliran pemain 2?
Saya tidak tau ini, saya harus memikirkannya. Jadi inilah bagian
tersulit dalam pemrograman. Kita tentu dapat menggunakan Google untuk sintaksis
tetapi Google tidak akan memikirkannya untuk kita. Saya sangat terkejut bahwa
tidak ada tutorial diluar sana yang berfokus pada ini. Faktanya, mereka semua
menampilkan ini, tetapi mereka tidak membiarkan pelajar tau bahwa ini yang
penting. Mereka hanya memiliki IDE didepan mereka yang membuat pembelajar fokus
secara visual pada sintaks dan bukan pada logika di belakangnya.
Tutor, kami perlu belajar bagaimana Anda berpikir. Mengapa Anda pindah ke
langkah khusus ini dari yang sebelumnya? Koneksi apa yang ada di otak Anda
antara langkah 1 dan langkah 2? Bagaimana menurutmu? Apa metodemu?
Penutup
Pemrograman sulit karena terpusat di sekitar blok bangunan yang terhubung secara logis satu sama lain. Tidak ada yang benar-benar fokus pada konsep ini dan yang tidak cukup menampilkannya untuk dipelajari oleh pelajar. Jadi pelajar perlu menghabiskan waktu yang sangat lama untuk menulis program dan berharap bahwa pada titik tertentu, mereka memahami "aliran" atau "pergerakan" kode dalam suatu program sehingga mereka pada akhirnya dapat berdiri sendiri dengan dua kaki. Itu tidak ada hubungannya dengan sintaksis tetapi semuanya ada hubungannya dengan proses pemikiran yang mendahuluinya.
Karena itu belajar program itu sulit.
translate en www.quora.com

