Programmers have to learn all the time. It doesn’t matter if you started to code a few days ago or have decades of experience. Either way, you have to learn constantly to stay relevant.

The problem is, there are so many things to learn. Should you master a new language? Maybe a different framework? Or get deeper into computer science? What makes it even trickier is the fact that modern developers often need skills other than programming — be it UX, online marketing, or social skills.

Our time is limited and the list of potentially useful skills is ever-growing. The wrong decision can cost us time and impede our careers.

So how can we decide what we should learn next? The answer depends on the stage of your career, your goals, and your interests. Let’s try to look at our options from different perspectives.

Junior Programmer Without a Job

That’s the toughest one. At first, you don’t even know what you don’t know. You want to code and find a job, but there are so many languages, frameworks, and tools. The choice seems impossible. And everyone on Twitter holds a different opinion on what is the hottest and most useful.

To find a job, you can’t learn everything.

Your future employer is not stupid and knows it’s impossible for you to be an expert in multiple fields if you started coding a year ago.

If you are to focus only on a handful of frameworks and technologies, how should you choose them?

Begin with researching your options. For example, in front-end development, a few stacks are popular. There is MERN (MongoDB, Express.js, React, and Node.js), MEAN (MongoDB, Express, Angular, and Node), JAM (JavaScript, APIs, and Markup), and a few others. Check them out, try watching some tutorials, and decide which stack feels the most natural to you. This will be a starting point for choosing your learning path.

When you’ve got a basic overview, it’s time to see what job offers are available in your area. Check how many vacancies there are for each stack, if there are offers for junior developers or only more experienced ones, and what types of companies are looking for particular skills. You’ll immediately notice some trends and may need to adjust your initial choice to increase your chances of finding a job.

The market trends are also significant. Some technologies used to be omnipresent and are still widely used, but their popularity is declining. In the front end, the most prominent example is jQuery. Even if you find some open positions with jQuery needed, they may disappear before you’re ready to get a job. Usually, getting the first job takes months or years, so it may be better to bet on technologies with rising or stable popularity. Either way, you need to bring IT trends into consideration.

The next thing you want to contemplate is the applicability of your knowledge in other areas. Some languages and frameworks use distinctive patterns and approaches to solving problems. Others are based on broader programming principles.

The more applicable your knowledge is to other fields, the better. For example, you need JavaScript for almost every front-end development job. What’s even better, you may use it in back-end and mobile development. So JavaScript is a great bet. On the other hand, the Angular framework comes with a vast ecosystem. To learn Angular, you need to master many patterns specific to it. This knowledge is useful but not particularly transferrable if you need to retrain.

Now you are ready to pick your programming stack. You need to find a sweet spot between your areas of interest, job opportunities, market trends, and general technology applicability.

#programming #productivity #learning #software-development #data-science

How to Plan Your Learning — The Guide for Programmers
1.50 GEEK