Why do I suck at competitive programming despite being good at cracking interviews at top companies?
-
I have a bachelors degree in Computer Science and I have been able to get job offers from Amazon, Google and Facebook after clearing their interview questions. I'm familiar with many algorithms, and have read interview books, and several books on algorithms. I didn't fluke those interviews because I never saw the questions they asked before and I spent quite some time trying to figure the problems out. I have a decent bit of industrial experience and I'm generally quite good at my job (which encompasses a very diverse skill set across multiple programming languages and paradigms), but competitive programming does not utilize the same skill set as software engineering. However, I find Div-2 500 level problems challenging (i.e. I don't know of an efficient non-brute force way of solving it. I never do brute-force since I'm not interested in just passing the tests - I want to know the "trick" behind the problem, like an interview question. The quality of the solution, and not the speed at which I can submit is my criterion). I can easily implement the code if I know the solution to a problem. However, I have trouble coming up with a solution to them, and I have never been able to solve 1000 level problems. I have zero experience in competitive programming and usually give up in ten minutes and read the editorial if I don't get a solution. When I do, I realize that I've been trying to approach the problem in a more complicated manner. I have tried to solve about ten problems so far. I don't do Div II 250 because they're really simple, and there's no point practicing problems that are easy to solve. Exactly how do I improve? Does competitive programming require a different method of practice? Do I just keep trying to solve them and hope I get better? I wanted to know what you'd suggest for a person with my background to become better at this.
-
Answer:
"and usually give up in ten minutes and read the editorial" -- that's why. Truth is, getting a job offer from Amazon and the like is not hard at all. Especially if you are a likable, young person with a decent degree. That said, don't feel bad. The beauty of programming competitions is that there is a distinct difference between "right" and "wrong". Use it! If you really want to get into competitive programming, set a goal and work towards it. Reading editorials is fine; giving up is not. Set a goal of solving at least one Div2-500 per week, don't count the ones you have given up and opened the editorial. With this in mind, life is richer than competitive programming. You may well do great in the industry without becoming an algorithm ninja. All the best!
Dima Korolev at Quora Visit the source
Related Q & A:
- What certification can I get for C Programming?Best solution by Yahoo! Answers
- How can I get a computer programming job?Best solution by Stack Overflow
- Where can I take an online programming aptitude test/exam?Best solution by Stack Overflow
- Where can I learn about computer programming?Best solution by Yahoo! Answers
- Where can I find a computer programming internship?Best solution by ChaCha
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.