Cara gagal menjadi Programmer

Panduan untuk Junior Developer

As disclaimer, I’m not a successful ones either as developer nor junior developer. As far as I know I still become programmer until now, and happy to be getting paid for it.


Sedikit gambaran, saya seorang developer. Lebih tepatnya seseorang yang bertanggung jawab terhadap tampilan akhir kepada pengguna, yang biasa disebut seorang Frontend Developer.

Tidak bekerja di well-know company, tapi konteks yang akan kita bicarakan disini adalah bukan tentang jabatan, besaran gaji maupun kerja dimana. Melainkan tentang menjadi seorang programmer.

Alias, bagaimana cara gagal menjadi seorang programmer. Lebih jelasnya, untuk pemula. Junior. Seperti saya.

Hanya tau dasar, bukan mendasar.

Every experienced developer talks about fundamental. Para junior biasanya bingung dengan subjek dari fundamental itu apa. Tipe data primitif, kah? Struktur data? Desain pola? Dan lain sebagainya.

Dan gue yakin lo pun udah tau tentang apa itu integer, string, array, ekspresi logika, perulangan, dan berbagai istilah lainnya yang diajarkan oleh dosen anda. Tau apa yang paling mendasar?

Coba jelaskan apa itu function. Mengapa menggunakan function. Kapan menggunakan function. Mengapa harus function?

Gak usah jauh-jauh ke linked list atau tree dulu, karena hampir disetiap pekerjaan kita akan berurusan dengan abstraksi. Coba deh jawab pertanyaan ‘sederhana’ diatas terlebih dahulu, tau gak?

“Gue gak tau apa itu function, tapi tau kok cara bikin function”.

That’s it. You only know the basic.

Terus mengetik kode

Ada tanpa nya ya bangsat. Tunggu dulu.

Praktis. Praktis. Praktis. Bisa gak sih kita langsung praktik saja gak usah teori bertele-tele.

Bisa.

Sayangnya, setiap orang memiliki cara belajar yang berbeda-beda.

Ada tipe orang yang belajar terus-terusan hanya dari praktik, gue menyebutnya dengan tutorial-driven pseudo developer untuk orang-orang seperti itu. Sorry.

Kenapa gue skeptis sama orang-orang seperti itu?

Karena ketika mereka menemukan suatu kondisi dimana kasus tersebut tidak ada di tutorial, fuck off. Gan cara ambil data dari database di Express gimana ya? Soalnya beda sama yang di Rails.

Gan cara bikin tombol di React gimana, ya? Soalnya beda dengan yang di Vue.

Yang penting terus ngetik kode, berdasarkan tutorial. Tanpa peduli apa yang dia tulis. Persetan dengan apa yang gue tulis? Yang penting gue pengen bikin chat bot pakai Node.js, that’s it.

Berpangku dengan tools

Bahasa program, framework, library semua hanyalah tools. Alat. Pembantu. Jika kalian sadar — dan silahkan salahkan saya bila salah — bahasa program tidak beda jauh dengan bahasa lainnya. Bahasa Indonesia, Inggris, Zimbabwe, dsb. Semua tentang sintaksis, semantik, morfem, dll. Bagaimana kalian menulis sebuah instruksi, yang nantinya instruksi tersebut akan dieksekusi. Oleh lawan bicara, oleh diri anda sendiri, compiler, interpreter, komputer. Whatever.

Jika kalian sadar juga, saya sebenernya hanya memperpanjang topik nomor satu. Ya, topik nomor satu adalah akar dari bagian-bagian yang saya tulis menggunakan heading level dua disini.

Jika kalian sudah tau “mendasar” nya, ingin bahasa program apapun; Database apapun, library/framework apapun akan mudah digunakan. Masalah ingin menguasai atau tidak, that’s not a business in here.

Tidak memiliki prinsip

Sebagai seorang programmer, kita yakin bahwa kita bisa membuat sesuatu yang tidak mungkin menjadi mungkin. Siapa yang bisa menyangka bahwa hari ini kita bisa berkomunikasi dengan orang Inggris dari Bandung tanpa memakan waktu yang lama? Atau, bisa mengirim pesan yang kaya media tanpa harus mengeluarkan biaya yang besar?

Berkat keyakinan tersebut, seringkali kita hilang arah. Ingin jadi Frontend developer, backend, android developer, iOS, dsb. Secara “teknis”, mungkin kita bisa. Silahkan gunakan alasan “pengetahuan fundamental” anda untuk menjawab persoalan tersebut. Padahal yang kita hanya lihat adalah permukaannya saja, dan disinilah prinsip berperan agar anda tidak kehilangan arah.

Menjadi generalis pun bukan masalah selama kita memiliki prinsip dan alasan mengapa menjadi generalis. Yang penting terarah, memiliki fokus. Bukan berjalan kearah manapun, apalagi tanpa arah.

Menghiraukan Soft skills

Coding merupakan hard skills. Nama-nama yang so techy di requirements pada lowongan pekerjaan adalah hal-hal yang bisa disebut hard skills karena itulah yang dibutuhkan perusahaan dan kalian harus kuasai atau setidaknya tau tentang itu.

React, Redux, Rails, ActiveRecord, Hadoop, k8s, kafka, apapun itu.

Tapi ada suatu hal yang sering kali kita hiraukan, bukan dilupakan. Karena memang kehadirannya seperti tidak “ter-anggap”, yakni soft skills. Cara berkomunikasi, menyelesaikan masalah, mempelajari sesuatu, dan lain sebagainya.

Soft skill bukanlah hal “mendasar” untuk seorang developer, melainkan untuk semua manusia. Go learn & practice it.


Mungkin begitu saja pembahasannya, saya menulis ini karena merasa gagal menjadi programmer. Don’t be that guy, okay? Programming sebenarnya hanya tentang benar/salah, 0/1, menyelesaikan sebuah masalah dengan cara membuat solusi dalam bentuk program. Sesimple itu. Maaf kalau aku sok keren atau sok hebat, love you guys.