Salah satu yang membedakan level programmer adalah ada di analisa masalah & penyelesaian masalah. Seperti, kita harus menggunakan React karena blablabla, kita harus menggunakan MongoDB karena blablabla, dan lain-lain.

Ada satu yang paling gue keselin dari temen-temen gue, meskipun gue maklum dengan mereka. Gini ilustrasinya.

Kalian membeli obat karena sakit kepala. Kalian pastinya sebelum mengkonsumsi obat tersebut melihat dulu kan dari masa kadaluarsa, resep nya apa aja, cara penggunaan nya gimana, dan lain-lain.

Begitupula di dunia programming!

Sebelum mengadopsi suatu teknologi, yang perlu kalian baca adalah THE MANUAL. Dokumentasi nya. Ada versi berapa aja, dan mana yang stable. Di versi ini bisa apa dan enggak bisa apa; Ada public API apa saja yang bisa digunakan, dan bagaimana cara menggunakan nya.

Lo menggunakan React versi 16. Di code legacy kalian atau enggak di code hasil copy paste kalian dari StackOverflow, ada PropTypes. Sedangkan dari versi 15.5, PropTypes sudah menjadi library terpisah di prop-types. Lalu ada error di console:

Uncaught TypeError: Cannot read property 'string' of undefined

Lalu googling. Baru deh dapet masalah nya. Ya mending kalau googling, kalau apa-apa nanya? Read The Fucking Error.

Cara menguasai sesuatu itu padahal tinggal baca manual nya aja. Ingin menguasai Rust, NodeJS, Golang, React, MongoDB, JavaScript? Baca dokumentasinya. Kenapa, males ya? Pengen yang instant-instant aja? Trial and error boleh, asalkan solving sendiri.

Ini baru di level penyelesaian masalah dari sesuatu yang kita buat loh, belum ke level misalnya seperti Kenapa rendering kita lambat padahal kita sudah menggunakan React? Kenapa menggunakan setTimeout daripada requestAnimationFrame? Dan lain-lain.

Jadi, kalau enggak tau, baca dulu dokumentasinya. Kalau nemu error, baca dulu pesan error nya apa. Let me simplify this

How to ask a programming-related question:

Asking for a feature

Have you read the documentation?
No: Read it.
Yes: Have you check the API Docs?
No: Read it.
Yes: Have you googling about it?
No: Google it.
Yes: Please ask.

Asking for a error

Have you read the error message?
No: Read it.
Yes: Have you making sure your code?
No: Read your code.
Yes: Have you check is there any typos?
No: Check it. Yes: Have you googling about it?
No: Google it. Yes: Please ask.

As simple as that, okay? Karena gue selalu suka berbagi, gue selalu open untuk segala pertanyaan. Tapi kalau gini terus, bukan karena gue capek ya, tapi karena 'kasian' nanti enggak ngerti-ngerti tentang hal yang paling fundamental ini, jadinya selalu terpaku kepada orang lain.

Maka dari itu, biasanya di setiap Job Vacancy yang gue tau, biasanya requirement nya ada bagian/sejenis: Self-­awareness and a desire to continually improve. Itu gue ambil dari Senior Frontend Engineer di Slack. Ya, kesadaran diri dan keinginan untuk terus ber-improvisasi. KESADARAN DIRI. Atau ini: Self-motivated and high-performing, with a passion for both the business and technology. Diambil dari Senior Front End Engineer di Netflix. Memotivasi diri dan berkinerja tinggi. SELF-MOTIVATED.

Intinya: Read the fucking manual & error message. Mungkin kalian sudah, kasih tau yang lain kalau belum! Atau setidaknya yang belum sadar.