On 5/16/06, m.c. cptrwn <[EMAIL PROTECTED]> wrote:
>  sebaiknya untuk pemenang kompetisi google etc seperti Felix, sharing
> dong bagaimana soal2nya, berapa lama ujianya, cara belajarnya bagaimana
> ? jadi bermanfaat buat semua.

Saya tahu kompetisi TopCoder dari turuthok (Lego Haryanto). Kalau
dilihat dari statisticsnya, turuthok udah mengikuti TopCoder sejak
awal2 TopCoder berdiri:

http://www.topcoder.com/tc?module=MemberProfile&cr=152614

Berikut ini email dari turuthok yang menggambarkan seperti apa
kompetisi TopCoder (termasuk semua Google Code Jam -> karena pake
engine TopCoder):

On 5/16/06, turuthok <[EMAIL PROTECTED]> wrote:
> Soal-soal yg dipakai di Google Code Jam adalah masalah fiksi, tapi
> tidak jarang adalah juga model dari permasalahan di dunia nyata.  Yang
> jelas, peserta mesti jeli untuk melihat kompleksitas problem tersebut
> dan bisa memilih teknik algoritma yg tepat untuk "attack the problem"
> sesuai kriteria penilaian.
>
> Kompetisi yang dimenangkan Sindu cenderung lebih terpakai dalam bidang
> software.  Peserta diberikan design document yg sudah disetujui untuk
> sebuah component, dan diminta untuk mengimplementasikannya menggunakan
> Java atau C#.  Sebenarnya, saya melihat kompetisi ini sungguh cocok
> untuk mahasiswa-mahasiswa teknik informatika yg ingin maju dan melihat
> bagaimana software engineering itu tidak semata-mata "coding" saja,
> tetapi juga mementingkan aspek-aspek lain.  Paling tidak, mahasiswa
> akan lebih siap memasuki dunia kerja yang berurusan dengan development
> beginian.  Saya yakin setiap peserta akan terbiasa memakai tools-tools
> yg dipakai dalam kontes ini.  Mungkin metodologi atau development
> life-cyclenya sederhana, tetapi kita mesti melihat dalam kacamata
> kontes, dan mungkin dari pihak penyelenggara, model inilah yang paling
> ampuh untuk menilai kualitas design dan implementasi para peserta.
>
> TopCoder (www.topcoder.com/tc) adalah site yg mengadakan kontes-kontes
> seperti di atas.  Buat yang ingin memoles keahlian algoritma, boleh
> mencoba algorithm contest.  Indonesian coders di bidang ini masih
> berada di peringkat 20 (peringkat tertinggi: Ardian Kristanto Poernomo
> yg juara Google India Code Jam 2x berturut-turut).  Walaupun banyak
> orang yg menganggap algorithm contest ini tidak penting, sebenarnya ada
> banyak manfaat dari mengikuti kontes ini.  Lambat laun, coder jadi
> makin kritis dalam mendekati suatu masalah algoritmis.  Model yg
> dipakai TopCoder sungguh mirip dengan model unit-testing yg sering kita
> pakai.  Coders jadi lebih jeli dalam menganalisis suatu problem yang
> mengandung tricky atau boundary cases, kompleksitas run time ataupun
> space, dan sebagainya.
>
> Yang jelas kedua jenis kontes di atas perlu jam latihan yang tidak
> sedikit.  Sindu sendiri mengaku kurang tidur dalam marathon-nya
> mengikuti TopCoder Development Contest baru-baru ini.

Saya sendiri hanya mengikuti Algorithm competitionnya TopCoder (yang
digunakan oleh Google Code Jam adalah Algorithm Competition arenanya
TopCoder). Sedangkan untuk yang bagian Component Design and
Development (yang dimenangkan sindu) saya tidak ikuti. Jadi untuk hal
ini sindu lebih bisa berbicara banyak.

Untuk TopCoder Algorithm competition itu mirip dengan Programming
Contest yang deselenggarakan macamnya:

IOI (International Olimpiad in Informatics)

http://en.wikipedia.org/wiki/Ioi

atau

ACM ICPC (Intenational Collegiate Programming Contest):

http://en.wikipedia.org/wiki/ACM_ICPC


Di Indonesia ada organisasi yang namanya TOKI (Tim Olimpiade Komputer
Indonesia) -> Saudaranya TOMI, TOBI, TOFI, TOKIMI, etc... yang
tujuannya adalah menyeleksi anak2 Indonesia untuk di kirim sebagai
duta untuk kompetitisi IOI.

Nah, biasanya anak2 yang terpilih ini akan suka sekali dengan
Programming Contest, otomatis pada akhirnya, setelah lulus SMA anak2
ini akan ikut ACM ICPC (mewakili universitasnya untuk bertanding
Programming Contest).

TopCoder/GCJ itu gak beda jauh dengan programming contest seperti IOI
maupun ACM ICPC, bedanya paling adalah tujuannya (untuk cari kerja +
utilize programmers around the world untuk develop project2nya
TopCoder).

TopCoder merasa bahwa orang2 yang sudah sering ikut programming
contest (yang otomatis akan berjaya di TopCoder Algorithm programming
contest) itu akan jauh lebih produktif daripada mereka yang cuman
"average". Bahkan di CNN pernah memberitakan bahwa orang yang "top" di
TopCoder itu productivitynya hampir 10x lipat dari orang yang
"average".

Untuk sukses di programming contest seperti ini, akan sulit kalau
tidak dipupuk sejak kanak-kanak. Sebab ada beberapa tahap yang perlu
dilalui sebelum bisa benar2 menjadi yang terbaik. Contohnya orang
tersebut harus kuasai dulu Programming Language (PASCAL ato C++
misalnya), lalu sudah pasti harus latihan solving problems (di
http://acm.uva.es/p misalnya). Perlu diketahui bahwa solving problems
ini memakan waktu yang lama (bertahun-tahun) -> kecuali buat yang
genius. Kemudian, harus juga banyak baca buku algorithms tentang
"cara-cara" nge solve problems seperti Greedy, Graph, Dynamic
Programming, Network Flow, Recusion/Memoization. Ini semua sangat
tidak gampang. Setelah itu, mereka juga harus mengasah "gaya" coding
mereka, sehingga algorithms yang mereka pikirkan bisa di-coding dengan
singkat. Ini sangat mengejutkan untuk pemula yang melihat coding orang
pro, karena pemula bisa coding 100 baris dan programnya ngaco tetapi
yang pro bisa coding hanya dalam 10 baris tapi bener dan running
timenya sangat cepat! (saya sesuain 10x productivitynya :P). Tapi
benar, hal seperti ini sangat terlihat di programming contest. Step
terakhir yang sangat sulit adalah... coding it IN TIME. Semua problem
di programming contest pasti bisa diselesaikan oleh siapapun, yang
membedakannya adalah: berapa lama orang tersebut mengerjakannya.
Sebagai contoh, juara 1 Algorithm TCO06 (Petr) itu bisa menyelesaikan
problem 1000 yang menurut analysis Kawigi (expert) adalah problem yang
impossible untuk dikerjakan oleh average anak lulusan S1. Tapi Petr
bisa mengerjakannya dalam 1 jam, ups dalam 1 jam Petr menyelesaikan
problem 250, 500, dan 1000 SEKALIGUS! Mungkin untuk saya dan yang lain
butuh berhari-hari untuk mengerjakannya, bahkan untuk mengerti
soalnya!!

IMHO, masa-masa untuk mengasah programming skills yang paling baik
adalah waktu SD/SMP/SMA. Sebab kalau kuliah, itu rasanya sudah
terlambat (meski ada pepatah It's never too late to learn). Sebab,
waktu kuliah orang tersebut sudah harus masuk tahap "pro". Apalagi
kalo setelah kuliah, kerjaannya itu cari nafkah, mana sempet ngasah
programming skills lagi? Meskipun di tempat kerja juga kerjanya
programming, tapi programming di tempat kerja berbeda dengan yang di
programming contest. Untuk perbedaannya saya tidak tahu detailnya
(mungkin turuthok bisa menjelaskan? karena sudah kerja + juga masuk
World Final ACM ICPC :)

Saya sendiri baru start learning programming dari SMA (ketelatan!)
harusnya dari SD baru bisa jago banget. Waktu SMA juga saya hoki
dikenalin ama programming ama koko saya (Steven Halim) :D kalo enggak,
saya gak bisa juara Google Code Jam seperti sekarang ini. Dan hal ini
juga berkaitan berat dengan hobby. Kalo gak hobby programming kayak
hobby sepakbola, gak bakal bisa deh juara di programming contest (bisa
sih, tapi sulitt + makan ati).

Untuk yang berminat mendalami programming contest, bisa lihat sekilas
+ nyoba2 tutorial yang saya buat untuk training BNPCCS di Binus
International:

http://felix-halim.net/oj/tutorials.php

Tutorialnya masih berjalan + ini hanya getting started. Tutorial itu
berlaku juga untuk ACM ICPC.

Kalau mau latihan untuk IOI yah kepaksa googling tentang IOI. Kalau
mau menang di Google Code Jam ato TopCoder Open, yah latihan di:

http://www.topcoder.com/tc

Register, lalu ikutin SRM nya biasanya SETIAP minggu. Kalo rating bisa
sampe warna merah ato "target", wah udah dipastiin masuk finalist
Google Code Jam deh ato TopCoder Open ato World Finalist di ACM ICPC
ato Gold Medal di IOI :D

Good Luck buat yang mau bertanding di dunia programming competition.
FYI, suasana di TopCoder Open itu seperti suasana World Cup!! :

http://webreprints.djreprints.com/1466111183234.html

Felix Halim

--~--~---------~--~----~------------~-------~--~----~
http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html
-~----------~----~----~----~------~----~------~--~---

Kirim email ke