One Point Solution

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Sunday, 13 November 2011

You know that thing they call practice? Don't do it

Posted on 14:11 by Unknown
A common question in areas related to programming contests is how to get better. Everyone wants to get better, everyone things that the people better than you know some sort of secret, so it is not a wonder this is a popular question. I actually get asked the question too. The following is my current opinion on the matter.

Do you know that thing in which coders start reviewing many problems and solving them consecutively in increasing level of difficulty and sometimes classifying by category. So, for example you just hear about meet in the middle and begin looking for problems that use that technique all over the world? And they call it practice?

I wouldn't recommend it. Specially if you are talking about a long term period.

I noticed it the other day. Although learning the theory and the implementation of problems is useful it is not the same as practicing for contests. During a contest, you don't know in advance what technique you will need to solve the problem, you have a time limit and you have the stress caused by time limits and the impending doom of losing everything you have dreamed of because of a one letter mistake.

I know, I know, someone suggesting to not "practice" is surprising. Let me tell you something, I used to do that, it seemed like a good idea at the time. There was a moment in which I actually solved 20 problems a day. (That moment was the month before the first and only on-site final I qualified to). But I have stopped doing it for a couple of years already and not intentionally. It turns out that you get tired of it. You start one year thinking "Ok, this is the year I'll get better and get plane tickets and stuff" and you set a practice schedule to solve problems everyday, for the first week it works then you eventually get bored and stop doing it. That by itself should tell you it is not very effective.

This year I had the most incredible set of consecutive matches in topcoder. To the point I almost became red (which is less relevant to me than you would expect).



You would think "Wow, vexorian must have gone to some sort of hardcore programming camp.". That's the cool thing, I didn't. All the period before and during this streak I didn't actually "practice" at all. Instead, that period was heavy on me because of having to write editorials and trying to write problems. That is when I noticed why those things were more effective than practice, they are closer to training for a programming contest because there is stress and time limit involved.

So, there I reached my conclusion. Don't ever solve problems outside of the context of a contest again. It is worthless and gets you bored. Instead, use all that free time you were going to use on a problem solving schedule on something that is far more useful: Participate in contests. Do you think there are not enough contests to do that? There are tons of them: take a look at this calendar if you want. Participating in contests is fun and a far more effective practice in the long term than just solving problems all day. Just try to make sure you do get better after each contest, if you fail at something keep that in mind for the next contests. If you didn't solve a problem because you didn't know some theory, make sure to read about that theory after the contest.

Are you not able to find good contests at a good schedule for you? Well, I heard that people simulate contests with other people when practicing for the team contest that shall not be named. I think you could do something like that, get a coach to assign some problems you didn't previously see before and compete against your own theme with a time limit in solving those problems.
Email ThisBlogThis!Share to XShare to Facebook
Posted in codeforces, probably_not_a_good_tip, topcoder | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • TopCoder SRM 557 - finally
    SRM 557 Explanation for division 1 Easy and match recap. Explanations for div2 easy and div2 medium. It feels like it has been ages since t...
  • SRM 589 Editorial
    I have finished writing the editorial for TopCoder SRM 589: http://apps.topcoder.com/wiki/display/tc/SRM+589 . As you most likely noticed. L...
  • SRM 590 recap and editorial
    Another week another Topcoder match. Not a great day. I had a bad flu and still do. Div1 500: The one with Xor Given a list of cards with nu...
  • SRM 546: relief
    I figured I should post something about this SRM. I've been very busy these weeks because the semester is ending and I tried to win a t-...
  • SRM 526: The killing wait for results
    While I wait for results, here is my perspective on this algorithm contest. It began with issues, it had to be postponed 15 minutes. TC has ...
  • SRM 554 div1 hard: TheBrickTowerHardDivOne
    Link to problem statement We got infinitely many bricks of dimensions 1x1x1 and C different colors. Count the number of towers of size 2x2...
  • SRM 533: Div1 500 MagicBoard explanation
    Finally solved it. It is a nice problem that is worth explaining in a post. You have a grid/board of at most 50x50 cells. Some cells contain...
  • Member SRM 505: Part 1
    So, let me explain a couple of problems from a Topcoder Member SRM that I wrote and never got an editorial. BTW, it was the last member SRM....
  • ListedLinks 2012-02-10
    Saturday Morning Breakfast Cereal comics: Grace Hopper's ghost That Oracle engineer blog post Oracle would really not like anyone to se...
  • Codeforces "Good bye 2013" round
    So it was a special round for coders of both divisions, problems ranged from the super easy problem A to the super difficult problems E,F,G....

Categories

  • acm
  • algorithm
  • answers
  • arenaplugin
  • badday
  • behindthescenes
  • bugs
  • c++
  • censorship
  • codechef
  • codeforces
  • contests
  • crocchamp
  • editorial
  • editorial.srm
  • embarrassing
  • explanation
  • gcj2013
  • gmp
  • goodday
  • google
  • googlecodejam
  • greed
  • groklaw
  • health
  • html
  • httpseverywhere
  • implementation
  • ipsc
  • ispc
  • java
  • kawigiedit
  • kindagoodday
  • lamebook
  • languages
  • lego
  • listedlinks
  • marathon
  • nasa
  • offtopic
  • ouch
  • postmortem
  • postportem
  • practical
  • probably_not_a_good_tip
  • problemsetting
  • programming
  • python
  • quora
  • rant
  • recap
  • slightlygoodday
  • snippet
  • srm
  • stl
  • strategy
  • swerc
  • tco
  • tco12
  • tco13
  • tco2012
  • tco2013
  • ternarysearch
  • topcoder
  • tricks
  • ubuntu
  • uva
  • vjass
  • vkcup
  • wc3
  • zinc

Blog Archive

  • ►  2014 (1)
    • ►  January (1)
  • ►  2013 (141)
    • ►  December (14)
    • ►  November (8)
    • ►  October (13)
    • ►  September (11)
    • ►  August (14)
    • ►  July (15)
    • ►  June (13)
    • ►  May (13)
    • ►  April (12)
    • ►  March (11)
    • ►  February (11)
    • ►  January (6)
  • ►  2012 (94)
    • ►  December (5)
    • ►  October (6)
    • ►  September (8)
    • ►  August (6)
    • ►  July (3)
    • ►  June (5)
    • ►  May (8)
    • ►  April (10)
    • ►  March (20)
    • ►  February (16)
    • ►  January (7)
  • ▼  2011 (51)
    • ►  December (7)
    • ▼  November (12)
      • SRM 595: And now , for something completely different
      • Seriously google, what's wrong with you?
      • SWERC 2011, D, F, G, H and almost E
      • Codeforces Beta round #95
      • Codechef November cook-off
      • SRM 524: LongestSequence, finally!
      • SRM 524: ouch
      • Maybe prefixing it with PROTIP in the forums would...
      • You know that thing they call practice? Don't do it
      • The trick: Resetting arrays in no time.
      • SRM 523: Behind the scenes and predictions
      • Is Google losing its touch?
    • ►  October (5)
    • ►  September (1)
    • ►  August (3)
    • ►  July (4)
    • ►  June (3)
    • ►  May (7)
    • ►  April (3)
    • ►  March (2)
    • ►  February (1)
    • ►  January (3)
  • ►  2010 (9)
    • ►  December (4)
    • ►  October (1)
    • ►  June (1)
    • ►  May (1)
    • ►  January (2)
  • ►  2009 (1)
    • ►  December (1)
Powered by Blogger.

About Me

Unknown
View my complete profile