New developers: “How do I know what to learn and when I’ve learned ‘enough’ ?”

A question frequently asked by new developers is what to learn, how much to learn, and how do you know when you’ve learned enough?

Learn what you need to solve the current problem and then repeat for the next problem.

Don’t think about his as a finite set of knowledge that you need to learn and then that’s it, that’s the end. That’s not how it works. There’s always something new to learn, and there’s always something you’ll find that you don’t know.

Adjust your mindset to keep this in mind and you’ll be ok.

Use every situation as an opportunity to learn

Tip for the day:

Software development is a career of continual learning. There’s always something new to learn, and always someone to learn from. Use every situation you find yourself in as a new opportunity to learn. Everything you learn now will at some point be useful to you at some point in the future, even if it’s not immediately obvious right now.

Investing in your skills development – how do you choose where to invest? (part 2).

I’ve written before about the importance of keeping your skills up to date, and this is a followup to a previous post, answering the question ‘how do you decide where you should spend your time?’

You can never keep up with everything, every new programming language, every new tech stack, every new trend; you need to understand and acknowledge that first.

Next, decide what matters to you, and where you want to spend your (limited) time keeping up to date. This is different for everyone, but it could be any combination of:

– keeping up to date with the tech you’re currently working with (all or parts of)

– keeping (or getting) up to date with ‘something else’ that maybe next on your horizon

– keeping an eye on upcoming and emerging tech trends. Trends come and go over time, some last longer than others. You can’t jump on every new thing that comes up, so you need to make your own decisions on whether something is likely to be part of your future or not. In other words, would it be worth investing your time in this trend or not?

The last point is hard when starting out because you have no past experience to compare against, but spending some time reading the chatter online will give you a rough feeling of whether something is increasing in popularity or not.

As with everything, you need to sensibly assess tech trends in order to work out what is pure hype and will never go anywhere, vs things where there’s some substance and is likely to evolve into something you should get more familiar with.

Principals and techniques are more valuable that specific skills

It seems like everyone wants to learn to program and become a developer nowdays, which is great, but there’s a noticeable trend online of people asking how to learn language xyz in the shortest amount of time imaginable and get a job by next month, which is a completely unrealistic expectation.

We all have bills to pay, I get it. However, whereas learning how to build a simple HTML page today may get you your first job and keep you busy for a few months, it may not keep you employed for long if you’re not prepared to keep your skills up to date and keep up with the industry trends.

Technologies in software development change quick. What’s hot this year may be out of date the next year. You need to commit to investing in keeping your skills up to date and to stay current with the current skill demands. If you’re a relatively new developer or are just getting started, it would help to do some research about programming languages and frameworks to get an understanding of how quickly things have changed in the past. In the early 2000s for example, every Java based web application was built with Apache Struts and it was replaced with Spring MVC (and a few others) in the space of a couple of years. Web frameworks have a significantly quick turnover. JavaScript based web frameworks and libraries have come and gone in the last few years at an alarming rate – jQuery used to be everywhere and is now is a second choice (or not even considered) over the main frameworks dominating this space, Angular, React and Vue.

It’s important to keep in perspective that programming languages are tools, and learning a programming language alone does not make you a developer. A comparison is learning to use a hammer when intending to get a job as a framer building houses – it’s more obvious to see how ridiculous that expectation is, but the same thing applies to only learning a programming language.

Principals and techniques are reusable and transferrable skills, no matter what programming language you are using. Focus on developing your software development skills first, and secondly a programming language.

A career in software development is a career of continual learning and keeping your skills up to date. Regularly invest in your skills and you’ll be able to enjoy a long and rewarding career in software development.