If you read my first part (first of all, thank you), you would have seen I went through the different paths a learner can take to become a coder. I am taking the lonely path, going self-taught to become a web developer. I'll explain my process, the pitfalls I've come across and any tips I've got to help beat it to reach the end of the path: Being a Junior Web Developer (ok, maybe not the end of the path, but certainly the first goal). Please bare in mind that I'm still on my path, so this may well evolve as I continue and updates will be added with new tips and tricks I've learnt. Also note, this is aimed at web development because that's what I'm doing. The resources will be Web Development based, but the concepts will apply to any programmer/coder. Final note, there are no affiliate links, just my recommendations I've come across on my path (so far).
“Wanting something is not enough. You must hunger for it. Your motivation must be absolutely compelling in order to overcome the obstacles that will invariably come your way.” —Les Brown
Seeing as we live in a society where bills need to be paid and potatoes are not legal tender, we do have to work, and spending 40+ hours a week doing it, you want to make sure you enjoy what you're doing.
Believe me, when I say, there's nothing worse than having a job you hate. I don't mean that you dislike going to work, I mean genuinely hate it to the point it makes you physically and mentally unwell. I've had one of those jobs and I did everything I could to get out of it. The "problem" is that I'm now in a job I don't mind. I don't love it, but it's certainly better than other jobs I've had. It's not what I want to do, but I'm not in a rush to leave. What I do want to do is become a Junior Web Developer. Because I'm nearly 40 and have bills to pay, I can't go back to uni and get a degree (as mentioned in my previous post) which is why I took the Lonely Path and went down the Self-taught route. The problem is, this is a tough path to take for many reasons, so you need the motivation to get you through it. Without motivation, you can quickly lose interest and forget why you want to become a developer. Motivation is key in getting to the result of becoming a coder/developer or anything because there's no point going through all the trouble and hurdles of learning on your own if you don't care about the work. When you're stuck against that problem and have been tearing out your hair and feel like giving up, the motivation will remind you why you're putting yourself through this, and spur you on. You can think of motivation as a fire torch you use to light your way along the Lonely Path.
Many factors go into motivation and what motivates you. I love technology, and remember fondly the early days of the Internet and want to be a part of its future. For others, it could be the need/want to change jobs, the enjoyment of creating things, wanting to make the world a little better or being inducted into it by family or friends. The important thing is that the motivation is strong. A weak motivation won't get you through those dark moments I mentioned earlier.
In those dark moments, it will be hard to keep going. That's why a Lonely Coder needs to join a community to help keep them accountable and on track. In those dark moments, where everything seems lost, just a single comment will be the ray of light that propels you from the pit of despair to the peak of elation, where you spot your error and fix the bug. Without that help, it could take you hours, days or months to figure out the bug, by which time, your motivation has gone. If motivation is your torch and source of light, then the community is your guide or sherpa, leading you along the path. They could either be walking beside you, or turn up just when you're about to cross a treacherous bridge and show you the easier path.
Finding and joining a community is one of the most important tools of any developer, but especially the Lonely Coder, as this is your link to the thing you're trying to enter. Without a community, it's next to impossible to achieve your goal and become a developer. Not only will that community help you solve those seemingly impossible bugs by pointing out your re-initialising your variable to 0 each loop, so, of course, nothing is adding up (based on a true story), but they will also point you in the right direction when you ask for help. A really good community will help you find the mistake yourself by nudging you in the right direction.
There's a saying that goes "It takes a village to make a baby", and we can steal that and say "It takes a community to make a developer". A community of like-minded people on the same path as you will not only help you along the way, but it will also help you pay it back by helping out people having similar problems to you. This also helps solidify your understanding of a topic, and "take off the blinkers" a little, allowing you to see the problem from other points of view. What's more, a community will inspire you by seeing other people achieve their goals, further fuelling the motivation, or making you think about certain problems and how you would achieve them. Finally, making connections in the community will help you build a network, which is an essential part of getting a job as a developer and growing your knowledge.
"So why is this the Lonely Coder if you're advocating finding a community?" would be a very good question at this point, and a fair one to ask. The reason I still title this 'The Lonely Coder' is because unlike the other two paths mentioned in my previous post is because the other two paths come with communities "built-in". When you go to university, you're learning with a massive class of other people on the same subject. Although that class will diminish as your progress through the years, you will have a core community of people you will learn and develop alongside. In the Bootcamp setting, this also comes with a community at its centre, as your cohort of learners will mostly be starting from the same place and you'll all learn the same thing each week.
In the Self-Taught path, you don't have a community built in, you have to find one. So, the logical question is, where do you find a community? I asked several Social Media outlets for the hivemind to give me community suggestions and found they can be classified into two groups: Passive and active.
passive groups are the kind of thing where you can post questions and get answers, but it's quite asynchronous. In this category, we can find the kind of groups that are social media aggregators like Reddit or HackerNoon. They're the old-school types of community like the forums that were so popular 20 years ago. You wait for a post to come in, and then decide if you want to interact.
The active groups are more like your modern Social Media of Twitter, Discord and Mastodon. Here, it's more like a conversation with someone or a group of people and is a lot more interactive than a forum post.
It's a personal preference as to which you opt for. I like a mix of both. Below is a list of resources where you can find/make a community:
Discord: The current trend is for everyone to have a discord server. Sadly, I'm not a big fan of discord, but I do follow a couple of good servers, and I just use them as and when I need to.
- Kevin Powell's Discord - Kevin Powell is well known YouTuber and self-described CSS evangelist. I love his videos because he doesn't cut them to make himself look perfect, he leaves in the bits where he's made a mistake which he then corrects later, and that makes him very human and relatable to me. He's also a teacher at Scrimba and has a great course on CSS.
- The Coder Career Podcast community - This discord server is run by Cameron Blackwood and has a podcast of the same name. It's a very good Discord, with lovely people, so worth a look if you like the podcast.
- Devcord - Devcord is one of the servers I found through searching which is a mix of coding disciplines but very helpful when questions are asked.
- Scrimba Discord - I would be remiss if I didn't tout the Discord I mostly use. Although the Discord is for students of the Scrimba Front End Developer Career Path (which I'm following), it's a great example of what a developer community should be. It's very active and full of helpful tutors and learners all trying to help each other and having lots of community engagement.
Reddit Recommendations - The following are recommendations I was given by Reddit, and I haven't tried them, so can't vouch for them:
Other social media - I use a select few discord servers and use it to supplement other social media, such as:
- Mastodon - Since the Elon Musk takeover of Twitter, and all the things he's done with it, many people have clipped their wings and put on a trunk to join Mastodon. Mastodon is a federated social network with lots of servers which are dedicated to certain topics. I use Hachyderm.io which is for techies who also like open source. I highly recommend you find a Mastodon server you like with people you enjoy. Many people from "The bird site" have moved over, and you can follow them no matter which server you sign up to. Even better, if you find a better server later on, you can move to another server without having to make a new account and transfer all your followers.
- Reddit - I'm a big fan of Reddit. It has a subreddit (think old-school noticeboard) for pretty much everything from Aardvak's to Zebra and everything in between. It's more of a noticeboard sort of Social Network, but there are some great communities there. I suggest r/technology for general technology posts and news, r/programming for general programming help and r/webdev for web development. If you're into other technologies or languages, search Reddit, I can almost guarantee you there'll be a community for it.
More passive communities - As for the passive communities, there are lots of good sites to find and build your community. Here are the ones I suggest personally (because I've tried them).
- Dev.to - A great community where you can read articles on almost any coding topic. Although it's not a community like the previous suggestions, it does allow you to follow specific authors and read all their posts as well as comment and chat with other people in the comments. The site themselves have a good presence on Social Media (both Twitter and Mastodon) and often have hackathons and events.
- daily.dev again, not strictly speaking a community, but an excellent tool for aspiring and seasoned Developers. This is a news aggregator, where you set your preferences and it will then show you a feed of relevant news stories from all over the web. They have browser extensions for Chromium browsers and Firefox as well as apps for iOS and Android, and it will replace the start page for every new tab you open. I find it very interesting to keep up with common trends (which at the moment seem to be all about AI and ChatGPT).
- Hashnode If you're reading this, you're on it. But otherwise, if you are an aspiring developer like me, then you may well blog, and Hashnode is an excellent place to blog about tech. Much like Dev.to, it's a blog site that is all about technology. I highly recommend having a blog here and crossposting to dev.to.
If I've given the impression that motivation is a rock-solid foundation which will shield you from all the (let's be honest) rubbish that will be thrown at you, I've oversimplified things. Motivation is like fire: when it's young and flickering, you need to nurture it and feed it the right way to prevent the motor from being snuffed out. Being part of a community will certainly help you nourish that fledgling motivation into a roaring fire that will see you all through the nights of coding.
Particular dangers to young motivation are:
Burnout - It's very easy to go from 0 to 100 when you're at the early stages of your path. Your motivation is high, you can't stop reading, thinking or dreaming about coding. There's a tendency to over-commit and take too much on at once. This will quickly lead to burnout, and you'll end up figuratively dunking your fire with a bucket of cold water. I experienced this when I first started to try to learn Web Development about 10 years ago. I went so quickly to reach the goal, that I burnt out. I tried to run a sprint when it was a marathon. Take your time. Yes, there will be external pressures that will make you want to finish as quickly as possible, but you mustn't let it be so all-consuming that it leads you to burnout.
Comparison - One of the biggest dangers of communities is seeing all the other members doing "better" than you. Remember, everyone on the Lonely Path is walking parallel to everyone else, but on their own and going at their speed. Some will appear to overtake you in days and be travelling along the path so fast, you'd think they were in a rocket. In some instances, this may be true, but you don't know about their journey. Don't try and compare yourself to others. If it takes you 2 years, it takes you two years. This again takes you back to your fragile motivation; you need to feed it properly and help it keep burning, just as it helps you along the dark path.
Bad advice - Another issue with coding communities is that when you ask one question, you'll get 10 different answers, half of which work, some that don't, and some that are completely off the mark. I recently listened to the Code Newbie podcast with Tanya Reilly a Senior Principal Engineer at Squarespace, and they had a great piece of advice: Don't jump in at the deep end:
"Anything with 'Just' in it, 'just' get involved in open source. If you want to get involved in Open Source, absolutely, but that is not the first step for learning code" - Tanya Reilly, Code Newbie Podcast, Season 23 Episode 2 (approx 36 minutes)
- What Tanya means by this is that you may get people saying "Just google it" "Just ask ChatGPT the question" or "Just copy this code". Whilst all this is somewhat good advice, you will learn to filter out the wheat from the chaff. Some advice will lead you in the right direction, some will lead you down a rabbit hole so deep you'll be having tea with the Mad Hatter, and some advice will be just plain bad.
Some of the key tools in your knapsack for your trip along the Lonely Coder path are essential, none more so than a torch (Motivation) and a guide (Community). Without motivation to light the way, you'll never know where you're going, and without the community to help you out of those tough spots and help keep your motivation burning, you'll be one of the thousands of lost coders on the path, walking in circles and shouting into the void. Get good motivation and find a good community to travel with.