Artikel ini menjadi curahan hati saya tentang apa yang seharusnya dulu saya lakukan saat belajar programming.
Sebagai sekadar validasi, saya sudah menekuni dunia professional programming dalam waktu yang cukup lama mulai dari perusahaan start-up sampai perusahaan software-house ber-skala besar.
Prolog
Dalam kurun waktu 10 tahun terakhir, kita banyak menjumpai ide-ide serta perwujudanya yang menarik di dunia teknologi. Membuat kita terkadang menjadi penasaran bagaimana dan apa saja seluk beluk di dalamnya. Mulai dari segi : Game, Finansial, Ekonomi, sampai ke segi Life-style yang sangat kita rasakan dampaknya.
Sering saya jumpai cuitan di media sosial mengenai pertanyaan-pertanyaan seperti :
- “Umur udah segini 😌, kira-kira kalo belajar programming telat ga ya?,
- “Bingung mau belajar programming mau mulai dari mana 🙂”,
- “Roadmap belajar programming itu gimana sih? 🤔”.
Baik, pertanyaan-pertanyaan mendasar seperti itu memang wajar dilontarkan semua orang ketika ingin belajar sesuatu.
Nah, di sini saya akan mengupas bagaimana sih, belajar programming yang tepat(?).
Fundamental Adalah Segalanya
Pernah mendengar istilah “Membangun rumah tanpa fondasi adalah hal yang mustahil” ?.
Yup, hal itu harus dipertimbangkan ketika mempelajari dunia baru, dalam hal ini adalah pemrograman.
Lalu, apa saja sih yang perlu dikuasai dalam hal fundamental ini.
Logika
Di dunia programming kita tidak bisa lepas dari yang namanya logika.
Logika akan sangat menentukan : bagaimana sebuah program akan dijalankan sesuai dengan bisnis atau tujuan dari sistem yang dibuat, kekuatan, dan ke-optimalan sebuah sistem.
Untungnya, Logika ini bisa kita asah selagi kita belajar di programming. Apalagi jika kita mengutip dari pertanyaan mengenai umur di atas, umur bisa menjadi bonus dalam kemampuan berlogika (dengan asumsi orang ber-umur sudah melewati masa berpikir kritis dan bernalar baik).
Pelajari satu saja bahasa pemrograman di awal
Dari teman-teman saya yang ingin memulai terjun di programming, mereka selalu menanyai saya : “Bahasa apa sih yang paling enak untuk di pelajari, bahasa A, kayaknya mantep yah?, atau B, C .. Z”.
Akan terasa sangat tidak masuk akal ketika pemula mempunyai tekad mempelajari 2 atau lebih bahasa dalam kurun waktu yang cepat.
Dalam bahasa pemrograman, sesungguhnya semua konsep logikanya hampir sama, jadi kalian cukup mempelajari 1 bahasa saja. Dari situ saja saya yakin kalian akan mudah memahami bahasa pemrograman lainya sesuai kebutuhan pasar yang ada.
Salah satu roadmap belajar bahasa pemrograman yang kalian bisa pelajari : https://github.com/wrideveloper/roadmap-programming.
Untuk tipsnya, belajar lah minimal sampai mengenal struktur data. Itu sangat penting di bagian logika dan pemrograman untuk nantinya.
Latihan Berbasis Proyek
Selanjutnya, akan ada keluhan bahwa belajar bahasa pemrograman saja sangat membosankan dan akhirnya memutuskan untuk berhenti belajar.
Hal itu terbilang wajar.
Saya sarankan kalian untuk mencoba memulai proyek kecil dengan bahasa pemrograman yang kalian pelajari tadi.
Sebelum menentukan proyek apa yang akan diambil, tentunya kalian akan bertanya-tanya tentang platform apa yang kalian akan ambil. Ini berkaitan dengan yang namanya Roadmap Belajar — sebuah peta belajar untuk merunutkan dari-dan-ke apa kalian harus belajar.
Roadmap
pernah mendengar istilah seperti :
- Front-End Developer
Posisi ini adalah job-role yang akan mengangani pengembangan antarmuka dari sebuah sistem, biasanya seorang Front-end akan menerjemahkan design yang sudah dibuat oleh tim design ke aplikasi berbasis web, mobile, dan desktop.
Front-end Developer biasanya berurusan dengan pengambilan data kasar yang tidak bisa dan susah dikenali manusia awam lalu menerjemahkannya ke bentuk antarmuka yang lebih user-friendly, Sehingga kita sebagai pemakai aplikasi akan mudah dalam penggunaannya. - Back-end Developer
Job-role ini akan menangani bagian belakang dari wujud Front-End yang sudah dibuat. Terdengar abstrak yah?. Iya, karena sebuah sistem Back-end tidak bisa dilihat kalau kita mengunjungi sebuah antarmuka web, mobile, dan desktop.
Back-end Developer bertanggung jawab dengan : strukturisasi sebuah sistem, penyimpanan sebuah data, dan menjamin sisi client bekerja dengan baik.
Nah, tentu sebuah roles tidak hanya seperti dua di atas tadi. Keduanya dapat mempunyai akar dan bercabang hingga membentuk spesialitas, biasanya job-role ini dikenali dengan nama specialist. Untuk itu, saya sarankan jangan dulu menyelam terlalu dalam sebelum kalian mengetahui permukaanya dulu.
Berikut kutipan roadmap yang saya sangat sarankan untuk kalian menentukan jalan dan tujuan belajar : https://roadmap.sh
Setelah kalian mengetahui roadmap dan tahu jalan apa yang akan kalian tempuh.
Trik dan Tips
Tulislah kode dengan bersih
Sebelum kalian lebih jauh berkutat dengan kode dan mendapatkan banyak proyek, kode bersih adalah hal yang sangat penting di dalam pemrograman. Kalian akan bekerja secara kelompok, tidak sendiri, maka dari itu kebersihan kode akan sangat membantu dalam hal kolaborasi.
Lalu, apa maksud kode yang bersih?, maksud saya yaitu bukan semerta-merta kode-nya : tidak memliki comment, memliki indentasi yang sempurna, menulis fungsi secara inline (satu baris kode).
Yang saya maksud dari kode yang bersih seperti :
- Penamaan variable yang baik,
- Menulis fungsi yang menjalankan sesuai nama fungsinya,
- Menuliskan fungsi untuk mengurangi redundansi kode, dan masih banyak lainya
Kalian bisa mengunjungi : https://www.freecodecamp.org/news/clean-coding-for-beginners/.
Atau kalau ingin lebih lengkap lagi, kalian bisa baca buku berjudul Clean Code by Robert Cecil Martin.
Selalu Penasaran
Kalian bisa menjelajah di kanal-kanal youtube atau karya-karya orang lain di Github. Atau biasanya ada masalah di sekitar kalian yang menurut kalian harus di selesaikan. Kalian bisa menyusun permasalahan permasalahan di sekitar kalian, lalu mencoba mencari satu konklusi penyelesaianya.
Setelah itu hal-hal ini biasanya akan kalian alami secara tidak sadar. Layaknya saat bermain game, kita akan merasakan adiksi yang membuat kita terus menerus duduk di depan komputer / console game. Sama seperti programming, kalian bisa saja akan mengalami :
- “Hmm, kok ga jalan / error yah, padahal alur dan kode-nya sudah terlihat benar semua”
- “Bikin ini ah, kayaknya seru”.
Hal hal di atas memang terlihat tidak wajar untuk kalian yang masih awam di programming. Tapi itu membuat kita betah dan berlama-lama di depan komputer, dari situ skill kita dalam programming akan pelan-pelan berkembang.
Komunitas dan Koneksi
Ini salah satu hal yang pernah saya sesali waktu dulu pertama belajar. Komunitas penting terhadap kemajuan kalian, tidak hanya dalam hal programming. Banyak sudut pandang yang bisa menjadi pelajaran bagi kalian.
Kalian bisa bertemu orang yang sudah berpengalaman, sharing tentang bagaimana kalian belajar programming misalnya.
Meminta pendapat bagaimana proyek atau produk yang akan kalian buat, sehingga kalian akan menerima saran dan kritik yang membangun.
Kalian bisa menemukan komunitas komunitas ini di sosial media seperti : Facebook, Twitter dan lain-lain. Dari sosial media, kalian akan tahu juga ternyata ada komunitas di sekitar kalian yang mungkin kalian bisa bergabung secara offline.
Sumber
Berikut merupakan sumber-sumber yang bisa kalian selami untuk belajar memulai programming :
- Clean Code Explained — A Practical Introduction to Clean Coding for Beginners
https://www.freecodecamp.org/news/clean-coding-for-beginners/ - Data-structure
https://www.geeksforgeeks.org/data-structures/ - How to Learn Programming — The Guide I Wish I Had When I Started Learning to Code
https://www.freecodecamp.org/news/how-to-learn-programming/ - Roadmap pemrograman bahasa Java
https://github.com/wrideveloper/roadmap-programming - Roadmap — path, video explanation, visual explanation
https://roadmap.sh/watch — ini yang paling saya sarankan
Epilog
Tetap konsisten yaa!, jangan berharap dan berekspektasi tinggi terhadap apapun. Jangan mengejar hasil, namun nikmati saja prosesnya. Tidak perlu mengejar target minggu ini harus belajar apa saja, bulan ini harus selesai apa saja, tahun ini harus bikin proyek apa saja. Yang penting tetap konsisten meskipun konsistensi itu di dalam hal kecil.
Kiranya begitu saja artikel kali ini, akan ada perubahan berkala terhadap artikel ini mulai dari perbaikan kata serta penambahan pembahasan.
Sekian dan Terima kasih 😁