Olympiad programming will give you good erudition in algorithms and combinatorics. In general, very useful knowledge and skills. Tasks that require such knowledge in real life are, but rarely, depends on the knowledge intensity of the subject area.
By itself, the style in which olympiad problems are solved is to perform the task at least in any way, but to meet the set time is usually unacceptable in ordinary programming: usually you need to solve the problem with the proper quality, including the quality of written code, in a reasonable time. Moreover, the skill of assessing development time and the ability to meet the stated time is important. Comprehensibility of the solution is often even more important than performance - because if no one else can figure it out, you will still be rewritten "as simple as that."
The only situation in life that really looks like an olympiad one is when someone (most often you yourself) got stuck on the prode, and you need to urgently find a solution to the problem and fix it.
Successful olympiadnik on ordinary projects is boring - there are few places where you can express yourself, but the sea of routine.