Learning to code is hard. Like, really hard, especially for folks without strong math backgrounds, resources to modern computers, or internet access at home.
So where do you get started? And how do you sort through hundreds of tutorials, posts, and jargon? And why should you listen to me?
I'm a self-taught developer, but not one of those 6-month wunderkind. It took me a couple years to learn what I needed to get my first development job, but I managed to do it. I found time in my 60-hour workweeks, battled mental health issues, and maintained my social life and sanity. And you can too.
Don't be discouraged by those wunderkind. Most of us can't cut back on sleep, family time, or even quit our jobs to learn to code. Be patient, practice solid learning habits, and try to have fun.
This article will list my tips for anyone trying to learn to code online. Let's get started with a few key terms:
Now, on to the hot takes...
This is probably the single most important piece of advice I can give. Does it sound like some self-help guru's instagram post? Yes it does. Does it work? Also yes.
There is a reason you want to learn to code. Maybe you want to make more money, or just get a job that doesn't require working on holidays and offers healthcare (if you're in the U.S.). Whatever your reason, ask yourself, "How will that make me feel? How will it make my life better?" That's your real reason. It might be freedom from debt, more time to spend with family, or the knowledge that you've created a tool that will help people.
Ask yourself those questions, and write down your answer. Put it on a sticky note on your desk, set a daily reminder in your calendar, or even write it on your mirror (I actually did this!)
Life is hard, and distractions and obstacles will come up while you're learning to code. And coding is hard; you will get stuck and frustrated. But if you are having a bad day and you see the words you wrote, they will remind you of why you are working so hard. That makes it a lot easier to keep going.
There are a ton of resources online to teach code. It can be hard to know which ones are trustworthy, up-to-date, and most of all which ones you will enjoy.
Take some time to figure out what it is you are looking for in a learning resource. Here are some ideas:
One thing I would recommend is to always start with free resources! Make sure you enjoy coding, enjoy the new language or framework you're learning, and enjoy the teacher. Don't over-commit any of your hard-earned cash.
I have another post with some great, free resources!
Look back at your goal - chances are, programming is a means to that end. You don't have to become any specific type of developer to make your goal a reality. That's freeing, empowering, and scary - how do you know what you should be studying?
Sometimes people complain about classes they had to take in college that didn't have any impact on their careers. You don't want to waste your time like this when you're learning to code! There are tons of programming languages you could learn, but guessing at which one is best could end up a frustrating waste of time.
Only you can figure out what type of work you will like the best. But once you have figured it out, you'll know which programming languages actually matter to you. If you want to be a data scientist, you'll learn Python or R. If you want to build websites, start with HTML and CSS, then learn JavaScript, and figure out if you like the frontend or backend better.
No matter what you want to do, figure out what your next job should be. Then learn the programming languages it requires.
That last piece of advice I gave you? About finding the language you need and getting started? There is one caveat...
Learn the fundamentals first. Loops, conditionals, variables, data types, and objects - these are an essential part of every programming language. It's important to understand these before you dive in to a framework.
You'll probably learn those fundamentals while you learn your first programming language. But be sure you learn a language first and master the fundamentals, especially before picking up a framework. You'll save yourself a lot of headaches, and be more likely to ace those interview code challenges.
There are tons of programming languages and frameworks, dozens of specialties and niches, and a lot to learn even to publish a website. This ties in to the last piece of advice: figure out what you need to learn, and zero in on it. Take it in pieces. Don't try to learn everything all at once. The siren call of becoming a 'full-stack' developer may be appealing, but trying to learn too many disparate things can lead to burnout.
But past making sure you don't get distracted by the latest and greatest framework, remember that it's OK to admit you don't know something! Whether that's how to write an API, how to use CSS Grid, or what the heck a deployment pipeline looks like, remember that nobody knows everything, and everyone was a beginner once.
No matter what you're learning and how you're learning it, make sure you're having fun. This is the best way to ensure you stick with it, and to help you deal with the inevitable setbacks.
The easiest way to keep your learning fun is to center each learning project on something you love! For instance, if I were working through a tutorial that walked through creating a movie search tool, I might want to create a Pokémon search tool. I would write my code with the same structure as the tutorial, but use a different data source and change the variable names.
Taking this approach will help you have fun while you're coding. Plus, your portfolio will end up having a lot more personality!
Remember that tests in math class were always easier when you were allowed scratch paper? The same is true when you're coding.
That might mean drawing some boxes for your layout before you start writing CSS. Or it could mean listing out each problem you need to solve (and breaking it down into manageable pieces). For most developers, it also means writing pseudocode. Whether you prefer actual paper, an app, or just your code editor, be sure to map your route before you get started.
Let's face it: everyone makes mistakes. Ask any experienced dev you admire (if they deny it, they're probably not someone you should admire). But failure can be demoralizing, especially when you're just getting started.
Especially if you're a career changer, it can be hard to get back in a beginner mindset and let go of the feeling of mastery you had over your old career field.
There isn't any great advice or secret wisdom I can offer to help you get past your frustrations and struggles. Just remember that every failure is an opportunity to learn. Also, read the error messages, they can be helpful! (Seriously, I didn't do that at first because I was too frustrated!)
So, you ran into a problem. You're getting an error and you don't know what's wrong! That's OK.
Give yourself time to struggle and try to work through the problem on your own - try stepping away and doing something to relax. It's amazing how much this can help. Take a bath and get those #showerthoughts, cook yourself a nice meal, or exercise. Chances are you'll come back to your computer, sit down, and find a solution much faster.
Remember that a well-rested brain is a smarter brain. Food is fuel, and eating well can help you code well. Coding take a lot of mental energy, but physical aches and pains can create creaky code - get up and move around.
It can be rewarding to figure out a problem on your own, and it can be beneficial to your learning. But sometimes you don't have the context you need, or a problem isn't worth spending a whole day on! If you're really stuck, admit it, and get some help.
It's easy to get discouraged when you see blog posts titled, "How I became a full-stack developer and started making 6 figures in only 3 months!!!!!" But it is usually pretty clear that those people had a lot of additional background, resources, and support to make those incredible things happen.
Your story is not like anyone else's. You have unique challenges, constraints, and opportunities. Don't hold yourself to someone else's standards: make your own.
Learning to code is hard, and teaching yourself online is even harder. You should be proud of your dedication and hard work! Even 'small' wins are wins, and deserve to be celebrated.
Tweet, post on your Instagram story, or whatever you like best! Let people will celebrate with you. If you get any hate, don't hesitate: smash that block button and keep coding.
--
Thanks so much for reading this far! No matter where you are on your coding journey, I salute you - keep up the awesome work!
Special thanks to our guest blogger Kat Tow, a Frontend Software Developer for her contribution to the Ronald James Blog this week.
Visit the original link for this blog here.
We are a leading niche digital & tech recruitment specialist for the North East of England. We Specialise in the acquisition of high-performing technology talent across a variety of IT sectors including Digital & Technology Software Development.
Our ultimate goal is to make a positive impact on every client and candidate we serve - from the initial call and introduction, right up to the final delivery, we want our clients and candidates to feel they have had a beneficial and productive experience.
If you’re looking to start your journey in sourcing talent or find your dream job, you’ll need a passionate, motivated team of experts to guide you. Check out our Jobs page for open vacancies. If interested, contact us or call 0191 620 0123 for a quick chat with our team.
Follow us on our blog, Facebook, LinkedIn, Twitter or Instagram to follow industry news, events, success stories and new blogs releases.
Back to Blog