diskusi.tech (beta) Community

loading...

Jawaban programmer yang (tidak terlalu) handal

gofrendiasgard profile image Go Frendi Gunawan ・3 min read

Ada artikel yang cukup keren tentang jawaban para programmer handal untuk beberapa pertanyaan. Silahkan baca dulu: Jawaban para programmer handal (jurnal.dev)

Saya tidak mau menyebut diri saya handal. Kadang untuk solve masalah sederhana saja butuh waktu berhari-hari juga. Tapi setidaknya saya tahu beberapa hal, dan beberapa pertanyaan di artikel tersebut cukup related dengan pengalaman saya.

Maka dari itu, ijinkan saya yang tidak terlalu handal ini memberikan jawaban (walaupun tidak ada yang tanya juga wkwkwk)

Dari mana kamu belajar programming?

Dari sekolah/kampus/buku. Bahasa pemrograman pertama yang saya pelajari adalah formula di lotus123 (seperti formula excel). Itu saya pelajari sewaktu SMP.

Selepas itu, di SMA saya pernah belajar pascal dan delphi. Awalnya saya kurang suka dengan pascal, tapi lama kelamaan saya mulai paham dan bisa.

Saat menjelang masuk kuliah, saya belajar action script (macromedia flash mx 2004) secara mandiri dari buku fotokopian.

O ya, saya pertama kali punya komputer saat akan masuk kuliah. Saya masih ingat specs nya:

  • Processor: pentium 4
  • Ram: 128 MB
  • Harddisk: 40 GB
  • Akses internet: tidak ada

Tahun 2000 an juga ada tabloid komputer (komputek dan PC Plus). Benar-benar "good old time" 🙂

Apakah sekolah itu penting?

Jika kamu termasuk orang yang bisa melakukan eksplorasi dan pembelajaran secara mandiri, maka sekolah barangkali tidak terlalu penting. Kamu hanya membutuhkan beberapa teman/mentor yang bisa diajak berkonsultasi jika kamu menemui kesulitan.

Tapi jika kamu mudah kehilangan motivasi, dan kesulitan menentukan arah, maka sekolah itu sangat penting. Sekolah tentu saja bukan jaminan bahwa kamu akan bisa belajar dengan baik. Kamu membutuhkan kurikulum yang baik, guru yang baik, dan teman-teman yang baik. Jika tidak bisa menemukan teman-teman yang baik (yang sama-sama punya niat belajar), maka kamu harus mencari komunitas di luar sekolah.

Alternatif yang lain adalah bootcamp. Beberapa bootcamp menyediakan kurikulum yang cukup baik dan practical, tapi mungkin tidak terlalu dalam di aspek fundamental.

Entah sekolah, atau bootcamp, pastikan kamu sudah punya tujuan, kamu cukup tahu apa yang harus kamu pelajari untuk mencapai tujuan itu. Khusus untuk bootcamp, pastikan dalam kurikulumnya kamu belajar hal-hal yang cukup fundamental, karena teknologi dan framework datang silih berganti.

Apa skill yang paling penting dimiliki oleh programmer?

Endurance, Problem solving, Zoom in/Zoom out.

Kamu harus punya mentalitas tidak menyerah walaupun kamu sudah mengerjakan sesuatu selama berjam-jam dan belum menemukan solusi.

Tapi kamu juga harus cukup realistis saat kamu tahu bahwa sesuatu itu tidak mungkin dilakukan. Mungkin ada pendekatan yang harus diubah, mungkin harus pakai teknologi yang berbeda, mungkin solusi akan mudah ditemukan kalau struktur datamu diubah. Atau mungkin kamu sudah buntu, dan kamu pikir ada seseorang yang lebih berpengalaman dan bisa membantumu. Pencarian solusi tidak melulu tentang teknologi, tapi juga tentang komunikasi.

Kamu juga perlu bisa melakukan zoom-out/zoom-in masalah seperlunya. Misalnya kamu kesulitan untuk mengakses sebuah item pada sebuah list. Mungkin kamu perlu mempertanyakan lagi, apakah struktur datanya harus list? Apakah akan menimbulkan masalah kalau pakai hashmap? Kalau hashmap lebih mudah dipakai dan tidak menimbulkan masalah, ya udah pakai hashmap saja 🙃

Apakah pelajaran matematika dan fisika penting untuk programming?

Dalam banyak kasus, dan untuk peranan yang biasa-biasa saja, tidak. Kamu hanya perlu tahu matematikan dasar, konsep himpunan, dan aljabar boolean.

Tapi, jika kamu ingin memahami konsep yang lebih dalam seperti bagaimana machine learning bekarja, maka kamu wajib tahu apa itu fungsi turunan, apa itu integral, bagaimana membaca sebuah rumus matematika, dsb.

Seorang montir tidak perlu tahu bagaimana spare-part dibuat. Dia hanya perlu tahu bagaimana spare-part pada sebuah kendaraan berinteraksi dan bersinergi. Kalau kamu cuma butuh membuat sebuah sistem machine learning dengan cepat, maka kamu bisa pakai tensorflow, scikit learn, dan memahami sedikit best practice. Baru kalau ada masalah yang misterius, kamu perlu serahkan pada yang lebih ahli 😂

Apa hal besar berikutnya yang akan datang di dunia programming?

Tidak tahu. Tapi sepertinya akses teknologi akan semakin mudah. Orang awam akan bisa membuat cluster kubernetes dan membangung sistem ML Ops hanya dengan mengklik sejumlah tombol dan membayar sejumlah uang ke cloud provider.

Kalau kamu hanya bisa melakukan hal yang itu-itu saja, kamu akan tergantikan oleh cloud providers.

Kalau kamu punya 3 bulan untuk belajar teknologi baru, apa yang kamu pilih?

Rust + WASM

Apa menurutmu hal yang membuat programmer 10x atau 100x lebih produktif?

  • Komunikasi
  • Kemampuan membaca dan mempertanyakan masalah
  • Kemampuan untuk memampukan orang lain (entah dengan cara membuat tool/script otomasi, atau dengan cara mengajar)

Apa tool favorit yang kamu tidak bisa hidup tanpanya?

  • Terminal
  • VSCode + vim keybinding

Apa buku favoritmu yang terkait dan tidak terkait dengan programming?

  • Brief History of Time (Stephen Hawking)
  • Effective Engineer (Edmond Lau)
  • Sapiens (Yuval Noah Harari)

Pertama kali di publish di sini: https://gofrendi.notion.site/Jawaban-para-programmer-handal-4572b144a189480ea1f37737ba13bf21

Discussion

pic
Editor guide
Collapse
sari profile image
sari

kasih link ke podcast cerdev yang eps pak go dong harusnya nih