In August, I gave an interview which caused many comments. Now, is the right time to publish my thoughts.
I gave the interview for the e-finance-blog "efinancialcareers". I essentially stated the following:
- C++ is heavily used in the finance industry, for game developers, and in the automotive industry.
- When you want to learn C++, start at least with C++11.
- C++ is often used to build infrastructure.
- C++ is too big to fall.
You can read the whole interview here: "C++ will be used for the next 50-100 years in financial services".
Two months later, this interview went viral and was discussed in a few forums:
In total, I got almost 2000 comments. Today, I want to present the main points about the final interview, because this is my motivation for writing articles, posts, and books, recording videos, and teaching and mentoring C++.
C++ and the Lack of Training Culture
To make it simple. I paraphrase the questions of the interviewer and translated my answers into English. The original interview can be found on heise developer: Interview: C++ und der Mangel an Forbildungskultur:
What is the appeal of this language for you? Why has it been able to hold its own so well against newer languages?
C++ manages a balancing act. On the one hand, C++ allows you to communicate directly with the hardware. On the other hand, it offers the necessary abstractions that make programming much more convenient. What is special about C++ in particular is that it offers access to hardware for zero cost.
Developers with expertise in C++ are especially in demand, but C++ doesn't seem to be highly in favor of some. Why is that?
C++ is a complicated language used in complicated domains such as systems-oriented programming, high-performance computing, or concurrency. Languages like Python abstract away much of this domain complexity. However, this comes at the expense of resources such as time and memory.
You were quoted saying that training is poor. What is it lacking?
In our industry, training is often still viewed as a one-time challenge to be mastered like a driver's license. But our domain is far too dynamic for this naive view. Continuing education must become an integral part of our daily routine. We must learn that learning is an integral part of our professional activities.
What could be done to improve training?
We need a culture of continuing education in our companies. I have twice established continuing education rounds in my companies. Both were a very big success and created much momentum. For me, they were the starting point of my "career" as a trainer/mentor.
There is a shortage of C++ experts, in particular, in the financial sector and in the automotive industry. Do applicants need special expertise?
In these domains, many skills are needed, some of them heterogeneous. For example, the automotive industry is characterized by a combination of hardware and software. In the automotive industry, they need to be able to communicate directly with hardware as well as design a large software architecture. In addition, the automotive sector is highly regulated, and high safety requirements must be met.
What is the best way to position yourself to be fit for the future?
I will answer with an English proverb: "Don't hire for skills, hire for attitude." I have been guided by this proverb in my hiring interviews. What interests me most is how committed an applicant is to work on himself and his skills because his existing skills have a short half-life.
So were the tower of Babel, Rome and Soviet Russia.
How long did it take for Rom to fall? More than 1000 years (400 - 1500).
By the way, I learned Latin in school. You see, Latin is still alive, and too big to fall.
Very well said Rainer. Plus, look at C. C should also be an example of how some languages are too difficult to be done away with. C++ keeps getting stronger with every new standard. Yes, that brings in more complexity, maybe, but the beauty is that, a developer needs to know and learn the features that is most suitable for his/her domain.