Tentang belajar coding

can everyone learn coding?

Tentang belajar coding

Sebelum kita masuk ke pembahasan inti, izinkan gue bercerita tentang bagaimana gue "berkenalan" dengan dunia programming biar tulisan ini menjadi lebih panjang.

Kembali ke tahun sekitar 2007 dimana waktu itu gue masih SD, kala itu ketika sore gue diajak jalan-jalan oleh bokap. Dan arti jalan-jalan menurut definisi bokap gue, ya bener-bener jalan. Jadilah waktu itu menyusuri kota Serang yang belum terlalu panas banget di sore hari bersama bokap.

Lalu sampai di Kaloran Brimob, waktu itu gue melihat warnet bernama 7 Belas (atau 2 Belas gue lupa). Gue udah gak terlalu asing dengan komputer, setiap ke kantor bokap gue pasti main komputer buat main game. Lalu gue bilang ke bokap "Pah, mau ke warnet ya?". Karena gue dulu orangnya cenderung penutup dan pemalu, bokap gue nantangin "Ke warnet aja kalau berani".

Pada saat itulah gue pertama kali ke warnet, masuk sendiri dengan dimodali 5000 sama bokap. Karena bokap gak mungkin masuk juga, bokap kalau gak salah bilang ingin ke pangkas rambut.

Dulu belum tau internet, di warnet gue main Age Of Empires yang ternyata seru banget (kenal DotA pas 2015!). Di warnet main cuma sekitar 45 menitan, 4000 waktu itu. Karena bokap udah selesai cukur, jadi gue diajak pulang ke rumah.

Di tahun yang sama, bokap bawa kabar gembira pada bulan apa gitu gue lupa. Malam itu selepas beliau pulang kerja, beliau bawa komputer! Akhirnya gue bisa main komputer selain di Warnet & Kantor bokap! Kala itu menggunakan Windows Millenium Edition, pentium 3 kalau gak salah. Dari situ keliaran gue mulai muncul. Hampir setiap bulan gue minta beliin game komputer baru, beli di Roberta.

Long story short, pada tahun yang sama juga bokap pasang internet. Pakai Speedy kala itu. Dan beliau bikin blog, dari situ gue penasaran sama internet karena gue bisa liat foto gue (juga) di komputer kantor bokap.

Sekarang kita masuk ke awal gue kenal dengan dunia programming beneran.

Dimulai dari VB

Karena udah punya komputer di rumah (dan setiap bulan gue minta beliin game baru) waktu itu gue main Need for Speed Underground. Dari situ gue kenalan dengan yang namanya Trainer, yang rata-rata dibuat menggunakan Visual Basic.

Gue penasaran dengan Trainer sampai membuat Trainer sendiri menggunakan Cheat Engine. Dan biar kayak trainer-trainer lainnya, gue mengulik VB ini jadi trainer gue itu kalau dibuka ada suara musik dan ada tombol-tombol yang sebenernya gak penting-penting amat.

Lalu gue kenal dengan virus, dan penasaran dengan itu. Gue membuat virus sendiri (jenis worm) dan karena gue gak tau apa yang gue lakuin (tapi tujuannya tau) gue dilabeli "tukang bikin virus tapi gak bisa bikin antivirus nya" kala itu karena komputer rumah penuh dengan virus... orang lain (brontok) dan buatan gue sendiri tentunya (cuma copy file random .bak).

Dari situ gue mulai penasaran dengan dunia programming semenjak dilabeli gak bisa bikin antivirus nya. Yang meskipun gue belum tau kalau itu programming. Pada tahun 2009 gue memasuki SMP (you know my age!) yang sayangnya harus berpisah dengan komputer karena sekolah yang gue (dan ortu) pilih tersebut.

Sayangnya, keliaran gue dengan programming tidak berhenti sampai situ.

Dilanjutkan dengan ehm PHP

Seperti remaja labil anak komputer kala itu, kita tertarik dengan "hacking". Meskipun gue sekolah di "boarding school", gue menjadi anak yang bandel karena hampir setiap hari kabur untuk pergi ke warnet.

Gue join dengan beberapa "komunitas" alias forum di internet, mungkin gak usah disebut kali ya? Salah satunya yang paling gue aktif adalah devilzc0de, komunitas dimana b374k lahir.

Kala itu b374k masih versi 2, karena gue sadar gue gak bisa berlama-lama didepan komputer, believe it or not gue print kode b374k 2.4 dan gue pelajari seluk beluk dari backdoor Web Shell tersebut. Dan b374k ditulis menggunakan PHP, yang menurut gue lumayan clean struktur kode nya meskipun bahasa ini banyak yang membenci.

Dari situ gue pelajari PHP, bisa bikin "twitter" ala-ala (gue pakai Twitter dari 2009 btw), bikin web shell ala-ala, dsb. Gue pakai komputer lab setiap pelajaran komputer di sekolah gue, it was fun. Dan gue inget di lab tersebut gue install Crunchbang Linux, karena it was cool.

Dilanjut ke Ruby

Ketika SMA gue kenal dengan Codecademy, dan selesai menyelesaikan PHP. Karena merasa bete, gue cobain Ruby. Dan dari situ gue "jatuh cinta" dengan Ruby karena kesederhanaan dan ekspresif nya (belum kenal sama performa waktu itu).

Oh iya selain Codecademy, gue juga belajar di Codesaya. Buatan Indonesia. And it was fun!

Ketika belajar Ruby, gue belum kenal dengan Rails. Yang gue tau dulu, untuk membuat aplikasi web itu ya menggunakan PHP, gue menggunakan PHP di zaman PHP masih rentan dengan serangan SQLi. Program Ruby pertama yang waktu itu gue buat adalah "program kasir" ala-ala pakai SQLite, and it was fun too.

First paid in writing code

Mungkin sekitar tahun 2014, gue berkenalan dengan dunia freelancing. Kala itu platform/marketplace yang gue pakai adalah projects.co.id. Dapet project membuat situs travel yang entah sekarang masih ada atau tidak.

Stack masih gak aneh-aneh, PHP "native" dan database menggunakan Medoo. It was fun, bayaran waktu itu kalau gak salah sekitar 1,4jt. Duit segitu pada tahun segitu di umur segitu udah gede banget menurut gue, dan dari situ pertama kali gue traktir temen-temen gue (dan keluarga) pakai murni duit gue (dan gue pakai ATM BRI yang masih gue pakai sampai sekarang).

Lalu pada tahun 2015-2016, kenal dengan Upwork. Meskipun bukan dollar pertama gue, dari situ gue kenal dengan GitHub (2014) dan Jekyll yang basically Ruby. Project pertama dari Upwork adalah membuat situs Magic Mirror yang dulu pakai Jekyll, ini commit nya masih ada.

Dan dari Upwork juga gue berkenalan dengan Rails, dibayar untuk membuat aplikasi diatas Rails, dan tau kalau PHP bukanlah satu-satunya bahasa untuk membuat aplikasi web.

Dan dari situ gue mendapatkan dollar pertama yang lumayan gede, gue wd ke Paypal gue. And yes, it was fun.

Self-taught

Sengaja gue bawa cerita diatas untuk menggambarkan kalau gue belajar coding secara self-taught, otodidak. Dimulai dari game, bikin cheat, kenal dunia heking (bahkan gue pernah deface modal sqli haha), dan join forum.

Ya, meskipun gue mengambil perkuliahan Teknik Informatika, pada dasarnya belajar secara self-taught lebih lama dari gue kuliah. Gue belajar coding secara otodidak hampir selama gue hidup. Kalau dulu belajarnya lumayan enak: Hanya pelajari apa yang gue belum tau.

Sekarang ngerasanya udah "lumayan banyak tau" jadi rada lumayan sulit meskipun gue selalu menanamkan jiwa newbie pada diri gue. Salah dua pola yang gue yakini oleh Fariz saat ini ke Fariz pada masa lalu adalah rasa penasaran dan tidak takut mencoba. Dan sampai hari ini gue masih menanamkan 2 hal itu.

Gue bukan contoh "programmer yang baik" tapi setidaknya gue salah satu orang yang belajar coding di jalur self-taught. Yang singkatnya, setiap orang bisa belajar coding. Yang bahkan sekarang akses nya lebih mudah dan sumbernya lebih banyak. Gue dulu harus kabur ke warnet (kalau ketauan di botak), print sumber kode, dan cuma memanfaatkan lab komputer sekolah untuk "meng-implementasi" apa yang udah gue pelajari.

First fulltime job

Kala itu ketika kuliah di Bandung, gue join dengan startup bernama KelasKita. Bukan startup yang besar, tapi startup tersebut tempat pertama kali gue bekerja di startup dan juga secara fulltime.

Gaji lebih dari cukup lah untuk ukuran bukan sarjana, tahun 2017, tinggal di Bandung, dan dengan pengalaman yang masih minim. Waktu itu gue join sebagai Frontend Engineer sampai Lead, dengan gaji akhir sebelum resign sekitaran 5jt. Angka yang lumayan untuk orang seperti gue dan khususnya tinggal di Bandung.

Gue join dengan KelasKita karena gue punya semangat yang sama: Semangat berbagi. KelasKita singkatnya untuk mempertemukan pembelajar (I hate pelajar word) & pengajar. Dan gue rasa itu cocok buat gue.

Di KelasKita pakai teknologi dari Jinja, Vue, sampai ke React. Pakai Jinja (+jQuery) waktu masih jadi Frontend biasa, dan Vue & React waktu udah dapet wewenang untuk memilih teknologi sendiri. Sampai sekarang React masih dipakai di produk-produk KelasKita, which is good.

Giving back

Gue berani menulis ini karena gue pernah (dan masih) dibayar untuk menulis kode meskipun angka nya gak fantastis-fantastis banget. Hutang yang paling besar menurut gue adalah ke forum-forum internet dulu, waktu zaman-zamannya masih pada pakai phpBB.

Dari forum-forum tersebut gue banyak belajar, dan juga dari situ gue kenal dengan "komunitas" di internet. Gue rasa gue gak bakal pernah bisa dibayar untuk menulis kode kalau gue gak kenal dengan forum tersebut dan khususnya situs seperti Codecademy.

Cara giving back gue yang sering gue lakukan adalah menulis blog, baik di blog by evilfactorylabs, brief, dan blog ini. Cara ini menurut gue paling mudah & murah dari yang lain meskipun dampaknya masih belum diketahui (tapi gue bisa asumsikan dari sini). Menulis blog lebih tepatnya untuk membagikan apa yang gue pelajari dan pengalaman yang gue punya.

Tapi gue gak mau berhenti disini, karena gue gak murni hanya belajar dari media berbentuk tulisan ini. Inget kan kalau gue pernah belajar juga dari Codecademy dan CodeSaya?

Entah kenapa gue selalu gak berhasil belajar lewat media lain seperti dari video. Gue mengasumsikan lebih suka membaca daripada menonton. Dan juga menjadi self-taught artinya gue gak punya arah, gak punya silabus, meskipun gue tau tujuan dari apa yang gue pelajari tersebut.

Learning by doing

Gue rasa belajar secara efektif selain dari learning by teaching sharing adalah learning by doing. Gue waktu mempelajari kode nya b374k (halo mas revres tanur!) cara inilah yang gue lakuin ketika didepan komputer.

Selain itu, ketika menggunakan Codecademy, gue rasa belajar secara interaktif seperti itu lumayan menarik. Enggak ngebosenin dan bikin penasaran.

Gue ada rencana buat bikin seperti itu juga. Ini inti dari tulisan yang panjang ini.

Dan harusnya gratis, karena gak bisa menjamin apa-apa. Dan bahkan bukankah kita sudah terbiasa membayar sesuatu untuk sesuatu yang tidak menjamin apa-apa selain janji manis?

Jalur kuliah adalah pilihan yang menarik, mereka menjanjikan gelar yang bisa dipakai untuk terjun ke industri karena sudah menjadi standar. Coding bootcamp juga pilihan yang menarik, mereka menjanjikan pekerjaan karena mereka memiliki partner dan di backing oleh orang yang memiliki nama di industri.

Dan karena yang ingin gue buat ini sebatas bentuk giving back dan tidak bisa menjamin apa-apa, maka dari itu gue buat gratis aja. Duit nya darimana? Seperti biasa, uang tip.

Orang-orang di evilfactorylabs rata-rata orang-orang yang dibayar untuk nulis kode kok, dan itu pekerjaan mereka sehari-hari. Cuma gue aja yang nganggur, yang singkatnya, uang disini bukanlah sesuatu yang menjadi tujuan utama.

But yes, your support are always welcome.

Jenisnya akan seperti Codecademy & FreeCodeCamp, tapi pakai bahasa Indonesia. Mungkin gue akan mengarah ke silabus yang mereka gunakan juga, semoga relevan di Indonesia.

Dan ini salah satu effort yang gue kerahkan untuk bentuk giving back gue via evilfactorylabs. Gue enggak ada maksud buat ngerusak pasar (misal dengan ngasih harga gratis), karena jelas-jelas model bisnis™ nya beda: Gue gak ngejamin apa-apa dan gue bukan siapa-siapa. Beda dengan kuliah yang ngasih gelar sarjana dan coding bootcamp yang ngejanjiin pekerjaan & di backing oleh orang-orang ternama.

Tujuan gue singkatnya adalah ingin menjawab yes, everyone can code. Meskipun banyak yang skeptis dengan jalur self-taught (khususnya dari yang berlatar belakang CS), tapi mengapa harus peduli dengan validasi orang lain?

Sebagai penutup, gambarannya mungkin seperti mengikuti coding bootcamp. Bedanya, lo gak diarahin secara langsung; Gak dijamin apa-apa, dan pada akhirnya akan build something juga. Dan ya, gratis. Mengapa uang selalu menjadi pertimbangan?

Terima kasih sudah mendengarkan cerita saya, have a good weekend!

Update: Typo while typing 2009 as 2019 in entering SMP section