HaveCode,WillCompete
The Rise of Code Competitions
By Paul Pajo
SMARTDevNet
Developer Evangelist, SMART
CompetitiveProgramming
 is a mind sport usually held over the internet or a local network,
involving participants trying to program according to provided
specifications.Competitive programming is recognized and
supported by several multinational software and internet
companies, such asGoogle,[ Facebook[ and IBM. As of January
2012 there are several organizations who host programming
competitions on a regular basis.
 A programming competition generally involves the host
presenting a set of logical or mathematical problems to the
contestants (who can vary in number from tens to several
thousands), and contestants are required to write computer
programs capable of solving each problem. Judging is based
mostly upon number of problems solved and time spent for
writing successful solutions, but may also include other factors
(quality of output produced, execution time, program size etc.)
 http://en.wikipedia.org/wiki/Competitive_programming
SomePopularCompetitions
 IOI
 ACM-ICPC
 Google Code Jam
 Facebook Hacker Cup
 CodeForces
 Top Coder
Somemore….
 AIChallenge
 Australian Informatics
Olympiad
 BAPC
 Bitwise IIT Kharagpur
 British Informatics Olympiad
 CanadianComputing
Competition
 Central European Olympiad
in Informatics
 Cloudball
 Code golf
 TheCode Room
 Codecraft
 Competitive programming
 CoreWar
 The DailyWTF
 Electric Jungle
 FastCode
 GoogleCode-In
 Gridwars
 Hong Kong Olympiad in
Informatics
 HPCodeWars
 ICFP Programming Contest
 IndianComputingOlympiad
 InternationalObfuscated C
CodeContest
 Internet Problem Solving
Contest
 Java 4K Game Programming
Contest
 LesTrophées du Libre
 Multi-Agent Programming
Contest
 National Olympiad in
Informatics, China
 National University of
Computer and Emerging
Sciences
 Obfuscated Perl Contest
 Perl Golf Apocalypse
 Rails Rumble
 Robocode
 Roboforge
 RoboWar
 SOFTEC
 SouthAfrican Computer
Olympiad
 SPOJ
 SupercomputingChallenge
 Syrian Olympiad in
Informatics
 Turkish Informatics
Olympiad
 UnderhandedC Contest
 UnitedStates of America
ComputingOlympiad
 UVaOnline Judge
 WoburnChallenge
Local Version
 DevCon C-Cup & mini C-Cups
 WebGeek DevCup
 Freelancer.com Manila Dev Challenge
 HTML5 DevDay
 ???
 Profit?
 If you love basketball, dream FIBA
 If you love coding, dream IOI?
Whoaretheheroes?
 Petr Mitrichev?
 Gennady Korotkevich?
PetrMitrichev
 Russian sport programmer who won multiple major international
competitions.
 His accomplishments include gold (2000, 2002) and silver (2001) medals
in the IOI, gold medals (2003, 2005) in the ACM ICPC World Finals as part
of the team of Moscow State University and winning Google Code
Jam (2006), theTopCoder Open (2006[2]), theTopCoder Collegiate
Challenge (2006,2007), Facebook Hacker Cup (2011,[2013) as well as
numerous national and online contests.
 He has achieved the highest rating ever among
the Algorithm competitors ofTopCoder.comand consistently ranks in
the top two of the world, currently being the world leader as of April 10,
2013.
 He is also the third highest rated coder in the competitive programming
websiteCodeforces.com as of April 10, 2013. He currently works at
Google, where he is a maintainer of the search engineand helps to
prepare Code Jam.
 See: http://en.wikipedia.org/wiki/Petr_Mitrichev
GennadyKorotkevich
 a Belarusian sport programmer who has won multiple
major international competitions.
 His accomplishments include gold 6 consecutive times from
2007 to 2012 , silver before that in 2006 in the IOIand world
champion (2013) in the ACM ICPCWorld Finals as part of the
team of Saint Petersburg State University of Information
Technologies, Mechanics and Opticsas well as numerous
national and International contests.
 He is currently the highest rated at Codeforcesand the
highest rated Algorithm competitor atTopCoder as of
August 8, 2013.
 See: http://en.wikipedia.org/wiki/Gennady_Korotkevich
PetronGena
 What feels so good aboutGena is that he doesn't seem to lose the rest of his life to programming contest training,
at least according to the above interview. He reminds me of myself, but of course on a greater scale.While I'm sure
he's training a lot, it's important that becoming a world-class master does not affect the other aspects of his life
badly.
 Gennady, if you're reading this, I challenge you for a game of soccer or table tennis :)
 More generally, I think this example supports the idea that the skillset (or maybe talent? that's probably a question
for a separate discussion) that the programming challenges require is unique and is only partially related to CS or
mathematical higher education.And seeing how many big companies are valuing that skillset in job interviews, it
seems important enough for education of future software engineers to maybe borrow something from the
algorithm contests.
 Another possible direction, of course, is that algorithm contest puzzles were just lucky to get into the limelight,
and will just go away (or maybe become a pure sport) at some point when the big companies and universities
discover a better way to educate and recognize the future engineers. Somewhat like Formula 1 which is becoming
less and less important for the development of normal cars.
 http://petr-mitrichev.blogspot.com/2009/10/gennady-korotkevich.html
Genaresponds
 Yes, this is Gena)
It's a very interesting comparison between sport
programming and Formula 1.This is almost
completely true.
But, this is only a game, sometimes paid.
This is very useful for the first time, but then it
becomes into writing of templates, typing.
 http://petr-
mitrichev.blogspot.com/2009/10/gennady-
korotkevich.html
Q:
 Should we have more of ths? 
 @pageman @smartdevnet
 http://facebook.com/groups/smartdevnet

Have Code, Will Compete

  • 1.
    HaveCode,WillCompete The Rise ofCode Competitions By Paul Pajo SMARTDevNet Developer Evangelist, SMART
  • 2.
    CompetitiveProgramming  is amind sport usually held over the internet or a local network, involving participants trying to program according to provided specifications.Competitive programming is recognized and supported by several multinational software and internet companies, such asGoogle,[ Facebook[ and IBM. As of January 2012 there are several organizations who host programming competitions on a regular basis.  A programming competition generally involves the host presenting a set of logical or mathematical problems to the contestants (who can vary in number from tens to several thousands), and contestants are required to write computer programs capable of solving each problem. Judging is based mostly upon number of problems solved and time spent for writing successful solutions, but may also include other factors (quality of output produced, execution time, program size etc.)  http://en.wikipedia.org/wiki/Competitive_programming
  • 3.
    SomePopularCompetitions  IOI  ACM-ICPC Google Code Jam  Facebook Hacker Cup  CodeForces  Top Coder
  • 4.
    Somemore….  AIChallenge  AustralianInformatics Olympiad  BAPC  Bitwise IIT Kharagpur  British Informatics Olympiad  CanadianComputing Competition  Central European Olympiad in Informatics  Cloudball  Code golf  TheCode Room  Codecraft  Competitive programming  CoreWar  The DailyWTF  Electric Jungle  FastCode  GoogleCode-In  Gridwars  Hong Kong Olympiad in Informatics  HPCodeWars  ICFP Programming Contest  IndianComputingOlympiad  InternationalObfuscated C CodeContest  Internet Problem Solving Contest  Java 4K Game Programming Contest  LesTrophées du Libre  Multi-Agent Programming Contest  National Olympiad in Informatics, China  National University of Computer and Emerging Sciences  Obfuscated Perl Contest  Perl Golf Apocalypse  Rails Rumble  Robocode  Roboforge  RoboWar  SOFTEC  SouthAfrican Computer Olympiad  SPOJ  SupercomputingChallenge  Syrian Olympiad in Informatics  Turkish Informatics Olympiad  UnderhandedC Contest  UnitedStates of America ComputingOlympiad  UVaOnline Judge  WoburnChallenge
  • 5.
    Local Version  DevConC-Cup & mini C-Cups  WebGeek DevCup  Freelancer.com Manila Dev Challenge  HTML5 DevDay  ???  Profit?  If you love basketball, dream FIBA  If you love coding, dream IOI?
  • 6.
  • 7.
    PetrMitrichev  Russian sportprogrammer who won multiple major international competitions.  His accomplishments include gold (2000, 2002) and silver (2001) medals in the IOI, gold medals (2003, 2005) in the ACM ICPC World Finals as part of the team of Moscow State University and winning Google Code Jam (2006), theTopCoder Open (2006[2]), theTopCoder Collegiate Challenge (2006,2007), Facebook Hacker Cup (2011,[2013) as well as numerous national and online contests.  He has achieved the highest rating ever among the Algorithm competitors ofTopCoder.comand consistently ranks in the top two of the world, currently being the world leader as of April 10, 2013.  He is also the third highest rated coder in the competitive programming websiteCodeforces.com as of April 10, 2013. He currently works at Google, where he is a maintainer of the search engineand helps to prepare Code Jam.  See: http://en.wikipedia.org/wiki/Petr_Mitrichev
  • 8.
    GennadyKorotkevich  a Belarusiansport programmer who has won multiple major international competitions.  His accomplishments include gold 6 consecutive times from 2007 to 2012 , silver before that in 2006 in the IOIand world champion (2013) in the ACM ICPCWorld Finals as part of the team of Saint Petersburg State University of Information Technologies, Mechanics and Opticsas well as numerous national and International contests.  He is currently the highest rated at Codeforcesand the highest rated Algorithm competitor atTopCoder as of August 8, 2013.  See: http://en.wikipedia.org/wiki/Gennady_Korotkevich
  • 9.
    PetronGena  What feelsso good aboutGena is that he doesn't seem to lose the rest of his life to programming contest training, at least according to the above interview. He reminds me of myself, but of course on a greater scale.While I'm sure he's training a lot, it's important that becoming a world-class master does not affect the other aspects of his life badly.  Gennady, if you're reading this, I challenge you for a game of soccer or table tennis :)  More generally, I think this example supports the idea that the skillset (or maybe talent? that's probably a question for a separate discussion) that the programming challenges require is unique and is only partially related to CS or mathematical higher education.And seeing how many big companies are valuing that skillset in job interviews, it seems important enough for education of future software engineers to maybe borrow something from the algorithm contests.  Another possible direction, of course, is that algorithm contest puzzles were just lucky to get into the limelight, and will just go away (or maybe become a pure sport) at some point when the big companies and universities discover a better way to educate and recognize the future engineers. Somewhat like Formula 1 which is becoming less and less important for the development of normal cars.  http://petr-mitrichev.blogspot.com/2009/10/gennady-korotkevich.html
  • 10.
    Genaresponds  Yes, thisis Gena) It's a very interesting comparison between sport programming and Formula 1.This is almost completely true. But, this is only a game, sometimes paid. This is very useful for the first time, but then it becomes into writing of templates, typing.  http://petr- mitrichev.blogspot.com/2009/10/gennady- korotkevich.html
  • 11.
    Q:  Should wehave more of ths?   @pageman @smartdevnet  http://facebook.com/groups/smartdevnet