psyho presentation

Upload: johnny-depp

Post on 10-Jan-2016

3 views

Category:

Documents


0 download

DESCRIPTION

The achilles heel for competitive programmers, where to begin, what to do, where to start. all in one place

TRANSCRIPT

  • How to extract maximum value out of competitive programming?

    by Psyho

  • Who am I

    I won a bunch of contests (4xTCOs, few 24h competitions, Imagine Cup, 30 MMs and some other stuff).

    Currently, I make a living out of winning machine learning contests.

    Throughout my life I was mostly focused on various mind sports: competitive programming, gaming, skill gaming, puzzles, poker.

  • Summary of the talk

    Listen to the introListen to the talk???PROFIT

  • What is Competitive Programming

    Mind Sport Clearly defined objective goal Involves programming Tests problem solving skill Usually gives good feedback

    Examples: classic/recreational (TC, CF), optimization, machine learning, CTF, game AI

  • Reasons why we compete

    For fun To get a Job (security) Because it's challenging To gain knowledge/skills For glory & fame Others

  • Guide to Improving Yourself

  • Common responses to How to get better?

    Practice! Practice, practice, practice! Do more contests! Do more stuff! Do more! 20 pages long explanation. No one will read it past the second

    page.

  • The Infinite Loop of Improvement

    Goal: maximize TRUE_RATING

    while (true) { locate_weakest_point(); improve_weakest_point();}

  • Skill vs Time graph

  • The Infinite Loop of Improvement 2.0

    while (true) { if (not_being_efficient()) { improve_efficiency(); } else { locate_weakest_point(); improve_weakest_point(); }}

  • The Infinite Loop of Improvement 2.0b

    Optimization ProblemGoal: maximize TRUE_RATING at some point in the futureState: (time, efficiency, set of current skill levels)Transition function: various tasks you can perform, generally tuples of (used_time, efficiency_delta, skill, skill_improvement)

  • Knowledge vs Skills

    Knowledge has a narrow application Skill has a wide application It's easy to obtain new knowledge It's hard to obtain new skills Skills > Knowledge

  • Exponential Growth

    Some skills/traits affect the tempo of obtaining new skills The goal is to obtain them as soon as possible Examples:

    Better physical shape Better long-term and short-term memory Knowing good ways to relax Being better at understanding yourself Better concentration

    Poorly drawnexponential function

  • Choices

    Customization of our tasks that we can perform. We can think of them as parameters.

    Examples: Using pre-written code Code styling Using macros in C++ How much time do we spent trying to solve a problem Style of debugging Forcing certain working conditions (well-rested/tired, silence/with music)

  • Lack of Full Information

    No one exactly knows his state No one exactly knows how the tasks affect his state This is the main reason why coaches exist This is the main reason why you shouldn't have a coach

  • Confused?

    Just stick to practicing ;)

  • This page is intentionally left blank

  • Guide to Improving Yourself 2:A different view

  • Back to Basics

    Goal: maximize TRUE_RATING (?)

    while (true) { locate_weakest_point(); improve_weakest_point();}

  • Wisdom from the Old(er) Man

    No one really knows what they are doing No one really knows what their life is going to look in the next

    5 years

  • Wrapping things up

  • Don't be results-oriented. One of the advantages of competitive programming is that it

    provides great feedback. Try to prioritize learning general skills over specific knowledge. Grinding specific types of problems is the least effective

    method of training. Each time you do anything, try to understand the reason

    behind it and potential gains. That's what lazy people do :) Winning sucks because it doesn't tell you what went wrong. You don't need a coach. Have fun.

    Slajd 1Slajd 2Slajd 3Slajd 4Slajd 5Slajd 6Slajd 7Slajd 8Slajd 9Slajd 10Slajd 11Slajd 12Slajd 13Slajd 14Slajd 15Slajd 16Slajd 17Slajd 18Slajd 19Slajd 20Slajd 21Slajd 22Slajd 23