Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An Insight from My Competitive Programming Journey

An Insight from My Competitive Programming Journey

A bit of insight from somebody that never won competitive programming contest even once on the national level.

Avatar for Wisnu Adi Nurcahyo

Wisnu Adi Nurcahyo

September 11, 2020
Tweet

More Decks by Wisnu Adi Nurcahyo

Other Decks in Programming

Transcript

  1. My Little Background First time doing competitive programming: Third year

    of senior high school. To be clear, I’m not a hardcore competitive programmer. I do competitive programming as a hobby. Never “win” even once. My highest rank as a team is 4th place in a provincial or maybe national level? I’m not really sure. I’m known as “epicurean” on the competitive programming platform. As a team, we usually going as “AnakRantauMenderita”.
  2. Why Am I Doing This? I love programming in general.

    I also love challenge. The easiest way to acquire those two are by doing competitive programming. We got both programming and challenge at the same time.
  3. Topics on Competitive Programming If you already participated in a

    competitive programming competition then you must be aware that there are a lot topics you need to know. Computational geometry, dynamic programming, greedy, number theory, game theory, sorting, graph theory, tree, and so on. Remember that the first step to solve a problem is to identify the problem first!
  4. Learn the basic of as many topics as you can.

    Then, get to know more by learning & practicing on the several topics.
  5. Algorithm Design & Analysis Identify what kind of algorithm you

    can apply in regard of the input size. This bad boy will be your best friend
  6. What is Big-O Anyway? To put it simply, big-O analysis

    usage is to identify the worst case of an algorithm. It count the number of computations needed to finish the algorithm. It shows us the upper bound of an algorithm. My rule of thumb: 100,000,000 computations are done in one second. You don’t need to dive too deep on this one although it would be great.
  7. Big-O Time Table Source: The Algorithm Design Manual His rule

    thumb is that 1 billion computations is done in one second.
  8. What’s left is to practice more and participate in an

    online competition. Do it solo first.
  9. Then, find yourself a teammate to participate in a team

    based competitive programming competition.
  10. Each competition usually have their own characteristics. By that I

    mean a certain competition would bring a certain topics. Try to analyze the problems from years before and you will understand what I meant to say.
  11. (Almost) Easy Online Coding Challenge & Technical Interview I got

    myself a high paying part-time job at I eventually secured myself an internship at
  12. Although I’m saying this, please focus on your study. Don’t

    do part-time if you don’t need to. You are most welcome to do internship though.
  13. Also, you got a better chance to work at the

    giant tech company such as Google, Facebook, Twitter, etc. Their first step on recruiting someone is to review the applicant’s resume. You got an upper hand if you do a lot of coding competitions. Moreover if you have won at least once. Winning in the ICPC is a great choice. The second step is online coding challenge. You are more likely able to do this well if you have a solid skill in competitive programming.
  14. A similar coding problem from Bukalapak technical interview back then

    hackerrank.com/challenges/matrix-rotation-algo/problem
  15. Actually, reading about someone successful story in competitive programming is

    fun. Like, a story about Gennady “tourist” Korotkevich. A programming prodigy. It may motivate you.