8 Juni, 2020

Just JavaScript. Rangkaian pembelajaran untuk mental yang lebih baik!

Beberapa menit setelah gagal mendaftar sebagai calon developer di Tailwindcss, dengan tatapan serius tapi hati kosong memindai profil twitter pendiri Tailwindcss (@adamwathan). Perjalanan mata akhirnya tertuju pada “rekomendasi” orang – orang yang berkaitan dengan Adam, lalu teringat kalau saya ternyata mengikuti akun salah satu Co-Founder Redux juga developer React, Dan Abramov. Tanpa maksud tertentu akhirnya saya menemukan Just JavaScript dari profil Dan. Perjalanan pun dimulai.

  • Saya telah menyelesaikan sampai modul ke enam saat membuat tulisan ini.
  • Tulisan ini membahas tentang dunia JavaScript secara khusus.

Selama ini rangkaian pelajaran pemrograman yang saya pelajari -baik itu secara daring atau bukan- semakin lama terasa biasa saja. Sulit menemukan faktor “wow”. Yah wajar saja sih karena memang secara teknis ilmunya sama semua, paling jika ada pembaruan fitur atau versi bahasa pemrogramannya. Tinggal bagaimana cara membawakan materinya dan ini tentu saja masih banyak yang menarik.

Setelah 5 tahun lebih menjadikan pemrograman sebagai profesi, sepertinya beberapa waktu lalu saya sudah mencapai titik jenuh. Terkhusus ketika merasakan kuliah magister dengan major: Computer Science. Sangat memalukan rasanya, setengah dekade bergelut sebagai -katanya- developer, tapi rasanya ada sebuah lubang besar yang hilang. Kupikir dengan terus mempelajari dan berusaha menguasai teknologi termutakhir akan menutupi lubang tersebut sedikit demi sedikit tapi ternyata saya semakin tenggelam dalam kegelapan yang tak berujung. Bahkan secercah cahaya semakin menjauh.

Kegagalan besar yang kualami akhirnya membuatku terdiam sejenak dalam kegelapan. Sekedar tahu dan bisa memakai produk teknologi termutakhir ternyata bukanlah sesuatu yang bisa dibanggakan. Membuat header yang punya komponen progress bar loading? Membuat datepicker dengan UI yang cantik dan berbeda dibanding input form biasa? Membuat fancy component apa aja deh misal memakai framework JS yang lagi viral sekarang atau membuat REST API pakai Feather JS mode TypeScript. Lalu saya berfikir, dengan kemahiran itu saya sudah bisa dengan percaya diri mencap sebagai “Senior Front End Developer” atau “Advanced Full-stack Developer” atau apalah yang penting judulnya keren. Apa itu benar? Benar, tidak salah. Cuma setelah merenung rasanya tidak pantas untuk menyematkan gelar dengan realita kemampuan yang seperti itu. Karena siapa saja bisa melakukannya, tidak ada yang spesial!

Lalu dari sisi “portofolio”, biar bisa menjadi developer yang bersinar harus bagaimana kemampuannya? Yah setelah kupikir, mereka yang membuat framework, library atau sekedar snippet pendek yang berhasil memecahkan suatu masalah dengan kode vanilla JavaScript itulah yang pantas. Secara kemampuan, mereka tidak tergantung oleh library untuk memecahkan suatu masalah. Setelah terbawa suasana suram sejenak dan menyadari hal itu, sepintas terlintas apa yang sebenarnya selama ini terasa hilang. Kemampuan menguasai konsep, pondasi atau fundamental dari sesuatu. Kalau kamu berhasil memahaminya dengan benar dan menguasainya, niscaya permasalahan apapun dapat diselesaikan tanpa ketergantungan.

Terlihat ideal tapi begitulah saya mengakuinya. Misal sebagai seorang frontend developer mendapatkan tugas dari kantor untuk membangun dan mengembangkan sebuah aplikasi web hanya sekedar mengikuti spesifikasi yang sudah dibuat oleh UI/UX desainer. Tentu ini hal yang mudah. Tapi bagaimana jika tingkat tantangannya meningkat seperti kamu dituntut untuk membuat aplikasi dengan struktur kode yang scalable, extended, ramah plugin bahkan siapapun yang baru bergabung kedalam tim untuk mengerjakan proyek tersebut mereka dengan cepat dan mudah berkontribusi? Tidak semudah itu Ferguso. Diperlukan pemahaman yang benar dan mendalam mengenai konsep dan pondasi dari JavaScript secara khusus dan tentu ilmu pemrograman itu sendiri.

Oke, akhirnya kembali ke dunia nyata. Kunjunganku pertama kali ke situsnya tidak meninggalkan rasa sinis. Membaca kalimat berikut membuatku merasa menjadi korban sepenanggungan.

“During my first few years of using JavaScript, I felt like a fraud.”

Kemudian penjelasan tanpa basa basi membuat saya terus membaca menggulung layar kebawah sampai akhirnya diyakinkan oleh kalimat,

“…is my distilled mental model of how JavaScript works

Rangkaian pelajaran yang ditulis oleh Dan Abramov ini sangat unik, memiliki faktor “wow” yang mana adalah materinya itu sendiri. Menggunakan metafora dari dunia nyata sehingga penjelasannya sangat mudah dipahami, adanya soal ringkas di akhir setiap modul untuk meyakinkan diri kita bahwa yang kita pelajari tidaklah sia – sia dan yang terpenting adalah materinya. Siapapun yang mempelajarinya diharapkan membangun (ulang) pemahamannya terhadap fundamental pemrograman JavaScript sehingga memilki model mental yang lebih baik. Ternyata selama ini, salah satu hal mendasar yang ku cari adalah model mental.

Selanjutnya saya akan berusaha untuk menuliskan review singkat setiap modul yang sudah saya pelajari. Doakan saya agar bisa konsisten menulisnya 😄

Terima kasih buat Dan Abramov dan Maggie Appleton yang telah membuat rangkaian pelajaran ini.