You don't really know unless you apply it. I grew up disassembling and competing cracking programs, then I learned c because assembler was too slow for creating things like compilers that I wanted to create.
Then I had to learn c++ in order to create graphic interfaces for my programs.
Then I needed python in order to develop faster... java, objective c, c sharp, they provided me with things that I needed.
Then after years of programming I created a company and felt behind. We were so f*ching slow. We needed something else: we discovered metaprogramming in Lisp. Much better then, things improved.
We modified the CLang compiler in order to do much better than anybody else what we did. We were pretty successful.
But it is not enough. We want to change the world. We want people of the world understanding each other using their own languages. We want to understand DNA and end cancer and aging. We want robots that drive and cook. We want to understand nuclear fusion. We want to improve battery technologies, to remove the salt from sea water cheaply. We want to make inexpensive LED plant growing so we can travel to Mars or Venus.
And all the technology that we have is not enough for solving those problems. When you face those problems you became humble and you met the best people you could ever imagine.
Surrounding yourself with really smart people you will learn in a year what you will in your entire life if you only face trivial problems.