post-image

Pentingnya Fundamental

23 Oktober 2022

Explicit

Read in English
Share on Twitter

Daftar Isi

Disclaimer

Seperti artikel sebelumnya, ini berdasarkan pengalaman pribadi dan hasil pembicaraan dari beberapa teman saya. Mungkin beberapa teman pembaca memiliki pengalaman berbeda, tetapi setidaknya ini bisa menjadi referensi.

Introduction

Cerita dimulai ketika saya lulus S1 pada Juni 2020 dan bergumul mencari pekerjaan saat itu. Saya dengan polosnya skip bagian fundamental dan langsung loncat ke framework seperti React, Vue, dan Angular. Saya mengalami sendiri bagaimana sulitnya untuk lolos user interview di beberapa perusahaan, terutama yang menggunakan metode live coding interview. Kebanyakan soal yang diberikan adalah soal-soal dasar yang sebenarnya tidak terlalu sulit, tetapi saya kelabakan sendiri karena lemahnya basic skill saya saat itu.

Beruntung pada September 2020, saya bisa mendapatkan pekerjaan pertama sebagai frontend engineer di sebuah software house company. Saat itu, tesnya hanya berupa take home tes menggunakan framework Angular dan syukurlah saya bisa lolos. Saat bekerja di sana saya kebanyakan menggunakan Ionic dan Angular sebagai tech stack utama. Bahkan, saya pribadi jarang menggunakan custom CSS kurang lebih setahun karena Ionic sudah menyediakan UI Component yang sedemikian rupa sehingga jarang sekali perlu dicustom.

Masalah baru muncul setelah setahun lebih saya bekerja dan tidak berniat untuk memperpanjang kontrak di sana, otomatis saya harus mengulang kembali menjadi job seeker seperti saat saya masih fresh graduate. Cukup banyak kegagalan yang saya alami ketika user interview.

Setelah bergumul ke sana kemari, syukurlah saya bisa mendapatkan pekerjaan baru di kantor yang sekarang sekitar Desember 2021 (on boarding pada Januari 2022). Jenis tes yang dijalani juga merupakan take-home test, sehingga saya bisa memaksimalkan segala potensi saya agar bisa lolos saat itu. Saya akhirnya lolos user interview dan memutuskan untuk menerima offer yang diberikan.

Masalah lain muncul ketika 3 bulan pertama saya masih harus bergulat dengan task kantor yang berkaitan dengan styling (CSS). Saya sebenarnya biasa saja ketika harus koding hal-hal yang terkait logic seperti integrasi, data fetching atau data manipulation. Tetapi, kalau styling, itu adalah kelemahan terbesar saya😂..

Seperti yang pernah saya tulis di artikel saya yang berjudul “I Remake My Personal Site using Tailwind CSS”, saya terlalu bergantung kepada tools atau framework. Dalam kasus saya, kebanyakan terlalu bergantung pada UI Component Library seperti Chakra UI. Saya bisa dengan mudah dan cepat styling dengan Chakra UI, tetapi ketika saya harus berganti menggunakan framework lain atau bahkan native CSS, itu cukup untuk membuat saya tidak tidur seharian😆.

Saat itu, saya bahkan cukup kesulitan membuat layout sederhana hingga menghabiskan berjam-jam menggunakan Tailwind CSS dan custom CSS😩. Di situlah saya sadar, fundamental harusnya jangan dilewatkan sebelum lebih jauh terjun menggunakan tools seperti Chakra UI, Bootstrap, atau tools lain.

Setelah sekitar 3 bulan bergulat dengan hal-hal sederhana ini, kurang lebih inilah alasan saya mengapa segalanya harus dimulai dari yang dasar dahulu.

Kenapa Fundamental Itu Penting?

Bayangkan Kamu Harus Bekerja Menggunakan Tools yang Bukan Preferensimu

Nah inilah yang terjadi pada saya😂. Singkatnya, saya melewatkan dasar-dasar Javascript dan CSS, langsung terjun ke React, Next.js dan Chakra UI.

Di kantor pertama saya ketika saya bekerja sebagai frontend engineer, saya mendapatkan project yang menggunakan Ionic. Untuk 3 bulan pertama, saya cukup bergumul dengan syntax Ionic dan Angular. Beruntungnya kalau masalah styling tidak terlalu sulit karena kebanyakan menggunakan UI Component bawaan dari Ionic, jarang sekali custom CSS.

Setahun kemudian, ketika saya pindah ke kantor yang sekarang, saya masih dalam kebiasaan buruk saya yaitu skip bagian fundamental. Lalu tiba saatnya saya diberikan task yang menggunakan Tailwind CSS. Untuk bagian logic, seperti yang sebelumnya saya katakan, saya tidak begitu kesulitan. Begitu harus membuat styling, itulah saat yang paling “horror” karena saya belum mengerti dasar CSS meskipun saya bekerja sebagai frontend engineer😩.

Sepanjang proses probation, saya pun masih harus bergulat dengan task yang berkaitan dengan styling ini. Saya bahkan harus menghabiskan berjam-jam hanya untuk membuat layout sederhana. Untungnya, seiring waktu, saya juga mempelajari Tailwind CSS di waktu senggang saya dan akhirnya bisa mengatasinya. Kalian bisa baca artikel saya di sini untuk cerita lebih lanjut.

Nah apakah kalian menyadari sesuatu di sini? Kamu bisa langsung loncat ke framework atau tools tanpa belajar fundamental. Mungkin itu bukan masalah besar sampai akhirnya kamu harus bekerja tanpa framework atau tools preferensimu. Pasti akan cukup melelahkan untuk beradaptasi karena belum adanya pemahaman dasar yang solid akan hal itu.

Cepat atau Lambat Kamu Tidak Bisa Bergantung Pada Tools

Ketika di kantor lama, saya terlalu bergantung pada third-party tools hampir di setiap task yang diberikan. Saya pernah diberikan sebuah task untuk menampilkan maps di mobile app dan itu butuh waktu hampir beberapa minggu hanya untuk menemukan third-party library yang cocok.

Sebenarnya dalam beberapa hari saya menemukan library Angular Google Maps dan bisa menyelesaikan task pada saat itu (untuk sementara). Masalah baru muncul ketika client terkait meminta untuk custom tampilan yang ada. Ini bahkan sempat membuat saya sakit karena butuh beberapa hari kemudian sampai akhirnya fitur tersebut selesai. Mudah memang menggunakan third-party tools, tetapi itu akan sulit di-customize.

Yang berikutnya adalah di kantor yang sekarang. Saya berdiskusi dengan tim UI/UX tentang project web terbaru yang akan dibuat nantinya. Saat itu sang manager sudah menetapkan tools apa saja yang sekiranya bisa digunakan. Tetapi endignnya, kami memutuskan Tailwind CSS sebagai styling framework utama, karena kami butuh yang bisa di-custom sesuai kebutuhan. Kalau tidak ada tools yang bisa di-custom, ya tentu harus bisa buat sendiri bukan?

Manager saya bahkan pernah mengatakan ini dalam sesi probation review saya.

Perkuat fundamental kamu, terutama perihal CSS. Suatu hari kamu gak akan bisa bergantung sama tools yang ada di luar sana.

Bagaimana Cara Mengatasi atau Menghadapinya?

Bagaimana kalau seandainya saya sudah terlanjur melewatkan fundamental dan terlalu bergantung dengan tools?

Tenang, masih ada harapan di sini😁. Saya pun masih bergumul kok dengan hal ini. Kurang lebih ini tips dari saya yang bahkan sampai sekarang masih saya lakukan.

Belajar Lagi Dari 0

Kalau punya waktu senggang di luar jam kerja, cobalah sempatkan untuk belajar lagi hal-hal dasar. Kamu bisa pakai situs belajar pemrograman seperti Freecodecamp atau Hackerrank untuk melatih kemampuan teknis pemrograman lewat coding challenges yang diberikan. Jika kamu seorang frontend engineer dan mau mempertajam pemahaman flexbox, bisa coba Flexbox Froggy Game. Itu adalah game berbasis web yang bisa menolong kamu untuk memahami cara kerja flexbox.

Dari pengalaman saya pribadi, sangat sulit rupanya menemukan waktu yang pas untuk belajar dari 0 karena saat masih bergumul mencari kerja, saya harus kejar-kejaran dengan waktu untuk mendapatkan pekerjaan. Sekarang pun juga sulit karena sudah bekerja fulltime. Tetapi bukan berarti saya tidak bisa belajar lagi.

Di waktu senggang saya, biasa saya sempatkan follow akun Twitter Kevin Powel (seorang CSS Expert) dan menonton beberapa videonya di Youtube. Setidaknya itu bisa membantu saya untuk memahami dasar CSS secara teori. Kalau kamu kesulitan menemukan waktu yang pas untuk belajar, setidaknya sempatkan sekedar membaca konsep dasar dari dokumentasi resmi seperti MDN atau menonton video youtube yang membahas dasar-dasar pemrograman.

Gunakan Tools atau Framework Yang Memaksa Kamu Mempelajari Fundamentalnya Sembari Kamu Menggunakannya

Nah inilah yang menurut saya paling berdampak bagi saya pribadi. Ketika kamu tidak punya waktu untuk belajar fundamentalnya, pilih tools atau framework yang memaksa kamu mempelajari itu sembari kamu menggunakannya. Seperti yang sempat saya katakan sebelumnya di artikel saya di sini, saya menemukan itu ketika saya menggunakan Tailwind CSS.

Meskipun saya tidak secara langsung menggunakan syntax CSS, tetapi saya bisa belajar dasar-dasar CSS sembari menggunakan syntax Tailwind. Untuk membuat kode yang baik dan efektif, terutama ketika styling menggunakan Tailwind CSS, saya harus paham dulu dasar-dasar seperti flex, grid, margin, padding, dan konsep CSS lainnya.

Ini juga berlaku di React. Sekalipun React adalah library Javascript, tetapi “jeroannya” kan tetap syntax Javascript yang mau tidak mau harus dipahami dulu sebelum lebih jauh melangkah kan. Saya pun terpaksa belajar ulang Javascript syntax supaya kode React yang dihasilkan lebih clean dan efektikf.

Beruntung di tempat kerja saya yang sekarang juga menggunakan React dan Tailwind CSS sebagai tech stack utama, sehingga saya bisa bekerja sekaligus belajar tech stack baru ini😁.

Closing

Perkuat fundamental dulu sebelum menggunakan framework atau tools. Itu akan mempermudahmu ketika menghadapi issue atau problem yang ada karena kamu sudah paham konsep dasarnya, bukan hanya tools itu sendiri.

Cepat atau lambat, kita tidak bisa selalu bergantung pada tools. Saya pernah mengalaminya ketika sedang develop fitur map untuk KAI Access dan itu sangat melelahkan, terutama ketika harus custom tampilan dari tools yang sebenarnya sudah deprecated.

Kamu juga mungkin akan kesulitan mendapatkan pekerjaan karena sekarang ini kebanyakan perusahaan sudah menerapkan metode live coding interview atau “agnostic” test case untuk kandidat programmer. Saya sendiri pernah gagal dalam proses user interview seperti ini karena belum adanya skill dasar yang solid.

Tapi, jangan khawatir, tetaplah konsisten belajar. Jangan terlalu FOMO. Saya mengerti banyak framework atau tools di luar sana. Bahkan saya sempat menyinggungnya di artikel saya yang berjudul Frontend Fatigue.

Tapi sekali lagi, pelajari fundamentalnya dahulu! Saya tahu mungkin ini bisa membuat kamu jadi lebih lambat. Lebih baik lambat belajar tetapi dengan pemahaman yang solid, dibandingkan memaksakan diri belajar banyak malah jadi burnout dan stress sendiri. Belajar itu seperti marathon, bukan lari sprint.

Terima kasih sudah membaca artikel ini, semoga membantu. Apabila ada hal yang ingin didiskusikan, boleh tuliskan di kolom komentar ya.

Ingin catch-up dengan saya lebih lanjut? Boleh follow Twitter saya di @YehezGun.

Back To Articles Page
Home
Projects
Articles
About Me