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 -~----------~----~----~----~------~----~------~--~---