Across the hundreds of programming languages, there are some similarities. These even fall into types of development language families. When you are looking at how to expand your technical skills these complementary languages can speed your growth. The key is to start with fundamentals and use those to grow to less common problems that are solved with code.
Start With a Good Foundation
The key to rapid learning and mastering of languages is to start with core or general purpose languages. The ones that fall into this category include popular languages like C, C++, C#, Java. Also, there are lesser-known ones like ADA, Fortran, and Pascal. These general purpose languages are perfect for learning concepts like logic, data structures, file interactions, data manipulation, and the list goes on. Once you are comfortable with these ideas, it becomes a matter of syntax as you move to new languages.
Different Ways To Think About Code
Once the fundamentals are covered, it is time to move into the various ways to think about coding. This step is where development language families become essential. The families can be seen as how they approach code execution (compiled vs. interpreted), structures (lists vs. strings vs. pointers), or other facets. When you are considering which language to learn next this, is a crucial point to ponder. There might be a weakness you have that will be addressed in learning a specific language. For example, tackling SQL is an excellent way to improve your database knowledge. However, Lisp is awesome if you want to master list manipulation.
Finding The Right Tools
Every language has its strengths and weaknesses. These attributes are why we should strive to grow our skill set beyond just one or two types of code. We will face problems in our career that are not well solved by some languages. If we can not find a tool that matches the problem, then we will have a non-ideal solution at best. Unfortunately, it is not uncommon for the wrong technology to be used to solve business problems. For example, I do not want to pick on spreadsheets, but how often is a spreadsheet used to solve a problem when a database would be much better? On the other hand, there are database solutions that could have been done better and faster with a little spreadsheet knowledge.
When we learn and grow, there are a variety of things to consider as we select each step. When we are in school or some structured course, our path is laid out. However, when we are plotting our route, we need to consider development language families as part of the ideal growth plan.