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
Hackerrank
Codewars
HackerEarth
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.