Koding.Club

> Artikel

Mencuri seperti seniman

Belajar di luar programming

Dari mana inspirasi belajar kamu

Surat cinta untuk masa depan

Bereksperimen seperti ilmuwan

Perlukah mata pelajaran programming di sekolah?

Refactoring dan eliminasi dalam programming

Mengikuti teknologi terbaru

Mendapatkan feedback dari yang kamu buat

Skill bukan mie instan

Bagaimana cara belajar programming yang benar?

Bagaimana cara cepat jago ngoding?

Error itu proses

Bingung harus belajar apa lagi

Apa yang perlu dipelajari untuk menjadi developer yang lebih baik?


> Lainnya

belajar di dunia programming / koding

> Mencuri seperti seniman

Buku “Steal like an artist” yang ditulis Austin Kleon ngajarin gimana para seniman mencari beberapa karya yang bisa kamu contoh untuk jadi bahan belajar atau referensi berkarya. Di programming pun ini berlaku, cari kode yang kamu suka di internet, misalnya di GitHub, ada banyak open-source yang tersedia. Buka file-filenya lihat kode yang orang lain tulis.

Kalau ada library atau framework yang kamu suka, cari tahu bagaimana caranya dibikin. Ikuti apa yang ada disana, bikin kasus seperti bagaimana kalau saya mau menambahkan fungsi baru, file mana yang harus saya tambahkan, di mana kodenya harus saya tulis.

Hampir semua kode yang mau kita buat sudah pernah dibuat sebelumnya. Coba cari contohnya, jangan hanya copy-paste lalu mengganti kontennya, tapi pelajari, apa yang bisa diperbaiki, pelajaran apa yang bisa kamu ambil dari kode orang lain.

Link

> Belajar di luar programming

Apa yang harus dipelajari di luar ngoding?

Bahasa Inggris! orang-orang hebat bukan hanya ada di satu negara, mereka saling berkolaborasi dan berkomunikasi dengan bahasa Inggris. Sumber belajar seperti buku, podcast atau screencast sangat banyak dalam bahasa Inggris. Investasikan waktu dan uang untuk belajar bahasa Inggris.

Menulis, kalau kamu membuat sesuatu atau sedang belajar sesuatu, jangan lupa dokumentasikan, jelaskan apa yang kamu buat, dimana tantangannya, apa yang perlu diimprove nantinya. Bikin blog atau cari forum dimana kamu bisa sharing kerjaan kamu.

Martin Fowler menyarankan untuk belajar di bidang apa kamu terjun. Misalnya kamu membuat aplikasi untuk rumah sakit, pelajari tentang sistem rumah sakit, ini sangat membantu cara kamu berpikir tentang pembuatan aplikasinya nanti.

Link

> Dari mana inspirasi belajar kamu

Selain belajar suatu materi, salah satu cara yang efektif adalah punya "mentor". Tidak harus yang selalu siap di dunia nyata, kamu bisa mencari "idola" di dunia programming, kamu melihat sejarah, membaca tulisannya, bagaimana cara dia belajar dan lainnya yang bisa kamu ikut coba.

Seperti Phil Stugeon, ia menunjuk Martin Fowler sebagai developer yang luar biasa dan memberinya banyak saran melalui tulisan-tulisannya. Dia juga banyak terinspirasi dari temannya di PHP League yang selalu bikin proyek keren dan saling berbagi.

Link

> Surat cinta untuk masa depan

Damian Conway pernah bilang “Dokumentasi adalah surat cinta kamu untuk masa depan”. Yang saya bicarakan disini bukan dokumentasi dari orang lain. Tapi dokumentasi selama kamu belajar.

Seperti menulis jurnal, bisa di komputer atau tulis tangan, apa yang mau kamu pelajari, pecah jadi bagian-bagian kecil. Tulis masing-masing catatan untuk bagian kecil ini, apa yang kamu temukan setelah belajar.

Termasuk ketika ada error, ini kesempatan emas, untuk ngga mengulang kesalahan yang sama di masa depan. Tulis errornya, tulis bagaimana solusi menyelesaikan error ini. Sewaktu-waktu saat kamu ketemu masalah yang sama tinggal membuka surat cinta ini.

Link

> Bereksperimen seperti ilmuwan

Illmuwan tahu, ketika ada percobaan yang ngga berhasil, dia bukan gagal, tapi menemukan cara yang salah.

Jangan takut bereksperimen dengan koding. Kamu ngga akan rugi, hal yang paling jelek yang bisa terjadi saat proses belajar, adalah error. Dimana error ini bisa diperbaiki dan menambah pengetahuan kamu.

Sebelum kamu bertanya di forum-forum “bisa ngga ya kalau..“ langsung dicoba! cari tahu jawabannya bisa atau ngga. Setelah itu diskusikan dengan teman-teman lain di forum, kenapa bisa atau kenapa ngga bisa.

Ilmuwan juga ngga bosan dengan berkesperimen. Di dunia koding, ngga perlu nunggu berbulan-bulan, setiap hari pun akan selalu ada tool baru, ada library, plugin atau framework baru. Jangan takut untuk bermain dengan semua alat ini.

Lihat kodenya, seperti apa tool ini dibuat. Bandingkan apa yang bagus dari tool satu dengan tool yang lain. Yang lebih menarik lagi, bisa ngga kamu bikin tool seperti ini ?

Link

> Perlukah mata pelajaran programming di sekolah?

Kalau semua siswa harus belajar fisika Kalau semua siswa harus belajar biologi Kalau semua siswa harus belajar sejarah

Kenapa programming tidak? Melatih cara berpikir, melatih menyelesaikan masalah, bukankah kedua hal ini penting?

Link

> Refactoring dan eliminasi dalam programming

Merasa program kamu sudah selesai? “Salah! program ngga akan pernah selesai” Setiap program yang kita rasa sudah cukup bagus hari ini, besok masih bisa diperbaiki.

Refactoring, cukup sulit menemukan arti kata bahasa indonesia yang tepat untuk ini, yang jelas aktivitas ini digunakan untuk melihat kembali dan menulis ulang kode yang sudah berjalan, bukan menambah fungsi baru, dengan tujuan membuat kode kita lebih rapi, mempermudah mencari ketika ada error dan mudah menambahkan fungsi-fungsi baru nantinya.

“Kode yang indah ditulis, akan indah dibaca”. Hari ini mungkin benar programnya sudah selesai, tapi bagaimana kalau besok ada tambahan ide baru? atau client ingin menambahkan fitur lainnya? Jangan menyiksa diri, dengan menulis kode yang sulit dibaca. Bukan hanya ketika ada waktu, tapi perlu dijadwalkan untuk melakukan “refactor” untuk kode yang lama.

Bisa jadi ada kode yang punya fungsi sama tapi kita tulis berkali-kali, disini kita bisa membuatnya lebih efisian dengan membuat satu fungsi general, yang bisa diakses berkali-kali. Atau melihat ada satu fungsi yang melakukan banyak hal, sangat disarankan untuk setiap fungsi hanya melakukan satu hal saja, ngga lebih.

Pecah fungsi tadi jadi beberapa bagian, yang tugasnya masing-masing jelas melakukan satu hal. Ada banyak lagi bentuk praktek dari refactoring.

Eliminasi ngga kalah penting atau secara kasar bisa kita artikan menghapus kodenya. Saya sering meninggalkan kode begitu saja, padahal sudah tidak terpakai, hanya dikomentari agar tidak ikut berjalan. Padahal kalau memang sudah tidak terpakai kenapa ngga dihapus? Semakin sedikit kode yang kita tulis, akan semakin mudah mengorganisirnya, akan semakin mudah menambahkan fitur-fitur baru nantinya.

Perhatikan berkali-kali kalau ada bagian dari kode kita yang tidak terpakai, berani mengeliminasi! Contoh lain seperti mengambil data semua kolom di table database, padahal tidak semua diperlukan. Ambil hanya yang diperlukan saja, berani eliminasi!

Link

> Mengikuti teknologi terbaru

Akan selalu datang teknologi baru, sebagai pelajar yang baik saya yakin kita mau nyobain semuanya, sayangnya waktu untuk bekerja dan belajar sering tidak bersahabat. Ini yang sering membuat dilema.

Pertanyaan yang muncul “gimana saya nyobain semuanya? waktunya ngga akan cukup!” betul sekali! waktunya ngga akan cukup dan berita baiknya, kamu ngga perlu nyobain semuanya. Jangan latah dengan yang terbaru, tapi yang bikin kamu produktif.

Bruce Lee pernah bilang (saya belum pernah dengar Bruce Lee langsung, tapi ini yang saya temukan di internet), “saya lebih takut dengan lawan yang punya 1 jurus tapi latihan 1000 kali, dibanding yang punya 1000 jurus latihannya hanya satu kali”. Kita ngga bisa hanya latah, pindah dari satu teknologi ke teknologi lain, kecuali teman-teman penulis blog, vlogger atau pengamat yang memang pekerjaannya melakukan ini. Karena kita selalu punya pekerjaan yang perlu diselesaikan.

Belajar teknologi baru memang asyik, tapi ingat ada prioritas yang perlu diselesaikan. Bukan berarti kamu ngga boleh belajar teknologi baru, justru ini menjadi kewajiban. Kalau kamu punya waktu luang, membandingkan tool yang satu dan yang lain akan bisa membuka pikiran.

Pertanyaan yang ngga boleh kelewatan “bagaimana yang kamu pelajari diimplementasikan di dunia nyata?”. Kalau kamu ingin mengerjakan sesuatu yang produktif atau bekerja dengan orang lain, perlu komitmen untuk menggunakan satu teknologi / bahasa / framework yang didalami, agar fungsi dari teknologi yang kita pilih bisa dimaksimalkan.

Kalau kita hanya melihat laut dari atas, kita ngga akan bisa menghargai keindahan di bawahnya, yang tentunya jauh lebih menarik. Orang-orang berdebat, yang ini lebih baik dari itu, padahal belum mencoba mendalaminya. Saya yakin ngga ada satu tool yang sempurna untuk semua pekerjaan dan untuk semua orang.

Kamu akan mencari referensi di internet, teknologi mana yang terbaik dan menemukan semua orang punya pendapat masing-masing. Disini penting untuk melihat sumber aslinya, baca dokumentasi atau website resmi dari teknologi ini dan baca tujuan tool ini dibuat. Bandingkan dengan tujuan kamu, apakah ini cocok atau ngga.

Beberapa tips dalam mencari tool yang cocok untuk kebutuhan: [1] Lihat dokumentasi resminya, tujuan tool ini untuk apa [2] Banyaknya komunitas, karena sewaktu-waktu kita akan menemukan masalah dan butuh bantuan dari komunitas ini, baik offline maupun online. [3] Lihat contoh kasus (aplikasi atau website) yang sudah dibuat dengan tool ini. [4] Coba bereksperimen sendiri!

Link

> Mendapatkan feedback dari yang kamu buat

Sangat penting untuk sadar dimanapun kamu tinggal dan bekerja, kamu bisa mendapatkan feedback dari orang di berbagai negara untuk apa yang kamu kerjakan. Kamu ngga pernah sendiri! punya pertanyaan? bisa bertanya di stackoverflow, mau menampilkan karya? ada codepen, mau share kode yang kamu buat? ada github. Kamu bisa dengan mudah menjadi bagian dari komunitas programming di dunia, kamu tidak sendiri.

Link

> Skill bukan mie instan

Mau dipuji? tinggal ke instagram upload foto makanan kamu. Mau dapat likes? tinggal ke Facebook kutip kata-kata orang hebat. Pernah dengar ada yang beli kunci jawaban Ujian Nasional? atau bayar sekian rupiah untuk lolos menjadi Pegawai Negeri Sipil?

Hampir semuanya serba instan di negerti tercinta kita ini. Ketika hasil bisa dibeli dengan instan, “Skill” jadi hal yang sangat langka, hanya beberapa orang yang mau lewatin proses untuk mendapatkan ini. Dan tentunya orang-orang langka yang banyak dicari.

Kalau kamu hari ini punya banyak uang, besok uangnya hilang, semuanya hilang. Kalau kamu punya skill, uang kamu hilang, kamu bisa kembali nyari uang dengan skill yang kamu punya.

Hilangkan jauh-jauh pikiran “jadi ahli programming dalam 1 hari”. Judul kursus atau judul buku mungkin banyak yang seperti ini, tapi kenyatannya ngga. Satu hari mungkin cukup untuk perkenalan, bukan untuk menjadi ahli.

Harus mau merasakan lelah, mau berpikir lebih serius dari biasanya. Akan ada karya-karya atau kode yang kamu mungkin malu ngelihatnya di masa depan. Tapi itu bagian dari perjalanan

Link

> Bagaimana cara belajar programming yang benar?

Tidak ada yang benar-benar benar (loop-sengaja). Coba cara-cara belajar yang pernah kamu dapatkan, buktikan langsung mana yang paling efektif untuk kamu.

Prinsip dasarnya: tulis apa yang kamu pelajari, praktekkan dan sharing ke orang lain (apa yang sulit/gagal, apa yang berhasil).

Jangan bingung kamu harus belajar apa, mulai dari apa yang mau kamu bikin, pelan-pelan, kamu bisa belajar sambil bikin sesuatu yang kamu butuhkan. Kamu tidak perlu mencari satu kurikulum penuh yang wajib dipelajari. Yang kamu perlukan adalah keiniginan untuk membuat sesuatu dan belajar dengan sabar.

Link

> Bagaimana cara cepat jago ngoding?

Mau tahu cara cepat biar jago ngoding? Ambil air 3/4 gelar, siram ke muka, dan ingatkan diri sendiri kalau ngga ada yang instan. Okay kali ini saran asli, belajar dengan tenang dan punya tujuan yang jelas, bikin sesuatu dan lakukan ini berulang-ulang, berbulan-bulan bahkan bertahun-tahun.

Link

> Error itu proses

Bug alias error akan menjadi teman setia kita selama ngoding, bukan hanya saat belajar tapi saat bekerja pun, bug ngga akan meninggalkan kita sendiri. Bisa jadi waktu yang kita pakai berjam-jam sampai stress hanya karena lupa menggunakan tanda koma saat memisahkan sesuatu. Bisa jadi kesalahan fatal seperti logika program, penggunaan if- else yang terbalik dan error-error lainnya.

Tenang! Baca error dengan tenang, jangan panik. Sebagian besar bahasa program menyediakan laporan error yang jelas. Apa kemungkinan kesalahan yang dibuat dan pada baris berapa kesalahan ini terjadi.

Belajar membaca error, tanpa terburu-buru. Dokter yang panik ngga akan bisa memberikan obat yang benar ke pasiennya. Asal suntik bagian yang salah hanya akan menambah derita pasiennya. Asal mengubah kode tanpa melihat betul masalahnya, hanya akan membawa error-error lainnya.

Belajar “debug” atau mencari error dengan teliti. Contoh ketika kamu punya 3 fungsi yang saling berhubungan. Belum tentu errornya ada di fungsi yang ketiga, bisa jadi kesalahannya ada di fungsi pertama. Untuk itu perlu mencari akar dari kode yang kita tulis. Periksa dengan teliti kemungkinannya.

Hentikan program di fungsi satu dan lihat hasilnya, kalau tidak ada masalah, coba ke fungsi 2, coba ke fungsi 3 dan seterusnya.

Jadikan error seperti rival. Setiap dia muncul, bilang dalam hati, ada satu ilmu baru lagi yang akan saya dapat, ada satu tantangan lagi yang siap saya lewati.

Link

> Bingung harus belajar apa lagi

Jangan bingung harus belajar apa lagi Tapi bikin sesuatu! dengan mengerjakan langsung, kamu pelan-pelan akan melihat kebutuhanmu, apa saja yang perlu kamu pelajari akan datang nanti. Hanya belajar tanpa mempraktekkan tidak membawa kemana-mana, sebanyak apapun yang kamu pelajari.

Link

> Apa yang perlu dipelajari untuk menjadi developer yang lebih baik?

Menyelesaikan masalah. Memecahkan problem besar, menjadi problem-problem kecil, belajar mengerti apa masalah yang ingin diselesaikan sebelum mulai menulis kodenya.

Untuk beberapa hal yang spesifik:

Dari Taylor Otwell, pembuat framework Laravel menyarankan "Belajar design pattern. Ini bukan hanya berlaku di bahasa PHP. Kamu bisa belajar dan menggunakan pattern di semua bahasa. Khususnya semua 5 pattern S.O.L.I.D (Single-responsiblity, Open-closed, Liskov substitution , Interface segregation dan Dependency Inversion). 5 pattern ini akan mengantar kamu jauh sebagai developer, saya hampir selalu berpikir tentang ke-5 hal ini saat ngoding"

Paul Irish menyarankan untuk bergabung ke komunitas online untuk membahas satu topik bersama-sama dan saling membantu masalah masing-masing. Jangan lupa "have fun!" bikin proyek-proyek yang kamu suka, yang mau kamu lihat.

Tips dari Phil Sturgeon, penulis buku "API You won't hate" adalah menulis blog lebih banyak dari developer lain! Berbicara/menulis tentang apa yang sedang kamu kerjakan sangatlah membantu. Memperlajari sesuatu yang sulit, mengolahnya menjadi bahasa yang mudah dimengerti manusia, sangat membantu prosesnya menjadi lebih baik.

Dari Guido, semua trick programming bisa habis termakan waktu, tapi tidak dengan budaya berbagi (sharing)! dalam bentuk open source ataupun ide. Belajar untuk sharing :D

Link