Don't focus on the language; they change regularly and will continue to change throughout your career.
Do focus on selecting the
right tool for your
next job:
- which languages employers will want you to use. There are surveys of that.
- what tools are available so you can develop your solution faster, especially libraries
- ways in which problems can be defined
- ways in which solutions can be expressed. These should be congruent with the problem, so you can see the implementation is a correct solution of the problem
- understand what each tool doesn't do
- seamless implementation of specifications in both hardware and software. Sometimes you need to move implementations from one to the other
and don't use a hammer to insert screws!
So, which tools should engineers have in their toolbox?
Provably correct implementation: Ada/SPARK.
Multicore processing: xC, OCCAM.
Hard real-time embedded, i.e. timings guaranteed by the compiler not by testing and hoping: xC.
Simple embedded programming: C.
Finite State Machines: either a specific tool or one of the standard design patterns in whatever language you are using.
Statistics: R and similar.
High performance computing and numerical codes: Fortran.
General purpose, without other overriding constraints: Java or Python.
Analogue electronics: Spice
RF: whichever very expensive tool your employer has purchased, or a limited freeware version.
Digital HDLs, especially for FPGAs: Verilog or VHDL.
Scalable soft-realtime, e.g. telecoms systems: Java.
Quick and dirty number manipulation: a spreadsheet.
Algebra, when exploring conceptual designs: Mathematica.
Be aware that C++ has become so complex that everybody and project has to choose a subset that is used and a subset that is avoided. One problem is that every project/designer/library chooses a different subset, often incompatible and often without realising the consequences.