Darn! Just when my crystal ball is out being serviced...
C++ is a good, solid language that isn't going away any time soon. Even if it does, learning it will still provide you with a good foundation in programming that you can apply to any other language you might learn later. Don't waste your time worrying that you're wasting your time. Start coding...
For olympiad programming you need to understand algorithms and data structures on a high level, and although understanding of the language is important, understanding the workings of the algorithms and data structures is even more important.
PS: C++ won't die any time soon. Also, if you learn it other languages will become easier to learn.
im not worried about wasting my time, no matter what work i will work, it will help me (making programs that help me at work), but i asked this because, i want to know if i will continue my life programming, or take it as a hobby.
It is impossible to know.
I learning myself all I know about programming, but I am not a programmer and my studyes (where I try to find job) don't involve programming at all.
But I continue to try to program during my free time (when I have) becouse I like to do it. I am not forced to do it.
No one knows the road you will choose for your life. Probably you wanted to know what language is more commonly asked when you try to find a job.... in this case I am unable to help you.
C++: Very Advanced and very flexible programming language. Improved with OOP it will very good for almost every kind of program. Disadvantages: not so suitable for very low-level programming like creating a kerrnel (see C) and for the same reason not good for a "dinamic-shared" plugin framework.
C: Very low-level. Usually when you can develop in C you can develop also in c++, less error prone. So you probably you would prefer C++. However C should be a best choice if you are trying to develop low-level applications, like a kernel, kernel modules, modules to interact with a plugin-based framework (extensibility with external shared library changable on-the-fly).
This becouse there are some issues related to the linking phase of c++ that it is more strictly-dependent to the actual compiler used (example... if you compile a lib.so with compiler A and you try to use in a program compiled with compiler B..... if lib.so is wrote in C it will work, if lib.so is wrote in C++ it CAN work, but there are cases where the linking or executing phase will fail)
Others: others language can have advances and disadvanteges depending of what kind of thing you are developing. In that case you could need to learn languages like: html, php, java, python, etc etc
you have a good question about the future of c++. The school I attend now is going to replace the intro to programming course (this intro class is based on c++) with intro to programming using JAVA.
and really it makes no difference because the fundamentals are basically the same in both languages. C++ is probably the best language for you to cut your teeth on.
for my class i use alot of code that i get from java forums, I just tweak it to work in c++.
so i guess what I'm saying is learn the c++ and it will serve you well