| "I was able to learn the tools easily because an expert in one of the tools, and worked on it for 3 years. In the mean time, I lost all my programming skills. I now don't have any programming skills what so ever." If you are expecting to pick up a new language you cannot expect to code at the same speed as the programming language you have been working on for quite a while with. But that is not necessarily a bad thing. C/C++ have huge changes in the language updates as well so it is not too suprising if you think you have unlearned some of them. In retrospect maybe you just learned some of the algorithms rather than just learning the languages themselves when doing the languages. To re-learn them i'd look at more used libraries for C++ like libmusl and be aware that real programming is not all about just algorithms. Instead of picking a new programming language to learn maybe you should learn a bit more about the "ecosystems" of languages. While almost all programming languages are good at almost everything, there are a few special "sweetspots" of coding in specific languages. Some example questions you should pay attention to:
Why are some programming languages used more than others for specific situations?
What is the difference between a scripting language and a normal functional programming language? Some of those questions have somewhat obvious answers. Many of the languages now are specialized in a few things. Erlang is great for passing data around. Rust is good for recoverability with a server. Go is good for concurrency patterns (but fails on some degree where concurrency patterns are not just steady/simple). Ocaml is good for security based programming because it is a static language(one instruction/way of executing for most of the language) it is also used entirely by at least one company that operates in the space of trading. Python is good for computing with numbers because it automatically can handle large numbers and can be easily convereted to C/C++. I'd suggest learning the ecosystem of what drives what in a specific category. For instance do you want to get into machine learning? reverse engineering? devops (automated deployment)? Picking some skillset that is out there already that is highly valued and then learning about programming languages by viewing what companies are doing is a good way to learn. You see business decisions that are made based on programming language, time, money constraints, and it's not all just about what they just had at the time for the bigger tech companies because if it sucked they re-coded it. If you have any specific questions you can ask away below. |