While I really enjoy reading up the cleverness involved in something like KMP-string search from a good textbook like CLRS, it is also deflating looking at the pure "lateral thinking" that goes into these things! Tips, suggestions, thoughts welcome.
Doing code challenges is kind of like taking every class at your college: I understand the urge to crank through them but past a certain point, like when the motivation becomes having a badge to show off, there are simply better uses of your time, and in general a good self directed project should be considered ‘the real deal’ - code challenges a substitute.
That being said, some of my ‘level ups’ were on the back of completing code challenges, and for beginners very simple challenges can be great learning tools. But when they start feeling tedious recognize that you can put them down for more fulfilling and productive work.