Categories

Feature

[Menjadi] “Software Engineer” yang Baik?

Membutuhkan sepuluh tahun untuk dapat menguasai sesuatu dengan sempurna

Guest Post - 26 June 2015

Biasanya saya memerlukan waktu yang cukup lama untuk menjawab pertanyaan tersebut atau hanya tersenyum untuk menanggapinya karena konteksnya yang tidak terdefinisi dengan baik. Kita mendengar banyak mitos tentang bagaimana menjadi teknisi software yang baik dan kebanyakan dari kita lebih sering membicarakan tentang hal sebaliknya – kebiasaan buruk dari para teknisi software, seperti peretas pemalas, diktator, superman yang super kuat, ahli tai-chi yang ceroboh, terlalu berhati-hati, terpaku pada Google, pembenci dokumentasi, tidak suka coba-coba, ahli sandi yang licik, kura-kura ninja, atau mungkin lebih memikirkan bisnis, kita sebut mereka investor jangka pendek. Anda tidak perlu berkonsultasi dengan para ahli di Quora untuk tahu perilaku buruk mereka, karena pastinya Anda sudah cukup hapal.

Biarkan saya membuat definisi saya sendiri untuk pertanyaan di atas – jika kita peduli dengan apa yang buruk, baik atau sangat baik – atau tingkatan penilaian lainnya, artinya kita berbicara tentang sebuah peran di dalam perusahaan sebagai seorang teknisi software, dimana seseorang harus bekerja sama dengan orang lainnya. Pendapat saya dalam artikel ini tidak cocok bagi mereka yang melakukannya hanya untuk bersenang-senang demi mendapatkan karya terbaik, lagipula mereka tidak memiliki target atau penilain kerja.

Pertama-tama, kebanyakan dari jawaban yang Anda dapat di Quora mengenai “Menjadi Teknisi Software yang Baik” didominasi oleh para pemuja Google (akhir-akhir ini para pendukung Microsoft semakin berkurang namun hal itu mungkin berubah suatu saat nanti) yang menjelaskan pentingnya analisis dalam melakukan pekerjaan tersebut, seperti matematika, penyusun, algoritma/struktur data, crypto, algoritma distribusi paralel, kecerdasan buatan, atau keahlian praktis seperti coding, bahasa pemrograman, pengujian, debug, kerangka, peralatan, keahlian di bidang domain, SDLC, dll.

Sepertinya Anda memerlukan seorang Magister atau Doktor dari sekolah CS ternama sebelum ia dapat bekerja di Google (atau gelar lainnya untuk membantu Anda bertumbuh setelah ada di sana). Uppss – seperti yang saya sudah sampaikan – Anda memerlukan kemampuan komputasi numerik/ilmiah, statistik, probabilistik, dan masih banyak lagi. Saya malas untuk menulis semuanya namun untuk memberinya nama saya memilih menyebutnya sebagai kemampuan kasar.

OK – sebelum Anda berpikir bahwa Anda bukanlah seorang teknisi software yang baik karena paragraf di atas, Anda mungkin sesekali harus melihat Hidup dan Waktu Anders Hejlsberg, bukan hanya hidup dari Martin Odersky, Ken Thompson atau Terence Tao yang memang memiliki latar belakang pendidikan yang sangat baik. Masih banyak cerita lain yang dapat kita temukan – meskipun saya tidak merekomendasikannya untuk anak saya. Penting untuk mengetahui semua kemampuan kasar tersebut, namun hal tersebut bukan jaminan.

Pada profesi apapun yang memerlukan seseorang untuk bekerja dengan orang lain, butuh waktu untuk dapat menguasai sesuatu, bukan hanya masalah teknis. Mengapa? Masalah domain jauh lebih besar. Teknik software bukan lagi pekerjaan satu orang dan telah menjadi fokus dari orang-orang serta bisnis perusahaan. Jika saya jabarkan mengenai kompetensi yang dibutuhkan untuk berhubungan dengan orang lain atau bisnis, maka Anda pastinya akan mendapatkan daftar yang lebih panjang.

Sedikit diantaranya adalah kemampuan komunikasi, menulis, presentasi, mendengarkan, kepedulian bisnis, kepedulian sosial, manajemen waktu, disiplin harian, perencanaan produk, estimasi, dan yang paling menakutkan – kepemimpinan. Tidak ada hukum pasti mengenai cara untuk berhubungan dengan orang lain hingga saat ini. Kita semua harus mengalami, membaca, belajar, berpikir, berdiskusi dan melakukan banyak hal untuk menjadi lebih baik. Mari kita sebut hal ini sebagai kemampuan halus.

Saya asumsikan Anda setuju dengan nama yang saya berikan – kemampuan halus dan kasar bukanlah sesuatu yang dapat dibuat secara singkat. Untuk menjadi seorang teknisi software yang baik, Anda harus menyeimbangkan keduanya, untuk perlahan-lahan menguasai keduanya. Ya, memang butuh waktu tapi jika Anda benar-benar ingin melakukannya, maka hal itu tidaklah mustahil. Seberapa lama?

Kebanyakan dari para lulusan baru TIDAK akan menyukai jawaban saya; dibutuhkan 10 tahun untuk menguasai sesuatu dengan baik. Mereka yang dapat memulai lebih awal cukup beruntung untuk alasan apapun, contohnya ia mulai mencintai matematika dan kode sejak SMA karena ayahnya membelikannya komputer dan ia sangat mencintainya. Saya gunakan kata mencintai untuk menggambarkan sesuatu yang lebih dari ketertarikan kasual, jangan bingung. Anda dapat memilih profesi apapun – saya percaya bahkan seorang badut memerlukan waktu 10 tahun untuk menguasai keseimbangannya berdiri di atas bola serta melatih kemampuan menghiburnya.

Mereka yang menolak aturan 10 tahun tersebut biasanya meremehkan prosesnya atau bahkan isi dari pembelajarannya. Mereka akan mengatakan – pengetahuan analitis/fundamental dan keahlian adalah bagian dari perfeksionisme, yang belum tentu akan meningkatkan kemampuan praktis/pragmatis. Faktanya – keseimbangan adalah kuncinya dan hal itu butuh waktu. Kasar vs halus, Perfeksionisme vs Pragmatisme, Lari Cepat vs Maraton, Bisnis vs Teknis, semuanya perlu keseimbangan dan itu butuh waktu.

Merelakan diri Anda untuk menerima aturan 10 tahun tersebut akan mengizinkan Anda untuk fokus dalam membangun kompetensi. Tidak peduli dari mana Anda memulai – dari tingkatan matematika SMA atau sekolah CS termama. Mereka yang memulai lebih awal memiliki waktu lebih banyak, namun jika Anda tidak termasuk di dalamnya, jangan khawatir. Masa kerja rata-rata saat ini adalah sekitar 30 tahun, Anda masih dapat menghabiskan 10 tahun pertama Anda untuk menjadi teknisi software yang baik, terus dorong diri Anda sekeras mungkin (biasanya hanya keras di awal), dan tetap menjaga hasrat Anda pada hal tersebut.

Masalahnya adalah ketika Anda tidak menerima aturan tersebut dan hidup dengan ketidakpastian untuk kemudian menyadari bahwa Anda tidak sepenuhnya menguasai apapun. Jika Anda termasuk di dalamnya, maka Anda dapat menggunakan rumus para pencinta Google di Quora dan mulai membangun kemampuan kasar+halus dengan sangat sederhana. Nikmati prosesnya dan temukan keindahan dari hal-hal kecil yang Anda lakukan. Seperti yang dikatakan Feynman:

Ada banyak ruang di mana Anda dapat menemukan keindahan dari hal-hal kecil.

Setelah Anda memutuskan, maka Anda harus membayar harganya. Pekerjaan sebagai teknisi software memerlukan ketahanan Anda untuk berfokus (tanpa gangguan) pada analitik spesifik, kemampuan, orang lain dan masalah yang terkait dengan bisnis. Sistem 2 Anda harus bekerja 4-8 jam sehari secara konsistem dan Sistem 1 harus bekerja sama kerasnya atau mungkin kurang. Sistem 2 adalah bagian otak Anda yang lebih lambat, lebih bijak, penuh usaha, jarang digunakan, penuh hitungan, lebih sadar dan lebih logis. Sistem 1 adalah cepat, otomatis, lebih sering digunakan, lebih emosional, klise, dan tidak sadar. Ya, memang sulit bagi orang kebanyakan untuk menyeimbangkan antara Sistem 1 dan Sistem 2, tidak mudah.

Lihat lagi. Anda mulai dengan matematika di sekolah, lalu belajar hal lainnya secara bertahap. Jadilah hebat dalam algoritma dan struktur data, cobalah menerjemahkan konsep komputasi ke dalam bahasa pemrograman, belajarlah lebih dari satu bahasa (kuasai salah satunya terlebih dahulu), bekerjalah pada perusahaan yang bonafit, tulislah banyak kode, luangkan waktu untuk berpikir sebelum menulis kode, bacalah kode orang lain, bacalah makalah untuk membantu Anda menyelesaikan masalah teknis yang rumit, perhatikan kualitas kode yang Anda tulis, berkomunikasi, dokumentasi, uji coba, dan semua hal yang berhubungan dengan teknik, orang lain dan bisnis.

Ya, jangan pernah lupakan keseimbangan antara keahlian kasar dan halus. Dengan ketersediaan MOOC – seperti Coursera, Udacity dan Edx, Anda dapat belajar dari yang terbaik bahkan dengan gratis. Anda dapat belajar dari para Profesor terbaik yang akan mengajari Anda hal yang ingin Anda pelajari. Nikmati perjalanannya, karena memang layak untuk dijalani. Jangan terganggu oleh impian startup jika Anda memang belum siap (jujurlah pada penilaian Anda).

_
Artikel ini diterbitkan di blog pribadi Risman Adnan dan diterbitkan ulang atas seizin penulis.

Risman Adnan adalah Direktur Samsung R&D Institute Indonesia. Sebelumnya, ia bekerja di Microsoft Indonesia selama 10 tahun.

Dailysocial.id is a news portal for startup and technology innovation. You can be a part of DailySocial.id`s startup community and innovation members, download our tech research and statistic reports, and engage with our innovation community.

Sign up for our
newsletter

Subscribe Newsletter