Langsung ke konten utama

Mempersiapkan Diri untuk Magang sebagai Software Engineer Backend di Unicorn Company

Siapa yang ga mau magang di unicorn company seperti Bukalapak, Tokopedia, Traveloka, atau bahkan decacorn company seperti GO-JEK? Aku rasa kita sebagai anak informatika sepakat bahwa perusahaan tersebut merupakan dream company. Setidaknya sebagian besar dari kita merasa demikian. Yah, kalau sekelas Google dan kawan-kawannya sih you don't say lah ya. Dalam hal ini kita fokus sama perusahaan yang ada di dalam negeri dulu deh. Pertanyaannya, persiapan seperti apa yang dapat mempermudah kita diterima magang di perusahan tersebut?

Kita semua tau bahwa perusahaan ini bukan perusahaan biasa-biasa aja sehingga kita tau orang-orang yang mereka cari tentunya bukan yang biasa-biasa juga. Gimana sih caranya biar standout? Perlu disadari bahwa perisapannya gabisa sebentar dan aku secara pasti ga tau kualifikasi paling minimumnya seperti apa. Semua yang aku tulis di sini lebih ke great to have. Setidaknya dari pengalamanku ini aku berhasil dapetin tempat magang. Kenapa aku bagi pengalamanku? You see, sebenernya banyak mahasiswa capable di Indonesia tapi sayangnya kebanyakan dari mereka gatau arah aja. Aku harap dengan sedikit dorongan dan arahan dariku ini bisa meningkatkan kualitas SDM Indonesia untuk beberapa masa ke depan. Jangan kalah sama negara lain please. Setidaknya aku yakin kita tuh mampu kalau berusaha.

Asumsi aku ketika kamu membaca ini kamu udah bisa memprogram. Paling ngga kamu bisa ngerjain tugas besar kamu di perkuliahan. Sangat disarankan untuk mahasiswa baru buat baca ini karena kamu punya banyak waktu buat mempersiapkan diri. Buat tingkat akhir? Well, kamu bisa ambil beberapa bagian dari sini dan disesuaikan dengan kebutuhan kamu.

Sedikit Latar Belakangku

Aku sadar manusia pada dasarnya ga bakal dengerin orang yang keliatan sukses juga ngga. Bener, kan? Maksudku, kalo dia gabisa ngasih contoh ya kenapa didengerin, kan? Nah, aku juga sadar bahwasannya latar belakang setiap individu itu berbeda-beda sehingga kamu gabakal bisa ngikutin 100% caraku. Aku mau kamu ambil apa yang kamu perlu dan apa yang kamu bisa. That's it. Disesuaikan aja dengan kebutuhan kamu. Kalau bisa diambil semua malah lebih bagus sih.

Oke, aku Wisnu. Mahasiswa tingkat tiga di Universitas Telkom. Aku kuliah di Telkom karena emang biar bisa seenak jidat, maksudku kuliah sambil kerja karena kalau aku nargetin kampus yang gila-gila kayak ITB atau UI gitu aku rasa aku bakal kesulitan buat belajar di luar mata kuliah yang aku ambil. Selain itu karena aku liat banyak anak Telkom yang sering ikut kompetisi jadi yaudah aku bulatkan tekat kuliah di sini. Actually karena ada Proclub Telkom University aja sih.

Aku ngoding udah dari tahun 2009, kuliah tujuannya buat mempertajam kemampuanku tentunya. Walaupun kadang kesel sama hal-hal tertentu yang bikin pengen banget DO. Yah, sejauh ini aku udah punya pengalaman kerja profesional sekitar tiga tahun. Perusahaan yang paling notable ya Bukalapak, aku kerja part-time di Bukalapak. Semuanya berkat kenekatanku sih. Selama kuliah selain belajar sebagai tanggungjawab mahasiswa, aku juga eksplorasi beberapa hal di dunia pemrograman. Banyak deh, aku bikin proyek-proyek kecil, ikut kompetisi yang berbau pemrograman, dan masih banyak lagi. Semuanya punya satu tujuan yaitu untuk mempersiapkan diri agar CV/resume punyaku standout aja. Meskipun aku cinta pemrograman tapi tentunya make a living juga perlu jadi aku harus memikirkan hal-hal tersebut.

Apakah itu udah cukup bagimu agar mau mendengarkanku? Aku rasa udah cukup sih. Nah, tulisan ini aku tulis berdasarkan pengalamanku ikut proses rekruitasi magang di Tokopedia dan Traveloka SG. Selain itu aku ambil dari pengalaman temanku juga yang pernah magang di Bukalapak. Aku mulai magang di Tokopedia bulan Juni ini dan aku juga lolos magang Traveloka SG tapi aku jujur aja kalau udah nerima Tokopedia jadi aku rasa aku udah ngamanin tempat di Traveloka kalau mau fulltime di sana setelah wisuda I guess?

Langkah 1: Kenali Apa itu CV dan Resume

Ini langkah pertama yang penting banget sih buatku karena kebanyakan mahasiswa atau bahkan yang udah sarjana gatau apa bedanya CV dan resume. Apalagi cara bikin CV/resume yang bagus, bukan? Tau bedanya aja ngga. Dalam konteks software engineer backend, CV/resume itu gaperlu cantik-cantik banget guys. Gaperlu lah pake desain yang ciamik dan sebagainya. CV/resume itu yang penting kontennya. Tapi jangan berantakan juga sih. Intinya, CV/resume harus tertata rapi layout-nya, bagus kontennya, gaperlu indah tampilannya. Apalagi pake bikin CV/resume dalam bentuk web segala, please deh gausah alay. Kecuali ya kalau kamu disuruh bikin creative CV/resume. Itu udah lain cerita. Pada umumnya ngga disuruh jadi gausah deh.

Apa sih bedanya CV sama resume? Sederhanya, diliat dari panjang kontennya aja. Resume itu satu halaman doang sementara CV selengkap-lengkapnya yang mana bisa berlembar-lembar banyak banget. Udah tau kan bedanya? Nah, isi dari CV/resume itu harus relevan sama posisi yang mau kamu lamar. Ngapain masukin pengalaman debat bahasa coba? Ga bikin kamu standout sama sekali, percaya deh. Kalau emang gaada yaudah gausah dicantumin. Dari sini, kalau lowongan magangnya minta CV ya kasih CV, kalau minta resume ya kasih resume. Kalau gaada CV kamu bisa kasih resume, sebaliknya aku rasa gabisa karena kalau recruiter minta resume tapi kamu kasih CV bakal sulit bagi dia buat menyimpulkan kamu itu orang yang seperti apa. Tolong catat ini pendapat pribadi, ya.

Langkah 2: Belajar Bahasa Inggris

Tolong jangan meremehkan kemampuan bahasa. Tanpa bahasa kamu gabakal bisa komunikasi. Bahasa Inggris itu di era sekarang udah penting banget dan udah kayak hal yang biasa. Kalau kamu gabisa bahasa Inggris kamu bakal ketinggalan jauh sama yang lain, percaya deh. Dengan bisa bahasa Inggris juga kamu membuka lebar kesempatan kamu buat daftar perusahaan di luar Indonesia, contohnya yang di Singapura deh. Gaada ruginya, aku jamin. Kalau kemampuan bahasa Inggris kamu masih kurang "layak", aku saranin langkah pertama kamu sebelum mempersiapkan diri untuk hal-hal lain mending siapin diri buat ini dulu deh. Lagian resource belajar pemrograman juga kebanyakan pake bahasa Inggris juga, kan? Nah, justru kamu bakal lebih cepet belajar karena kamu bisa bahasa Inggris sehingga apa yang kamu pelajari gabakal kena batasan karena bahasa.

Langkah 3: Belajar Git

Bisa git itu di dunia pemrograman udah bukan hal yang wow lagi karena ini emang keharusan. Secepat mungkin aku saranin kamu buat belajar Git, bikin repository terus upload ke, asumsikanlah GitHub. Kamu boleh bikin aku Git di GitHub, GitLab, Bitbucket, atau apapun lah namanya. Saranku sih bikin akun GitHub aja dulu karena GitHub yang paling populer di antara banyak layanan. Kalau di perkuliahan gadapet ya kamu harus belajar sendiri.

Kalau kamu penasaran sama GitHub, kamu bisa liat aktivitasku di GitHub seperti apa.

Langkah 4: Kembangin Proyek

Kembangin proyek apapun deh, kecil-kecilan juga gamasalah. Atau bahkan kamu bisa pake tugas besar kamu aja. Simpen proyek kamu di GitHub. Kalau kamu bisa bagi ke orang malah lebih bagus dan berharap apa yang kamu bikin itu berguna buat yang lain. Kenapa ini aku saranin? Karena emang gimana caranya buat recruiter tau kamu bisa ngoding kalo gaada kondingan yang bisa mereka liat secara publik? Recruiter pasti bakal nyari tau tentang kamu makanya hal-hal seperti ini sangat aku saranin.

Lebih bagus kalau kamu bisa berkontribusi ke proyek open source yang udah ada. Cari yang bintangnya banyak. Bakal gampang buat kamu standout loh ini.

Langkah 5: Bikin Akun LinkedIn

Tolong kalau bikin akun LinkedIn itu setelah kamu punya sesuatu buat dikasih liat ke dunia. Kalo punya akun LinkedIn tapi gaada yang bisa dikasih liat fungsinya apa coba? Minimal bisa ngasih liat kamu ngerjain proyek apa, kan? Nah, sedikit-demi-sedikit kamu bangun profil LinkedIn kamu. Seiring dengan berjalannya waktu.

Selain itu, LinkedIn ini penting banget karena orang gabakal tau kamu itu orang yang bagaimana kalau kamu ga ngasih tau. Bikin deh sekarang juga kalo belum punya. Contohnya kamu bisa liat profil LinkedIn-ku.

Langkah 6: Latih Computational Thinking

Banyak mahasiswa yang lupa kalau esensi dari kuliah itu untuk membentuk computational thinking, bukan buat aplikasi layaknya main lego yang tinggal susun-susun doang pake library atau apapun lah itu. Memang benar ada StackOverflow tapi kamu gabisa bergantung sepenuhnya sama itu. Latih computational thinking karena ini merupakan hal pertama yang diuji setelah CV/resume kamu lolos. Juga, ini membutuhkan waktu jadi kamu harus mulai dari sekarang juga, secepatnya deh. Kalau kamu gapernah denger apa itu competitive programming, aku saranin buat cari tau dan belajar dari sekarang. Gaperlu sampe jadi juara competitive programming juga kok, yang penting kamu udah mulai terbiasa untuk pakai pendekatan computational thinking. Itu aja sebenernya.

Kamu bisa liat profil URI Online Judge-ku sebagai contoh. Selain URI juga ada HackerRank, TLX, Codeforces, dan lain-lain. Pilih sesuai dengan selera aja. Aku cukup sering latihan di sana.

Terus, materi apa yang harus aku fokusin? Nah, beruntungnya kita soal-soal yang dipakai gajauh-jauh dari mathematics, string, greedy, dan dynamic programming. Kamu bisa fokusin hal-hal itu aja dulu. Even better kalo kamu mau belajar hal selain itu. Ah, iya, sama struktur data juga. Biasanya sih array, set, stack, queue, hashmap, sama binary search tree. Aku saranin buat banyak-banyak baca dan latihan struktur data lainnya. Bisa kamu cari di Wikipedia juga.

Sebagai tambahan, kamu juga harus belajar tentang time/space complexity termasuk asymptotic notation.

Langkah 7: Ikut Kompetisi

Kalau kamu gapunya pengalaman kerja sama sekali, kompetisi merupakan satu-satunya jalan terbaik untuk bisa standout dengan cepat. Paling tidak bisa lolos sampai final aja udah cukup. Keluar dari zona nyaman kamu please. Untuk apa jadi ikan besar di kolam kecil? Tidak ada gunanya. Kalau kamu udah punya pengalaman kerja yang oke sih baru kamu bisa lewati bagian ini. Namun, tetep aku saranin buat ikut kompetisi. Aku jamin ga bakal rugi.

Salah satu contoh kompetisi yang bakal bagus banget buat CV/resume dan persiapan kamu itu ACM-ICPC. Ikut juga GEMASTIK, Compfest, Vocomfest, dan beberapa kompetisi pengembangan perangkat lunak yang terkenal. Gampangnya, ikut kompetisi competitive programming dan app development adalah sesuatu yang ideal. Kalo bisa sampe final pokoknya deh.

Langkah 8: Bikin CV/Resume

Jangan bikin CV/resume di saat kamu mau ngelamar kerjaan doang. Bikin dari sekarang terus diperbagus seiring dengan berjalannya waktu. Sehingga, ketika kamu butuh CV/resume, kamu tinggal pake yang udah ada aja. Jadi kalau ada perubahan juga kamu tinggal ubah sedikit doang. Nah, isinya bagaimana? Kamu bisa ikuti standarnya Twitter untuk resume. Ingat, isi yang relevan dengan posisi software engineer backend.

Khusus untuk CV, kamu bikin satu berkas CV yang isinya selengkap mungkin. Isinya literally apapun deh termasuk hal-hal yang gaterlalu relevan sama posisi software engineer backend. Ketika kamu butuh CV untuk hal-hal tertentu, kamu bisa buat duplikasinya lalu hilangkan hal-hal yang gaperlu.

Tolong tulis hal yang sesuai dengan fakta. Jangan overestimate dan jangan underestimate diri kamu sendiri. Apalagi melebih-lebihkan prestasi kamu misalnya, jangan deh aku kasih tau aja ya. Demi kebaikan kamu juga.

Langkah 9: Perbanyak Baca Tentang Software Engineering

Hal yang paling susah di bidang software engineering itu terlalu banyak hal yang perlu kamu tau. Mulai dari design pattern, arsitektur perangkat lunak, penggunaan basis data, caching, dan sebagainya. Hal ini dan computational thinking adalah apa-apa yang paling sering bikin orang-orang gagal. Di sini kamu diuji banget pengetahuannya. Jadi, sering-sering ikut nimbrung ke komunitas pemrograman bila perlu nanya dan ikut diskusi. Sering-sering nanya ke temen yang udah tau atau bahkan udah kerja kalau kamu punya.

Kalau bisa ya implementasi juga, jangan baca-baca doang. Seenggaknya kamu kaya akan pengetahuan software engineering sih.

Langkah 10: Nekatin Aja, Aim High

Cara terbaik untuk maju adalah dengan nekat. Ya, nekat aja udah daftar ke perusahaan-perusahaan unicorn. Aku juga bisa diterima part-time di Bukalapak karena nekat. Ini waktu pertama kali kamu jadi tolong tekankan di pikiran kamu untuk mencari tau proses rekruitasinya, jangan fokus ke hasil. Kalau kamu lolos ya bersyukur kalau ngga ya kamu punya modal lebih di waktu yang akan datang. Ketika kamu ga lolos, kamu harus cari perusahaan yang "tingkatannya" atau standarnya sedikit turun. Pada kesempatan ini pokoknya kamu harus punya pengalaman magang deh, mau dimana pun itu yang penting posisi kamu ada hubungannya sama posisi software engineer backend. Ini bakal jadi modal bagus di kesempatan berikutnya.

Langkah 11: Kenali Berbagai Macam Proses Rekruitasi

Masing-masing perusahaan itu punya caranya sendiri buat nyari talent. Dalam hal ini ya peserta magang alias kamu. Bukalapak punya caranya sendiri pun Tokopedia dan Traveloka sehingga ya prosesnya berbeda-beda. Walaupun pastinya akan ada interview di fase terakhir.

Pada umumnya sih ada tiga langkah aja. Pertama, kirim berkas CV/resume. Kedua, kerjain preliminary task yang bentuknya bisa beda-beda tergantung perusahaannya. Ketiga, interview yang membicarakan latar belakang kamu, pengalaman, motivasi, dan di akhirnya akan ada studi kasus yang harus kamu selesaikan. Itu umumnya, ya... tapi ada juga yang mengharuskan kamu untuk riset mengenai produk mereka. Kalau ada persyaratan ini, kamu gaboleh baca-baca doang. Kamu harus pakai produknya! Karena nanti bakal ditanya apa kekurangan produk yang kamu pakai dan langkah seperti apa yang akan kamu lakukan untuk memberikan improvement.

Aku kasih tips deh ya.

Kalau di fase kedua kamu dikasih tes pemrograman, sebelum ngerjain tes itu aku saranin buat pemanasan dulu. Kerjain aja soal-soal gampang di HackerRank misalnya. Pastikan kamu tidak dalam keadaan lapar dan tidak dalam keadaan kekenyangan. Pastikan juga kamu sudah buang air. Saat pengerjaan, baca dulu semua soal yang ada terus cari yang paling gampang. Kerjain dulu yang paling gampang. Kamu gaperlu nilai sempurna sih buat lolos tahap ini tapi akan lebih standout kalo kamu bisa dapet nilai sempurna.

Kalau di fase kedua kamu dikasih tes matematika dan representasi data juga tes yang nguji IQ, kamu harus dalam keadaan tenang dan nyaman. Siapkan kalkulator! Biasanya tes ini isinya lebih ke aritmatika dasar yang ada sedikit bumbu-bumbu statistikanya. Kalau pas tes IQ yang paling mentok matematikanya nyari pola sama statistika yang lebih ke logika sih karena bisa pake logika buat nyari solusinya. Maksudnya ya persentase-persentase gitu biasanya.

Nah, buat fase ketiga yaitu fase wawancara, kamu harus latihan wawancara dulu biar lancar! Kamu bisa latihan sendiri, ya ngomong sendiri seakan-akan ada yang ngewawancara kamu. Bakal dianggap gila sih tapi ini demi kelancaran wawancara kamu. Lebih baik lagi kalo ada temen yang bisa diajak latihan. Sekali lagi inget, kamu perlu latihan! Kalau bisa kamu bikin daftar kemungkinan pertanyaan yang akan muncul terus kamu bikin kerangka jawabannya. Sisanya kan bisa improvisasi. Aku selalu pakai cara ini dan aku so far selalu berhasil lolos tahap wawancara. Adapun buat pertanyaannya ga jauh-jauh dari latar belakang kamu, motivasi kamu daftar ke perushaan itu apaan, dan pengalaman kamu (bisa kerjaan atau aktivitas di kampus). Minimal kamu bisa bikin kerangka jawaban buat ini. Terus, latihan kamu berdasarkan kerangka yang udah kamu buat.

Tolong jujur deh pas di sesi wawancara, demi kebaikan kamu juga.

Penutup

Paling itu aja sih yang bisa aku bagi. Selanjutnya, kamu bisa mengulangi langkah 4, 6, 7, 9, dan 10 sampai tujuan kamu berhasil diraih. Akhir kata, good luck ya teman-teman!

Komentar

  1. Terima kasih banyak,Kak.. In syaa allah bakal tanya-tanya kalau nanti ada yang mau ditanyakan. Thanks!

    BalasHapus
  2. Kalo gua anak FTE bisa ga yah magang di situ hehe

    BalasHapus
  3. Ini keren banget sih asli. Thanks kak

    BalasHapus
  4. Sasuga cahyo-sama

    BalasHapus

Posting Komentar

Aku berharap dapet komentar yang membangun.

Postingan populer dari blog ini

Bagaimana Cara Menjadi Siswa Google Summer of Code?

Google Summer of Code  (GSoC) adalah salah satu program yang dibuat oleh Google dalam rangka meramaikan partisipasi mahasiswa/i untuk berkontribusi ke proyek-proyek sumber terbuka. Ada banyak keuntungan yang akan kita dapatkan apabila terpilih menjadi salah satu siswanya. Selain mendapatkan bimbingan langsung dari orang-orang yang kompeten, kita juga akan diberikan upah untuk kebutuhan hidup. Upah tersebut diberikan apabila kita lolos evaluasi yang dilaksanakan tiga kali. Nilai upah yang diberikan bervariasi tergantung pada tempat dan kebijakan Google di setiap tahunnya. Pada tahun 2018, total upah yang diberikan untuk Indonesia adalah USD 2400. Kamu bisa lihat informasi mengenai upah tahun ini di halaman Student Stipends . Seperti apa GSoC dan bagaimana cara menjadi salah satu pesertanya? Sedikit Pengalaman Mengerjakan Proyek GSoC di Organisasi Haskell Tahun 2018 lalu aku mengerjakan proyek GSoC di organisasi  Haskell . Aku gagal di evaluasi kedua karena ada miscommuni

Merancang Sistem Baru sebagai Upaya untuk Meningkatkan Kredibilitas serta Transparansi Perhitungan Suara

Indonesia dalam beberapa hari terkahir ini diramaikan dengan isu-isu serangan siber dan hal-hal konyol lainnya. Tetiba banyak sekali hacker gadungan yang bermain hacker-hackeran . Semua ini dilatarbelakangi oleh kekhawatiran masyarakat yang merasa akan terjadinya kecurangan dalam pemilihan umum kali ini. Alih-alih ingin berkontribusi justru yang ada malah terlihat bodoh. Untuk mengurangi hal-hal bodoh seperti ini muncul kembali, ada baiknya kita memikirkan sistem baru yang dapat membungkam manusia-manusia semacam ini di Indonesia. Tak perlu yang canggih sekali, yang penting transparan. Well , actually , teknologi yang akan digunakan sudah cukup canggih jadi aku bisa bilang kalau sistem yang akan dibuat ini sudah cukup canggih dan tidak mudah untuk dijaili. Tulisan ini hanya akan membicarakan konsep. Implementasinya tentu di lain waktu saja bila memungkinkan bagiku untuk membuatnya. Kenali Sistem yang Ada Sebelum membicarakan rancangan sistem yang baru, kita perlu mengenali sist

Membangun Kembali Citraku Sebagai Penulis Blog

Halo, salam kenal! Aku Wisnu, seorang pemrogram yang saat ini tengah menjalani pendidikan di salah satu universitas swasta di Indonesia. Buat kamu yang belum pernah sekalipun membaca tulisan postingan blogku, mungkin tidak akan ada masalah dengan gaya tulisan yang sekarang lagi kamu baca. Aku rasa buat yang udah sering baca tulisanku (dulu) pasti ngerasa ada yang beda. Ya, aku terbiasa menulis dengan gaya formal. Gaya tulisan formal tersebut nampaknya kurang cocok dipakai untuk sebuah postingan blog karena terkesan kaku. Dampaknya yah interaksi dengan pembaca terasa kurang. Itulah sebabnya aku mengubah gaya penulisanku menjadi lebih santai. Aku ngomong gini in case kamu penikmat blog berfaedahku. Kalau kamu penikmat blog aibku udah pasti ga heran sama gaya tulisanku. Setelah sekian lama akhirnya aku pakai Blogger lagi. Kenapa kok pakai Blogger lagi? Padahal mampu bikin blogging engine sendiri karena katanya aku pemrogram, bukan? Kan keren kalo bisa! Juga, kenapa ga pake yang lain