Would you say are these kind of questions good way to improve your skills or just waste of time since they have no application in real life(or not)?
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3
Would you say are these kind of questions good way to improve your skills or just waste of time since they have no application in real life(or not)?
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3
While they might not be directly applicable to real-life situations they can often be adapted to solve a real life problem. Or more likely by doing these sort of exercises you'll develop problem solving skills and the ability to look at problem in different ways.
Plus you never know one day you might need to write an anagram solver.
Yes. You need to continuously practice to learn and maintain programming skills. Besides, if you have the time there is no way solving these is going to make you a worse programmer - if nothing else they expose you to problems you would have never otherwise considered.
Honestly, I think it would depend on the type of programming you do. If your doing a lot of engineering/math type programming than I'd image that those problems would help you out quite a bit. They probably wouldn't help me out with the work that I do though which mostly involves database and business logic.
Personally, I like to look around and learn as many new and different approaches to programming along with their strengths and weaknesses to solving various problems. i.e. Perl is great for manipulating strings, but isn't the strongest at doing database work.
If your looking for something to practice though, you may want to look at code katas.
You can find more practice oriented challenges at SPOJ challenges problem set. See for example: very nice problem related to game strategies or Simple Image Recognition.