diskusi.tech (beta) Community

loading...

Tanya Kodenol: Backend

mimindeeptech profile image Mimin Deep Tech ・5 min read

Ibarat pertunjukan teater, backend adalah orang-orang yang bekerja di balik layar untuk menyajikan pertunjukan tersebut: sound system, orkestra musik, operator lampu, floor director, timers, dan berbagai mekanik pertunjukan. Namun pada dunia software, backend adalah merancang business logic dan sistem yang menjadi inti dari software. Begitu pendapat Giri Kuncoro, Software Engineer Gojek.

Pada tanggal 10 Juni 2020, Deep Tech bersama Giri Kuncoro membuka sesi QnA membahas topik seputar backend. Ingin tahu selengkapnya? Yuk simak QnA di bawah ini.

Deep Tech Foundation (@deeptech_id)
Wah udah jam 7 ni. Ok deh sesuai janji, mimin panggilin @girikuncoro untuk jawab pertanyaanmu seputar backend. Langsung aja kalo temen2 mau nanya, reply tweet ini dan jgn lupa ketik hashtag #KodeNol, ya. Biar gampang dicari di kemudian hari materinya. Yuk mari kita mulai Q&Anya!

Q:
Pertanyaan pembuka, dari IG story
Mau jadi backend engineer, harus mulai belajar darimana? Untuk orang yang bener-bener buta coding

A:
Untuk yang bener-bener buta koding, saran saya belajar koding dulu, ada banyak sekali belajar koding di internet baik gratis di youtube maupun yang berbayar.

Q:
Opan Mustopah (@opan_mustopah)
Kalo misalnya kendala di bahasa Inggris, solusinya gimana mas? Untuk sekarang resource belajar yg berbahasa Indonesia gak sebanyak bahasa Inggris, kecuali mungkin untuk bahasa program yg populer di Indonesia macem PHP atau Java.

A:
Ini problem yang cukup banyak ditemui juga, solusinya belajar bahasa Inggris atau untuk yang mengerti bahasa inggris, jadilah content creator dalam bahasa indonesia, sekedar menerjemahkan juga impact nya cukup besar :) http://kubernetes.io/id sendiri ada sekitar 7000+ views per bulannya.

Q:
Muhammad Adam Fahmil Ilmi (@MuhAdamFIlmi)
Mas @girikuncoro mau tanya, bagaimana menentukan tech stack yang tepat untuk developing back-end? Faktor apa saja yang harus dipertimbangkan? Makasih

A:
Pertama mental yang harus ditanamkan: tech stack itu selalu berubah dan berganti tiap tahunnya, jadi jangan terlalu terpaku pada tech stack, tapi jadilah engineer yang terus belajar dan mempelajari trend teknologi. Yang terpenting adalah memperkuat fundamental engineering, kuasai minimal 1 bahasa pemrograman dengan fasih, buku-buku esensial yang disarankan ada di sini https://www.gojek.io/blog/the-gojek-essential-reading-list Kemudian, jangan memaksakan tech stack tertentu untuk diaplikasikan hanya sekedar hype dan keren, fokus pada problem yang sedang kamu hadapi, dan explore beberapa solusi untuk mengatasinya, baru pilih tech stack yang sesuai dengan solusi kamu.

Q:
Sidik (@Sidik05224020)
Mas @girikuncoro saya mau nanya, jadi sebenarnya kerjaan seorang backend engineer itu apa? Lalu langkah-langkah apa aja yang harus dilakukan agar bisa menjadi backend engineer.

A:
Halo @Sidik05224020 apa kamu pernah menonton pertunjukan teater? Frontend adalah yang kamu tonton secara langsung: pemainnya, backgroundnya, properti pertunjukan dan lainnya. "Backend" adalah orang-orang yang bekerja di balik layar untuk menyajikan pertunjukan tersebut: sound system, orkestra musik, operator lampu, floor director, timers, dan berbagai mekanik pertunjukan. Pada dunia software, kalau kamu backend engineer, kamu akan merancang business logic dan sistem yang menjadi inti dari software. Misalnya kalau kamu buka http://google.com, yang terlihat disitu adalah "frontend"nya, dimana kamu bisa mengetikkan kata kunci pencarian, dan hasilnya akan ditampilkan pada browser. Nah backend adalah engineer yang membuat sistem untuk memproses "kalau kata kunci A, hasil pencarian 100 halaman ini ditampilkan", untuk mengolah ini tentu sangat rumit: mencari di seluruh halaman yang ada di Internet, merancang algoritmanya supaya cepat (https://id.wikipedia.org/wiki/PageRank). Kalau aplikasi gojek sendiri, ketika kamu memesan goride lewat aplikasi, backend engineer membuat sistem yang mampu mencari driver terdekat sesuai tujuan kamu, dan ini pun cukup rumit algoritma dan implementasinya

Q:
카이 (@alfinnt196)
Selamat malam bang Giri. Saya punya dua pertanyaan nih

  1. Saya tinggal di daerah yang masih minim infrastruktur komunikasinya, terutama internet, saran bahasa pemrograman untuk backend yg nggak banyak konfigurasinya dan mudah untuk di pelajari pemula apa ya?
  2. Bagaimana cara menularkan semangat koding ke orang lain terima anak muda, agar juga memiliki semangat belajar? Tips buat pacar suka sama koding gimna ya? Soalnya pacar saya blm tahu apa itu coding, biar aku ada motivasi buat ngodingnya hehe Terima kasih :)

A:

  1. Pertama, selamat untuk kamu karena telah gigih dan mau untuk belajar di tengah keterbatasan, semangat! Bahasa pemrograman apapun bisa dijalankan di komputer kamu tanpa perlu koneksi internet, tapi akan lebih mudah jika ada, untuk mendownload library program dan dokumentasi. Jadi saran saya saat ada koneksi Internet, download tutorial yang banyak, setelah itu bisa koding cukup di komputer saja, kalau mengikuti kurikulum di US, biasanya bahasa pemrograman yang pertama dikenalkan: python/javascript, lalu Java.
  2. Kalau pacar kamu gak suka koding dan tidak ada motivasi, saya kurang tahu gimana caranya bikin suka koding hehe, mungkin dikasih surprise yang involve teknologi? :) Tapi saya sering memperkenalkan koding ke adik saya yang masih kelas 2 SD mengikuti. https://code.org

Q:
Ahmad Musa Ibrahim R (@ahmadmusair)
Penasaran, most loved language? Most dreaded language? Why?

A:
Most loved language: Python, bahasa pertama saya, sangat sangat mudah dipelajari, concise dan clean, mudah dimengerti oleh engineer awam, interpreted language sehingga mudah buat dicoba dan experiment saya juga pernah berfoto dengan creatornya :) https://id.wikipedia.org/wiki/Guido_van_Rossum

Most dreaded language: Assembly, saya banyak mengoprek mikrokontroler sewaktu dulu (belum seperti sekarang, dulu hanya Assembly yang disupport), kode nya sulit dimengerti, dibaca, debuggingnya sulit

Q:
(Tweet deleted by author)

A:
Kalau menurut buku pragmatic programmer https://en.wikipedia.org/wiki/The_Pragmatic_Programmer… minimal ada bahasa baru yang dipelajari setiap tahunnya, supaya menambah pola pikir dalam koding dan mengembangkan software karena setiap bahasa selalu ada plus minusnya. Cara belajarnya yang saya suka: tamatin tutorial di dokumentasi resminya, lalu buat proyek pribadi yang menggunakan bahasa baru tersebut supaya lebih mengena sambil baca dokumentasinya saat programming, kemudian showcase dengan tulisan blog atau talk di meetup. Kalau ingin benar-benar expert, luangkan waktu beberapa bulan untuk menjawab-jawab pertanyaan di komunitas, stackoverflow, github issues, karena selalu saja ada yang tidak kita ketahui, proses menjawab pertanyaan merupakan proses learning yang sangat efektif.

Q:
Gusti Alfian M. P. (@gustialfianmp)
Mas @girikuncoro sarannya dong, sekarang saya tertarik dengan microservice tapi ada issue dgn kubernetes karena saya tidak punya cluster untuk experiment. Jadi sekarang saya baca enterprise integration patterns dan mempelajari massage broker.

A:
Untuk belajar kubernetes tidak perlu punya cluster di cloud atau server besar, cukup bermodalkan laptop dan ikuti tutorial https://kubernetes.io/id/docs/tutorials/hello-minikube.
@googlecloud menyediakan free credit $300 untuk kamu yang belum pernah punya akun, cukup daftar di https://cloud.google.com. Kalau tidak ingin repot dan fokus belajar, cukup bermodalkan browser ikut tutorial gratis dari @teamKatacoda. Tapi sebelum @kubernetesio, pelajari dulu soal @Docker. Ohya kami bersama teman-teman komunitas sedang menerjemahkan dokumentasi @kubernetesio ke bahasa indonesia juga http://kubernetes.io/id barangkali berguna.

Q:
Alkka (@iritalka)
Mas Giri calon fresh graduate spt saya cuma punya skill php crud (codeigniter) tapi saya ga bisa javascript karna belom fokus belajar kesitu. Apakah masih bisa buat lamar2 pekerjaan?

A:
Pertama, jangan pernah tidak percaya diri dengan skill yang telah kamu miliki, tapi pastikan kamu menguasai benar skill yang kamu tulis di CV, karena biasanya interview pekerjaan akan seputar hal tersebut. Jika kamu klaim bisa Php, belajar dan mengerti bagaimana cara kerjanya, jangan hanya berhenti di menggunakannya saja. Kalau kamu mengerti internalnya, konsep dan pemahaman teknologi tersebut akan bisa berguna untuk mempelajari dan mengawinkannnya dengan teknologi lain. Kenapa begini?

Karena pembelajaran atau learning bersifat compounding, sama seperti dalam bisnis, uang hasil keuntungan bisnis di bulan ini, bisa digunakan kembali untuk bisnis sehingga menghasilkan keuntungan berkali lipat di bulan berikutnya. Buku yang sangat bagus untuk fresh graduate dan engineer muda terkait ini adalah http://effectiveengineer.com karya Edmond Lau, ada di tokopedia (bukan promosi :P) https://tokopedia.com/pustakabahtera/the-effective-engineer-edmond-lau-hardcover-tali

Jadi jawabannya: pede aja dalam melamar pekerjaan, jangan berhenti belajar, dan jangan cepat puas dengan skill yang sudah kamu dapat. Belajar bisa lebih cepat dengan teman dan join komunitas, good luck! Gojek nerima programmer fresh melalui program GoAcademy, biasanya kalau sudah buka bakalan ada di webnya: https://gojek.com/go-academy/ fresh grads yang masuk Gojek akan "disekolahkan" dulu melalui program engineering bootcamp kita 3 bulan.

Nah, itu tadi sesi QnA bareng Giri Kuncoro, Software Engineer Gojek. Gimana? Masih ada yang mau ditanyain ke Giri? Kirimkan pertanyaanmu pada kolom komentar di bawah ini ya!

Discussion

pic
Editor guide
Collapse
enjaytarigan profile image
Enjay Tarigan

Yang merancang database apakah seorang backend engineer juga? Atau ada posisi khusus untuk menangani database? Sehingga backend engineer fokus dengan penggunaan database.