How to become a web developer in 2022 (from scratch). What I've learned from teaching myself web development.

How to become a web developer in 2022 (from scratch). What I've learned from teaching myself web development.

nick-morrison-FHnnjk1Yj7Y-unsplash.jpg

Teaching yourself web development has never been easier. There are hundreds of free courses, free books and bundles of content on YouTube. There are also reasonably priced resources and some very expensive options like Bootcamps. You can go from not knowing what a variable is, to getting your first job, without having to leave your house. Yet, learning to become a web developer is not easy. It will take hundreds of hours and dedication to push through those inevitable periods of low motivation. If you're not taking a formal course like a Bootcamp or a degree you will also need to create your own learning pathway, by selecting the skills that you think are valuable and deciding how much time to spend learning them. It will always be a case of trial and error and there is no perfect way to do this.

Learning to learn

tim-mossholder-WE_Kv_ZB1l0-unsplash.jpg

It sounds obvious, but if you're about to embark on the journey of teaching yourself web development, you're going to have to learn a lot. Any job advert will have a list as long as your arm with all the technologies they want their devs to know. The quote by Abraham Lincoln is overused but no less relevant here:

"Give me 6 hours to chop down a tree and I will spend the first 4 sharpening the axe".

It's worth spending time before you get started to think about how you learn. Do you absorb information better if you read it or hear it? Do you learn by doing or by making notes? I learn best by listening to people so I've got the bulk of my knowledge from online courses, YouTube and podcasts rather than books and blogs.

This is absolutely not essential to becoming a good developer but I find understanding the learning process really interesting. If you're interested too a couple of my favorite books on the topic are Peak Performance and Talent Code

Don't jump ship

This is a tricky one. If you start learning something and you're really not enjoying it, then trying something else might be the right thing to do. However, no matter what you're learning, you're going to go through stages where what you're doing seems hard, or boring, or irrelevant. The grass is always greener on the other side, as they say, and it's all too easy to decide what you actually need to learn is C# or Ruby or TypeScript. Chose a programming language and stick to it. Once you've developed a certain level of proficiency you can learn more. That's not to say that you should never change your mind but give it a lot of thought before you do.

Don't go too deep

While It's important to pick a language and stick with it, to be a web developer you will need many strings to your bow and you'll need to build a broad base of knowledge. For this reason, you don't want to become an expert on one technology before you start learning something else. It's great to have deep knowledge but you don't need to know absolutely everything about CSS (you never will) before you start learning JavaScript; and you don't need to be an expert in JavaScript before you start learning React. Learn the basics, get some practice, then learn something new. Just remember to keep going back to it and adding to your knowledge.

Learn the easy stuff first

I should say learn the easier stuff here. It should be hard enough to hold your attention and avoid you getting bored. What you want to avoid is getting so excited that you throw yourself into the really hard stuff, and end up stuck and demotivated after a few weeks. It's worth saying that everyone is different and we all have our own ways of learning so if this is what works for you then go ahead. That being said, you'll get a lot more done in the long run if you do something which you find enjoyable at a pace that you can maintain.

A few years ago I was interested in Machine Learning and instead of using pre-built tools to build some cool stuff I decided that I first needed to learn all the linear algebra and multivariate calculus that I might need to build a machine learning program. Needless to say, I didn't carry on with it for more than a couple of months.

If you're really into learning algorithms and design patterns or reading through documentation then do that but if you're not then start by building stuff and having fun.

The Tutorial Trap

christian-wiediger-NmGzVG5Wsg8-unsplash.jpg

Many people have written about the tutorial trap. This is where you get stuck watching tutorials but never seem to make any progress. If you feel like you forget everything you learn as soon as you learn it, you may have fallen into the tutorial trap.

Here's the thing: It's actually very hard to just listen to tutorials and code along and actually remember what you've learned. If you're starting completely from scratch then it might be useful to watch a tutorial and code along line by line. If you're not, then it's best to use tutorials to introduce yourself to a topic or find one when you're stuck but just try and figure it out on your own the rest of the time.

We learn best when what we are attempting is challenging enough to keep us interested but not so challenging that we have no way to do it. Watching too many tutorials and just coding along isn't challenging enough (unless you're completely new to the topic). A far better way to learn is to start doing projects. If you don't think you know enough to start doing projects yet, you can build a simple web page after spending a few hours studying HTML.

Learn things other than programming

As I mentioned earlier, if you want to get a dev job there's a whole list of technologies that you need to know. But some of the most important skills are ones that you don't get while staring at a code editor. Soft skills are very important for any coding job. Good verbal and written communication and the ability to work well in a team will go a long way in helping you land your first tech job.

As well as soft skills, knowing some of the big picture stuff can make you into a more well-rounded programmer. Knowing some computer science and web fundamentals is always good. Also, having a basic understanding of how SEO works and things like Agile project management, which is often used by tech companies, will certainly not hurt. There are plenty of free introductory courses for all of the above.

Be consistent

Here's another book recommendation: Atomic Habbits by James Clear. In his book he talks about how taking some small positive action every day compound over time to make a big impact. This is a great way to think about your coding journey. Doing all-nighter coding sessions is fine if that's how you work but teaching yourself to be a developer is a marathon not a sprint. Being able to turn up and work consistently, no matter whether you're in the mood or not, will determine how successful you'll be.

Join a Community

brooke-cagle-g1Kr4Ozfoac-unsplash.jpg

How do you stay consistent? You need to share your journey with other people. Teaching yourself to code takes a long time and the best way to stay motivated is to have a community around you that is doing the same thing. There are lots of ways to connect to a community: many online courses have forums where you can connect with people. Some courses even have pre-build communities on platforms like discord and you can jump right in and get to know people. There's also Twitter and other social media. Just make sure that you're spending time with people who are constructive and want the best for you.

There are, of course, also offline communities that it is worth being a part of. Keep a lookout for tech meetup groups in your area. It will not only help you stay motivated but it's a great way to network and meet people already in the industry.