Tulisan kali ini sebenernya dibikin sambil ngantuk-ngantuk ya, jadi disclaimer dulu kalo nanti kontennya enggak koheren alias jaka sembung. Soalnya yaa pokoknya gitu lah baru sempat nulis malam-malam, inginku tidak nulis tapi aku juga ingin berkomitmen. So.. here we go…
Di periode dua bulan ke belakang, sebelum akhirnya saya mendaratkan pilihan untuk melanjutkan karir di tempat kerja saya yang sekarang—PDSO—saya juga melakukan apply ke beberapa perusahaan yang lain, alhamdulillaah banyak juga yang lolos sampai ke tahap technical test maupun setelahnya.
Setelah melakukan proses rekrutmen di beberapa perusahaan, ada beberapa pattern yang saya temui ketika melakukan technical test, terutama kalo technical testnya live coding. Live coding kan kadang bisa jadi mimpi buruk kita ya, ngoding diliatin orang, takut salah, kejar-kejaran dengan waktu juga, makanya kadang kita tuh nge-blank kalo pas lagi live coding.
Nah maka dari itu, saya mau rangkum pengalaman saya supaya teman-teman yang baca post kali ini bisa menghadapi technical test dengan mudah.
Understand the Basic
Selalu dan selalu saya mengingatkan teman-teman untuk memahami basic-basic dalam Javascript, yaaa enggak basic banget, tapi yang basic lah pokoknya. Karena banyak case dimana sebenernya bisa disolve pake fitur bawaan dari Javascript. Biasanya, biasanya nih, akan banyak berkutat dengan data array dan object, maka perlu banyak memahami di sana operasi-operasi apa aja yang bisa kita lakukan, misal sorting, mapping, filtering, flat map, dll dll dll.
Familiarity with Frameworks
Setelah memastikan kamu telah memahami basic-basic Javascript, supaya kamu bisa menyelesaikan sebuah masalah sesimple mungkin, going to the next level kamu juga perlu familiar dengan framework yang kamu pakai. Gimana React bekerja, gimana kalo lagi dipake di server components, apa bedanya sama Next JS, dll dll dll.
Again, barangkali ketika kamu ada issue, bisa diselesaikan dengan mudah memakai library bawaan. Sehingga pekerjaanmu jadi lebih mudah untuk dipahami, kalau mudah.
Always, Always, Always Handle the Errors
Step ketiga ini sangat penting juga karena saya pernah kena juga ini, ketika live coding, setelah selesai membuat task yang dimaksud (biasanya akan relate dengan functions), kita akan ditanya-tanya gimana cara kita bisa improve code yang kita tulis. Ketika pertanyaan itu muncul, step pertama adalah menambahkan error handling. Ini wajibun, tidak boleh tidak, harus dilakukan, karena ini termasuk sebagai basic skill.
Gini contohnya
const someFunction = (datas: Array<any>) => {
// add the error handle first
if (!datas || datas.length === 0) {
// do something if error
return
}
// your code goes here
}
const fetchData = (url: string) => {
return fetch(url).then(res => {
if (!res.status === 200) {
throw new Error("Your error message here")
}
// your code goes here
}).catch(err => {
console.error(err)
})
}
Atau kalau misalnya ada relate dengan fetch data dari API kamu juga perlu memberikan error handling, jadi basic of the basic adalah error handlingmu. Jangan sampai lupa ya 😘
Optimize the Performance
Naaahhh ini baru tahap terakhir, setelah code kita jadi, sudah kita kasih error handling, tentunya code yang kita buat tidaklah sempurna, masih bisa dilakukan improvement. Maka dari itu, your next step is optimizing the performance kaya pake memoization, cache, dll dll dll. Karena kita kan akan menghadapi pelanggan melalui code kita, maka kita harus improve UX nya agar pelanggan kita betah, salah satu agar bisa optimize adalah menghabiskan waktu yang singkat dan performant ketika digunakan.
Cara mengoptimize paling dasar ya pakai aja useMemo
atau useCallback
, jadi biar bisa cached dan memoized.
const SomeComponent = () => {
const countAllStars = useMemo(() => {
return 1000; // ini akan jadi value jadi countAllStars
}, [])
}
Optional: Prepare for Testing
Biasakan teman-teman untuk memakai tools testing kaya Jest, vitest, playwright, artilery, pokoknya semua tools untuk test, biasakanlah memakainya, karena ini bisa jadi nilai yang sangat plus untuk kamu ke perusahaan. Selain itu, menggunakan unit test bisa bikin code kita lebih terstruktur juga kok.
Gitu deh, saya sudah ngantuk broku, mripate wis pedes. That’s it, Have a Great Day!