Gauging Programming Challenge Hardness/Complexity
May 11, 2019
4 Comments
Are Software Engineers inherently capable of gauging the complexity/hardness of the Programming Challenge questions during Interviews? Particularly the applicants, does every question begin as a Hard question, and eventually end up in the medium to easy range depending on whether you were able to spot the trick in the question, or apply an idea previously used to solve a similar question etc? Or despite the revelation toward a solution, a question is still in the Hard Range because, well, it was never easy?
comments
1. parsing the problem statement and constraints
2. figuring out a solution (e.g. try out a few examples by hand to find patterns, compare to similar problems you've solved before)
3. implementation
4. testing for various inputs and edge cases
5. extension for generality and optimization
e.g. computational geometry is generally well-formulated in 1, but tricky in 3 and 4
dynamic programming has the challenge in 2, while 3 is fairly trivial
graph problems can take a while to read in 1, and there tends to be relatively more emphasis on 5