Competitive Programming for Software Engineer

Sebuah Tweet cukup menarik muncul diberanda Twitter, salah satu akun menfess terkenal terkait pemrograman @codingfess mendapatkan sebuah Tweet isinya kurang lebih seperti ini :

Menariknya, Competitive Programming merupakan hal yang lumrah di dunia Software Engineering, tetapi masih banyak orang yang belum terbiasa mengerjakan soal-soal di HackerRank atau yang dikenal sebagai Competitive Programming.

Competitive Programming adalah kegiatan di mana peserta diberikan sejumlah masalah pemrograman dan diminta untuk menyelesaikannya dengan cepat dan efisien. Sayangnya, kegiatan ini jarang diajarkan di dunia perkuliahan bahkan pada Bootcamp sekalipun, karena dianggap kurang praktikal.

Namun, jika kita mencari pekerjaan di perusahaan besar seperti Unicorn, Fintech, dan level Engineering yang Mid hingga Senior, Competitive Programming menjadi sangat penting.

Competitive Programming untuk Software Engineer

Meningkatkan Kemampuan Problem Solving

Competitive Programming memberikan banyak sekali leve-level tingkat kesulitan yang akan memberikan kita kesempatan untuk bisa menyelesaikan tugas-tugas tersebut dan menuntut kita berpikiran critically dan creatively. Ini akan membantu Software Engineer untuk bisa menyelesaikan permasalahaan saat menuliskan kode. Mengingat kita menuliskan kode karena memang kita akan menyelsaikan sebuah masalah.

Meningkatkan Pengetahuan Mengenai Algoritma dan Struktur Data

Berbagai jenis masalah, bahkan masalah yang sama bisa diselesaikan dengan cara yang berbeda dan akan menghasilkan efisiensi, dan performance yang berbeda juga. Adanya Competitive Programming akan meningkatkan pengetahuan mengenai algoritma untuk menyelesaikan masalah yang diberikan.

Meningkatkan Kecepatan Menulis Kode

Semakin cepat kecepatan menulis, maka semakin cepat pula kita bisa menuangkan ide ide dikepala dan segera mendapatkan result mengenai ide tersebut dan ini berpengaruh kepada nanti bila mendapatkan project dengan scope time yang cukup pendek.

Meningkatkan Pengetahuan Mengenai Function / API Bahasa Pemrograman

Bahasa pemrograman masing-masing memiliki build-in function. Untuk bisa mengetahui apa saja build-in function bahasa pemrograman tersebut kita harus sering-sering menggunakannya, salah satuya dengan competitive programming yang memberikan kita banyak problem dan bisa menerima berbagai solusi yang ada.

Persiapan untuk Technical Interview

Google, Facebook, dan perusahaan besar lainnya sudah menggunakan Leet Code atau Hackerrank untuk measure kemampuan problem solving para tim engineernya. Perusahaan Indonesia ini masih sedikit yang menggunakan Competitive Programming untuk bisa menilai kemampuan problem skill calon karyawan. Berdasarkan pengalaman saya sendiri, selama Apply ke perusahaan di Indonesia, 50% perusahaan sudah menggunakan competitive programming untuk test masuk perusahaan entah menggunakan Hackerrank atau Platform sendiri.

List Situs Competitive Programming untuk Software Engineer

Beberapa situs yang cukup populer digunakan untuk melakukan assesment terhadap Software Engineer.

Leetcode

LeetCode - The World’s Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

Hackerrank

HackerRank - Online Coding Tests and Technical Interviews
HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Start hiring at the pace of innovation!

Codewars

Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!

HackerEarth

HackerEarth | Helping 7.6M+ developers level up and 1000+ recruiters hire top tech talent.
HackerEarth is a global hub of 7.6M+ developers. We help companies accurately assess, interview, and hire top tech talent.

Akhir kata, Competitive programming sangat penting bagi seorang software engineer karena dapat membantu meningkatkan keterampilan dan pengetahuan mereka dalam pemrograman. Kegiatan ini dapat membantu mereka untuk menjadi lebih cepat dan efektif dalam menyelesaikan masalah pemrograman yang kompleks.

Selain itu, competitive programming juga dapat membantu software engineer untuk memperluas wawasan mereka tentang berbagai jenis algoritma dan struktur data yang digunakan dalam pemrograman. Dengan menguasai berbagai teknik dan strategi untuk menyelesaikan masalah, software engineer dapat menjadi lebih efektif dalam menulis kode yang berkualitas tinggi dan lebih efisien.