Solving project Euler problems, you will improve your understanding of what happens while algorithms are executing big number of iterations, or dealing with huge numbers, you will learn a lot about code optimisation.
For who enjoy to learn by necessity, challenges in general are a very good school.
Project Euler problems give the coder a chance to put their understanding of a language to the test.
They also give a coder a chance to be exposed to types of problems expected to be solvable in the real world.
In short, very useful and programming language (Not HTML or CSS) neutral.
Actually, it's pure math.
But the interesting point is here: how you use a computer language to solve a particular problem.
Don't forget about one important rule: every Euler problem must be solved within 1 minute after you launch your code. So, heavy codes must be changed into flexible ones. It's where I like it.
So, Euler problems help you not only explore a computer language, but also requires you to bring out short'n'sweet way of execution.