Algorithmic Problem Solving

Sebuah praktik penegak Pilar 1 , dilakukan oleh programmer

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:

Cara Meningkatkan Kemampuan ASP

Latihan di tempat seperti HackerEarth, coderbyte.com atau uHunt. Spesifik pada Javasprint bisa di Freecodecamp.

Lalu ikut berkompetisi di Kattis atau UVa Online Judge.

Seperti Apa Ciri-Ciri Programmer yang Kuat Dasar APS-nya?

Jelas, bisa memprogram dengan lebih cepat dan tepat.

Cepat karena…

  • cepat menemukan solusi algoritmis dari suatu masalah.
  • terbiasa debugging.
  • sering latihan dengan waktu yang dibatasi.

Tepat karena…

  • terlatih membayangkan banyak case-case.
  • mampu mengidentifikasi tingkat kompleksitas suatu algoritma. Ini bermanfaat untuk meramal performa komputasi saat kebutuhan pengguna meningkat drastis di masa depan.

Bagaimana Cara Melatih APS untuk Programmer-Programmer di Kantor?

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:

1. Sukarela Lebih Baik—Apalagi Jika Di Luar Jam Kantor

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.

2. Individual Lalu Kolektif

Ada dua cara: individual atau kolektif.

Di cara individual:

  1. berikan masing-masing programmer akses ke satu tempat latihan yang sama (HackerEarth adalah pilihan yang bagus karena struktur kurikulumnya),
  2. biarkan mereka mengerjakan soal-soal secara mandiri, berurutan mulai dari yang mulai dari yang dasar sampai yang sulit,
  3. masing-masing akan buntu di titik tertentu sesuai tingkat keahlian masing-masing. Beri bantuan saat mereka mulai buntu.

Di cara kolektif:

  1. Di satu ruangan yang sama, kelompokkan programmer yang tingkat keahliannya setara (karena kesenjangan keahlian yang besar bisa mengintimidasi programmer)
  2. Berikan satu soal, lalu biarkan masing-masing membuat solusinya
  3. Bahas bersama solusi-solusinya di depan papan tulis

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.

3. Temani Dengan Latihan-Latihan Lain

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


Ada saran perbaikan untuk halaman ini? Apa pandangan-mu terhadap APS? Punya kisah nyata?

Langgan: grup · channel · email/WA