3 Tahapan Belajar Programming

“person wearing orange and gray Nike shoes walking on gray concrete stairs” by Bruno Nascimento on Unsplash

Untuk mencapai sesuatu, semuanya perlu tahapan. Tidak bisa langsung secara ajaib sampai. Semua hal punya tahapan-tahapan yang harus di lalui.

Setelah 4 tahun lebih menggeluti dunia programming baik mengerjakan berbagai project dan mengajar, saya jadi melihat pola tahapan dalam belajar programming.

Dan tahapan itu ada 3.

Apa jadi nya jika tidak mau mengikuti tahapan?

Misal, ketika ingin membuat aplikasi android react native, karena tidak sabar maka dia melewati tahap 1 langsung loncat ke tahap 2. Alhasil ya pasti tidak akan pernah maju ke tahap 3 karena sedikit saja terjadi error atau kesalahan di tahap 2, dia akan bingung mengatasinya.

Semua tahapan harus di lewati dengan baik dan penuh ketekunan serta kesabaran.

Dan saya yakin hampir semua programmer jago saat ini sudah melewati 3 tahapan ini.

Apa saja tahapannya ? Yuk simak sampai habis!


Tahap 1: Fundamental Programming.

Tahap 1 merupakan tahapan terpenting dari semua tahapan dalam belajar programming. Ini adalah tiang dari semua tahapan. Jika tahap 1 nya tidak mantap dan kokoh maka akan kesulitan ketika melalui tahap 2 dan 3.

Dan di tahap 1 inilah banyak calon programmer patah semangat nya dalam belajar programming.

Kenapa? Karena di tahap ini kita di tuntut untuk bisa berpikir layaknya seorang programmer berpikir.

Setiap bahasa pemrograman mempunyai konsep fundamental yang bisa di bilang sama.

Diantaranya:

Variabel. Konsep menamakan sebuah data / nilai, ini ada di semua bahasa pemrograman. Dan sebenarnya dalam kehidupan sehari-hari kita sudah menggunakan konsep variabel ini, misal ada sebuah mobil yang melaju dengan kecepatan 90 km/jam. Si 90 km/jam itu kita namakan “kecepatan”.

kecepatan = 90

Kondisional. Merupakan cara program untuk menentukan arah jalannya program. Dalam kehidupan sehari-hari kita selalu menggunakan konsep kondisioanl ini. Misal, jika perut lapar, maka makan, jika perut tidak lapar maka tidur.

if(perut == 'lapar') {
  makan()
} else {
  tidur()
}

Perulangan. Merupakan cara program untuk melakukan suatu hal berulang kali. Sering kali ada suatu hal yang sama, harus di lakukan berkali-kali. Contoh dalam kehidupan nyata, menyuap makanan sampai kenyang.

kenyang = 20
suapan = 0
while( suapan < kenyang ) {
  suapan++
}

Kumpulan data berurutan. atau biasa di sebut array. Yaitu data yang berisi kumpulan data secara berurutan mulai dari urutan ke 0. Di program urutan pertama adalah 0 bukan 1. Contoh dalam kehidupan nyata, yaitu antrian pembelian tiket. Pengantri ke 0 andi, ke 1 budi dan ke 2 yadi.

antrianBeliTiket = ['andi','budi','yadi']

Kumpulan data bernama. atau biasa di sebut object. sebuah object memiliki satu atau lebih property (data bernama). Misalkan sebuah mobil (object) memiliki berbagai ciri (property). Sebuah mobil bisa berwarna merah, ber roda 4, ber tipe sedan, berkecepatan maksimal 300 km/h.

mobil = {
  warna: "Merah",
  roda: 4,
  tipe: "sedan",
  maksKecepatan: 300
}

Syntax. Aturan cara penulisan kode. setiap bahasa pemrograman mempunyai aturan cara penulisannya masing-masing. Sama seperti bahasa manusia yang punya grammar nya atau aturannya masing-masing. Dan aturan ini harus kita ikuti secara mutlak, karena jika tidak di ikuti akan terjadi error dan program kita tidak bisa jalan. Contoh dalam penulisan kode php, setiap 1 baris statement harus di akhiri dengan titik koma (;) jika tidak maka kode akan mengeluarkan pesan error. Berbeda dengan javascript yang titik koma (;) bersifat opsional, bisa di gunakan titik koma atau tidak sama sekali.


Banyak calon programmer meloncati tahap 1 yang sangat penting ini, dengan alasan terlalu lama untuk belajar basic, jadi langsung aja coba ngerjain project atau langsung aja coba lihat video tutorial yang ngebahas studi kasus sebuah project.

Memang mungkin di akhir tutorial studi kasus project, kita bisa bikin aplikasi persis sama dengan yang di contohkan di tutorial. Tapi jika terjadi kesalahan sedikit, atau kita mau modifikasi sedikit melenceng dari tutorial nya, pasti tidak akan bisa.

Karena fundamental nya tidak ada.

Tahap 2: Membuat Project .

Setelah fundamental terbentuk dengan baik. Maka langkah selanjutnya adalah mulai untuk membuat project.

Mulai dari yang sederhana. Buat saja sebuah app yang hanya melakukan proses CRUD (Create, Read, Update, Delete) secara normal seperti aplikasi todo list. Lalu Buat fitur login dan register.

Dan setiap hari, selalu tambah latihan project nya. Dari yang mudah, lalu merambah ke yang sedikit rumit. Misal buat aplikasi POS yang biasa di pakai kasir toko.

Semakin bertambah nya hari dan bertambahnya project, seharusnya kita akan mahir melakukan nya.

Dan jika di tahap 2 ini sudah mantap, kita akan mungkin bisa membuat aplikasi apapun sesuai keinginan kita.

Tapi di tahap ini juga, banyak programmer yang gugur. Karena sifat seorang programmer itu membenci repetisi. Tidak suka melakukan hal yang gitu-gitu aja dan membosankan. Tahap ini adalah tahap yang membosankan.

Coding CRUD, Deploy, Coding CRUD, Deploy.

Nah untuk itu, jika tidak mau berhenti dari profesi programmer maka harus nya lanjutkan ke tahap 3.

Tahap 3: Menggunakan Berbagai Tools, Optimasi program dan Optimasi Cara Kerja.

Dunia programming itu luas dan terus meluas tiap hari. Selalu saja ada update yang harus kita ikuti. Dan kalau tidak di ikuti maka kita tidak akan bisa membuat aplikasi yang sesuai dengan zaman.

Setelah melewati tahap yang membosankan di tahap 2. Maka tahap 3 ini adalah tahap optimasi dari tahap 2.

Di tahap 3 ini kita harus belajar menggunakan berbagai tools untuk mengoptimasi program yang di buat dan mengoptimasi cara kerja kita sebagai programmer.

Berikut beberapa optimasi yang bisa di lakukan.

Implementasi Clean Code. Kita menulis kode bukan hanya agar komputer mengerti perintah kita, tapi juga agar orang lain mudah mengerti ketika kode kita di baca. Untuk urusan clean code ini silahkan baca buku Clean Code.

Lakukan cache. Sederhana saja, daripada mengakses database berulang kali untuk data yang sama, maka sebaiknya di simpan saja di cache. Karena akses ke database itu bisa di bilang mahal harga nya (resource memory dan waktunya). Untuk proses cache saya pilih redis. Walaupun cache ini terdengar sederhana tapi dampaknya akan luar biasa terhadap performa aplikasi.

Lakukan test. Test yang saya maksud di sini, bukan test secara manual yang klik sana sini oleh manusia. Tapi kita menulis test nya secara program, dan di jalankan secara otomatis oleh program. Untuk urusan test saya gunakan mocha dan chai untuk backend, jest dan enzyme untuk frontend. Test ini hal yang sering di abaikan oleh programmer. Karena di anggap buang-buang waktu. Padahal test ini yang akan menyelamatkan waktu.

Continuous Integration. Alur kerja developer : Write Code, Test, Deploy. 3 hal itu akan terus kita lewati sepanjang hidup jadi programmer. Pertama write code, tahapan menulis kode aplikasi, Kedua membuat test seperti yang saya sebutkan di atas, jika sudah pass semua test nya, maka deploy yaitu tahapan agar aplikasi kita siap di pakai di production. Ketiga tahapan itu membutuhkan waktu yang mungkin tidak sedikit. Maka di sini lah peran CI (Continuous Integration) untuk mengotomatisasi 3 tahapan tersebut. Untuk CI saya gunakan Travis CI.

Gunakan tools backend as a service, seperti firebase. Yang menyediakan realtime database, cloud function, web hosting dan sebagai nya. Karena dengan menggunakan ini bisa menghemat waktu develop dan deploy serta mungkin menghemat biaya awal karena service nya ada masa gratis nya.

Gunakan Docker, untuk mengkonsistenkan environement development kita. Kadang kali mungkin kita temui, kode yang kita buat jalan di komputer kita sendiri, tapi ternyata tidak jalan di komputer orang lain atau bahkan mungkin di production server. Itu bisa saja terjadi mungkin karena perbedaan versi dan perbedaan environment di setiap komputer. Nah dengan Docker, akan mengatasi masalah tersebut dengan teknologi Container nya.

Dan masih banyak lagi mungkin bahasa alien yang bisa kita pelajari untuk mengoptimasi app dan cara kerja kita. Seperti load balancer, MVC, OOP, micro services, scaling dll.


Jika anda merasa artikel ini menarik dan bermanfaat, silahkan berikan claps 👏 👏 sebanyak-sebanyaknya dan bagikan ke lingkaran pertemanan anda, agar mereka dapat membaca artikel ini. Dan jangan lupa follow saya di medium untuk terus dapatkan tulisan seperti ini setiap minggunya.

Mau jadi Professional Programmer tapi bingung Jalannya? Yuk gabung dengan Andaglos Developer Academy.

Klik Disini Untuk Gabung Academy Mobile React Native.

Klik Disini Untuk Gabung Academy Fullstack Javascript.

Tolong Like dan Share ya !

Leave a Reply

Your email address will not be published. Required fields are marked *