Develoka

Baca Artikel

  •     Lihat Daftar Artikel
  • Alasan kenapa banyak yang kesulitan belajar koding

    Nasihat untuk mereka yang mau jadi programmer

    by rmdwirizki — Posted on May 11, 2018

    Jika kamu bertanya pada lima orang programmer tentang gimana caranya belajar pemrograman, kemungkinan besar kamu bakal dapet lima jawaban yang berbeda. Salah seorang diantara mereka akan bilang dengan gampangnya "ya mulai koding aja, bikin aplikasi", sementara yang lainnya bakal ngasih daftar link video di youtube, postingan di blog atau website khusus belajar koding. Ada yang ngasih saran ikut bootcamp sampai kuliah di jurusan informatika.

    Sebenarnya jawaban tersebut tidak saling bertentangan karena tujuannya sama-sama untuk belajar koding, pilihan kamu sendiri mau belajar lewat jalur otodidak, jalur praktis atau jalur akademis. Setiap jalur punya kelebihan dan kekurangannya masing-masing, tapi bukan itu yang akan kita bahas. Saya sendiri termasuk programmer yang belajar koding berdasarkan kurikulum akademik di kampus, saya telah menyaksikan perkembangan beberapa mahasiswa IT dari yang payah banget sampai yang jago banget, saya juga mengenal beberapa programmer otodidak dari yang berhenti di tengah jalan sampai yang menduduki jabatan tinggi di perusahaan. Poinnya adalah hal yang paling penting untuk dipertimbangkan sebelum belajar koding adalah niat dan usahanya, bukan pilihan jalurnya.

    Melalui studi observasi dan studi literatur singkat, saya menyimpulkan bahwa terdapat dua kesamaan kendala dan penyebab kesulitan yang dialami oleh para pelajar koding, khususnya di Indonesia. Yaitu tidak terjangkaunya konten (bahasa) dan cara belajar yang kurang tepat.

    Akses konten yang tidak terjangkau

    Mungkin argumen ini tidak terbatas untuk ilmu komputer saja, tapi akses konten yang minim merupakan penghambat kemajuan teknologi di suatu negara. Ilmu komputer atau programming pada umumnya cenderung bergerak cepat dan berporos pada penelitian di bumi bagian barat (baca: amerika), jadi hampir semua konten pengetahuan terbaru diterbitkan menggunakan bahasa internasional yaitu bahasa Inggris. Baik dokumentasi program, forum, buku, jurnal ilmiah, video atau artikel.

    Ya, yang ingin saya kemukakan adalah masalah bahasa. Layaknya bahasa Arab untuk para penghafal Qur'an, bahasa Inggris merupakan kunci untuk membuka pintu dari luasnya samudera ilmu pengetahuan, tidak terkecuali informatika dan teknik pemrograman. Ada yang tau kenapa computer science di India sangat berkembang sehingga bisa menguasai Sillicon Valley bersaing dengan Cina?

    Selain karena jumlah penduduknya yang sangat besar, kedua negara tersebut punya akses yang bagus terhadap konten. India merupakan negara dengan penduduk berbahasa inggris terbesar kedua di dunia dan Cina masuk ke dalam 30 besar. Sedangkan Indonesia bahkan tidak masuk 100 besar, jauh di bawah negara Asia Tenggara lainnya padahal jumlah penduduknya terbesar keempat setelah Cina, India dan Amerika.

    Lalu bagaimana solusinya? Tidak mungkin dong mengubah bahasa sehari-hari penduduk Indonesia dan lagi saya masih cinta bahasa Indonesia.

    Untuk mengimbangi keterbatasan kemampuan berbahasa, salah satu solusinya adalah dengan memperbanyak transliterasi atau konten berbahasa lokal. Ini adalah tugas untuk mereka yang terpilih, yang bisa bahasa Inggris dan bisa koding. Lihatlah Cina, meskipun bahasa Inggris bukan bahasa aslinya tapi konten programming dengan bahasa lokalnya tidak terhitung jumlahnya.

    Padahal Indonesia punya potensi untuk melahirkan banyak programmer dan engineer hebat, tapi sayang aja kalo terbatas atau menyerah karena bahasa. Buat yang udah bisa bahasa Inggris, selamat karena cukup dengan modal itu kalian punya peluang jadi developer yang handal. Karena saya punya pendapat bahwa pemrograman bisa dipelajari oleh siapa saja*.

    Buat yang belum bisa bahasa Inggris jangan khawatir, karena konten pemrograman dengan bahasa Indonesia yang ada saat ini sudah cukup untuk bisa memulai terjun ke dunia koding. Kalian bisa belajar di develoka, sekolahkoding, dicoding, jagocoding, codepolitan, codesaya atau platform lainnya (googling deh, saya cuma ngetik yang keinget). Walaupun pada satu tingkatan tertentu kalian akan tetap merasa tertuntut untuk bisa berbahasa Inggris.

    Urutan belajar yang salah

    Masalah kedua adalah urutan belajar yang salah. Baik itu ketika belajar koding pertama kali, belajar bahasa baru atau belajar suatu framework. Urutan yang tepat dalam belajar adalah dimulai dari konsep dasar dan syntax, problem solving kemudian membuat program dengan orientasi sebagai produk. Berdasarkan kurikulum di kampus saya saat kuliah, ada empat mata kuliah pemrograman dasar yang wajib diambil tiap semester (artinya belajar pemrograman dasar selama 2 tahun), yaitu Algoritma Pemrograman I, Algoritma Pemrograman II, Struktur Data dan Pemrograman Berorientasi Objek (OOP).

    Setiap mata kuliah tersebut memiliki alur dengan urutan yang sesuai dengan urutan tadi. Konsep dasar belajar di kelas, problem solving dipraktikan di laboratorium tiap minggu dan membuat produk di tiap akhir semester.

    Urutan yang salah akan menghambat proses pembelajaran. Ketika konsep dasar tidak dipahami, maka implementasi dan pemecahan masalah saat praktik tidak akan berjalan baik, dan ketika program yang dibuat tidak mampu memecahkan masalah maka yang dilahirkan hanyalah sebuah produk gagal, tidak memenuhi kriteria atau program yang penuh dengan malfungsi.

    Mereka yang kurang berhasil dalam belajar biasanya tidak sabar, melewatkan satu urutan atau hanya sekedar karena tidak disiplin.

    Konsep dasar dan syntax

    Konsep dasar dan syntax merepresentasikan pengetahuan dasar yang perlu dimiliki untuk bisa koding. Baik itu cara kerja mesin, sistem operasi, atau sintaksis bahasa pemrogramannya. Tidak ada masalah khusus dalam tahap ini, karena hanya melibatkan kemampuan kognitif kamu sebagai manusia. Sebagai seorang pelajar, seharusnya kita sudah terbiasa dalam kegiatan mencari informasi, menyerap, mengingat, mencatat dan membayangkannya dalam kepala.

    Kamu ngga akan kekurangan bahan untuk belajar konsep dasar dan syntax, ada buku, artikel atau video di youtube. Tipsnya jangan terperangkap dan berlama-lama di tahap ini, cukup ambil konsepnya sampai paham kemudian mulai ke tahap selanjutnya.

    Problem solving

    Ilmu koding yang sesungguhnya adalah kemampuan menyelesaikan masalah dengan logika yang dimengerti oleh mesin atau compiler. Tahapan ini merupakan tahapan yang umumnya paling memakan waktu saat pertama kali mengenal dunia koding, karena harus mengubah sudut pandang, cara berpikir dan perlu diasah dengan nalar. Hal ini bisa dilakukan dengan mencoba latihan competitive programming secara rutin atau menyelesaikan tugas-tugas program sederhana yang tersedia di berbagai sumber (biasanya tugas kuliah atau bab "latihan" di buku).

    Kemampuan problem solving adalah nyawa yang menentukan kualitas seorang programmer, bila ada satu masalah telusuri semua kemungkinan solusi dan pilih solusi terbaik. Selalu dahulukan best practice dan optimasi. Spasi jangan empat, dua aja #pasangumpan.

    Membuat produk

    Buatlah produk sebagai hasil evaluasi latihan kamu secara berkala, karena selain problem solving, pengalaman mengerjakan sebuah produk adalah nilai tambah yang sangat besar bagi seorang programmer. Kemampuan kamu dalam membaca dokumentasi framework seperti SDK, API atau IDE akan diuji. Jika menemukan masalah, pikirkan dulu dengan matang, cari solusi dari masalah yang sama di mesin pencari, jangan sungkan bertanya di forum. Masa-masa inilah yang membuat kamu merasa merasa benar-benar menjadi seorang programmer, memacu adrenalin karena begadang, tidak mandi pagi dan sakit perut karena kebanyakan minum kopi.

    Kebanyakan orang salah karena mereka langsung (mencoba) ke tahapan ini, dengan pemahaman konsep yang setengah-setengah ditambah ketidakmampuan dalam memecahkan masalah algoritma dasar. Mereka berhenti mencoba bukan karena koding itu sulit tapi karena belajar koding itu yang memang tidak mudah. Saya optimis, jika displin setidaknya paling sedikit butuh waktu tiga bulan bagi seseorang untuk bisa berpikir layaknya seorang programmer.