Algorithmic Problem Solving adalah salah satu fase kegiatan programming yang membutuhkan pemikiran logika untuk memecahkan masalah. Banyak waktu bisa terbuang jika programmer tidak terlatih di aktivitas ini.
Tidak semua programmer harus mahir dan mendalami APS, tapi semua programmer yang baik harus memiliki dasar yang kuat. Tidak heran soal-soal APS selalu ditanyakan saat interview perusahaan-perusahaan top.
Di sisi lain, bukan berarti seorang olahragawan APS—ya, APS ini dikompetisikan sebagai olahraga—adalah pasti seorang programmer yang baik. Karena programming bukan hanya tentang APS.
Berikut beberapa rujukan untuk memahami APS:
Latihan di tempat seperti HackerEarth, coderbyte.com atau uHunt. Spesifik pada Javasprint bisa di Freecodecamp.
Lalu ikut berkompetisi di Kattis atau UVa Online Judge.
Jelas, bisa memprogram dengan lebih cepat dan tepat.
Cepat karena…
Tepat karena…
Waktu yang nyaman untuk berlatih APS adalah saat sedang sekolah/kuliah. Meski begitu, bukan berarti latihan APS tidak bisa dilakukan di kantor. Berikut beberapa tips:
Organisasi tentu bisa mewajibkan latihan APS bagi programmer-programmernya. Namun perlu dicatat, latihan APS banyak memakan energi otak. Jika dipaksakan, hasilnya bisa kontra produktif. Kegiatan pengembangan diri yang baik adalah yang dimulai dari niat diri sendiri.
Usahakan agar waktu latihannya berada di jam kantor, sehingga waktu kehidupan-di-luar-kantor mereka tidak berkurang. Jumat sore adalah waktu yang baik, karena mereka bisa menginternalisasi pembelajaran mereka di akhir pekan.
Ada dua cara: individual atau kolektif.
Di cara individual:
Di cara kolektif:
Kombinasi keduanya adalah opsi yang baik. Lakukan cara individual di awal. Gunanya untuk memetakan tingkat kemampuan & ketertarikan (ingat, sukarela lebih baik). Setelah tingkat kemampuan terpetakan, cara kolektif bisa dilakukan beberapa kali.
Agar pembelajaran lebih maksimal, berikan kesempatan mengajar/membantu programmer-programmer lain yang satu-dua tingkat di bawah mereka. Mengajar meningkatkan pemahaman pengajar, melatih komunikasi pengajar, dan mendekatkan tim.
Ingat, APS bukanlah satu-satunya kegiatan programming. Tujuan utama latihan APS, adalah memastikan semua programmer punya dasar yang diinginkan—standar tiap organisasi bisa berbeda-beda. Lebih dari itu itu, latihan APS masuk dalam ranah hiburan edukatif.
Di organisasi yang baik, programmer juga diberi kesempatan untuk belajar:
Programmer yang baik senang belajar. Selain meningkatkan produktivitas, program-program latihan juga meningkatkan loyalitas mereka.
Riwayat perubahan halaman ini github.com/3pillarsofagile/3pillarsOfAgile.github.io/commits/master/_practices/algorithmic-problem-solving.md