At my university (NUS), it is recommended for us to get the first part of CP4 book by Steven Halim. Has anyone tried solving problems from it or should I solve randomly from Codeforces problem set? I believe the problems in CP4 book are categorized so maybe it's better to solve from it rather than solving random problems here?
Thanks
I don't really recommend learning competitive programming by going through a book. It's not that linear and it dedicated the same amount of pages usually to things that shouldn't be practiced the same amount. I would use competitive programming books more like a encyclopedia, where you can come to learn some specific thing you need to learn.
As for CP4, I own it but I have only taken a glance so far. I think it suffers from the same problems as I stated earlier (one thing that caught my eye is recommending templates in one of the first chapters?!), but it can be used as one of the resources for practicing, as long as you don't just right it cover to cover.
Writing your own templates is good for having some time to reflect on how to organize your code in a way that it's better for later. Why do you think it's such a bad thing?
Because I don't think that beginners should even know many algorithms, and even if they do, it's more useful in practice to code it each time than code it once.
I see. That makes sense, when you mention it's in a beginner's point of view.
Yeah, for advanced coders who mostly participate in online contests it's really useful. Though for Olympiad contestants I would still be careful of using templates so you don't forget how you implement some advanced algorithm.