Hacker News new | ask | show | jobs
by tom_b 4134 days ago
Keep up the practice. I'm working with similar puzzles and have found that the simpler ones are becoming easier over time.

The next level up seems to be problems that require composing algorithms. This type of problem takes creativity, some insight into how to combine, for example, graph algorithms with dynamic programming to come up with "optimal" solutions. These are quite hard for me, especially dynamic programming - it seems to be a favored component in many problems.

Maybe consider downloading 5 or 10 years worth of ACM programming contest problems. Take your time, work through each one, and add to a notebook (or even something like Anki) for regular review.

There is a book on competitive programming at https://sites.google.com/site/stevenhalim/ The first edition is freely available there as a pdf.

Stepping away from your question, you mention that your puzzle solving speed is holding you back from getting your desired job. This is a tough situation - it sounds like the job you want is at a company where these puzzle interviews are prized. If it is possible, maybe you could try to create some working sample code that addresses the job requirements. A portfolio you could put forward and talk about with interviewers instead?

I sometimes try to think from the perspective of how would I setup a course to teach someone to be good at some specific subject. Occasionally I even manage to do that and turn around and make myself the student in that course. You've got a PhD already, so determination isn't a problem for you. Keep grinding!