Which programming language should I learn?
Very often I see, new comers who wants to deploy their career in software engineering are so much confused about what programming language or tech stack they need to learn and they will be safe in the job market for next 10 to 15 years.
While the question seems straightforward, the answer is not that much. The domain or scope of the software engineering is so huge anybody can get confused. Until someone has some good grasp on some programming language it is very common to get distracted on this decision.
To me, programming language is a tool for solving real problems. We all do code or build software to solve real business problems. If you can learn one programming language and become an expert on it, it only a matter of a week to start a new programming language at any point in time later.
Before focusing any area I would suggest any new comer to learn at least one programming language either C or python very efficiently and deeply. Starting with python is safe since people feel encouraged and does not lose hope while learning programming first time ever due to the simplicity and easiness of the language syntax. During the learning period, one should definitely focus on the programming concepts, build skillset to solve programming problems, understand different programming paradigms.
I suggest to learn C programming language after learning python to build up a strong programming base.
To develop problem solving skills, you can practice on sites in or similar to hackerrank.com or leetcode.com.