Learning to code has been one of the most rewarding things I have ever done, but also one of the most difficult. Since a lot of people have some extra free time nowadays (thanks, quarantine), I thought I would share 20 of my tips for learning to code in 2020.
Learning to code is something very unique - likely not comparable to anything you've ever done before. You are basically retraining your brain, which can be rewarding but also very frustrating. Start with a few free resources to make sure you even like coding before you jump in and spend thousands on a bootcamp!
The online tech community is amazing. Places like Twitter, Reddit, and even Instagram have loads of people sharing their work and learning experiences. Use hashtags such as #CodeNewbie and #100DaysOfCode to connect with so many amazing people also learning to code!
Learning to code is a marathon, not a sprint. It will be more beneficial for you to spend 30 minutes a day coding vs spending 3 hours every other week. I love the #100DaysOfCode challenge because it really forces you to make time for coding to the point where it becomes a habit. The more frequently you code, the better you'll get. Plus, the #100DaysOfCode community is amazing, and you'll be able to connect with a lot of really great people.
In today's digital age, it can be easy to forget about books when you think about learning to code. But there are so many classic books for learning programming. They're classic for a reason. Plus, it can be nice to take your eyes off a screen once in a while.
That being said, don't pigeonhole yourself into any one type of content. There are books, videos, articles, and so many other ways of learning this material. I know some people recommend figuring out your learning style and consuming that type of content, but I think it is best to take in the same material in several different formats. It will help to have multiple different voices for explaining concepts, and it will ensure you have really retained the material by hearing it more than once!
Udemy is one of my absolute favorite resources for learning to code. The courses on there are great quality, and the instructors will regularly update their courses and respond to student issues. That being said, wait for the sale! Udemy's typical prices are $100 or more per course, but they regularly (several times a month) have sales that bring them down to around $10.
As a newbie, you undoubtedly have heard time and time again that you should be building your own projects to really understand what you're learning. This is repeated so much because it's 100% true. For more information, look into passive vs active learning. Passive learning is what you're doing when you are watching tutorials (yes, even if you're coding along). You want to start solving problems for yourself and get into an active learning state to make your time spent studying so much more productive.
Building projects is easy advice to give from the outside, but it can be so daunting to start a new project from scratch as a newbie! One great solution here is to take the tutorial projects you've coded along with, and add on to them! Think of new features that might make the app better, and get to building.
If you live somewhere that hosts local meetups, PLEASE ATTEND! Take this from someone who lives in the middle of nowhere and can't take advantage of them anymore. In most major cities, there are dozens of meetups to choose from. They are usually based on a specific topic, so you are able to choose one that sparks your interest. Not only will you learn some cool things from their speakers, but you will also make friends and possibly even meet hiring managers!
It is so easy to feel pressure in the tech community to always be learning/using the newest and coolest technology. But before you allow yourself to be swept up in the trends, do yourself a favor and make sure you really understand programming fundamentals. With this understanding, it becomes so much easier to pick up new frameworks or libraries on the fly. Do not skip this step! It may not be the flashiest thing to post about on Twitter, but I promise it will serve you so much in the long run.
I used to really let myself feel all of the impostor syndrome because I would have to Google things from time to time. Please, do not let this get you down! Even the most senior developers constantly talk about how much they still have to Google (in fact, I've heard it said that the difference between senior and junior devs is that senior devs are just better at Googling things)! There are so many little details - there's no way for one human brain to retain everything at all times.
You will feel frustrated. You will feel burnt out. You're learning to code! That's an amazing thing! But it's also a very challenging thing. It is totally fine if you're finding yourself not wanting to turn your computer on at all for a few days. Let your brain rest. It will make you better in the long run. This applies to both large-scale burnout and small issues you may be having as well. If you've been stuck on the same problem for an hour, take a break from the computer and come back to the problem later. I find that difficult problems become so much easier to solve after walking my dog.
One of the most underrated skills that you'll need as a professional developer is the ability to read other people's code. Start practicing this early on! Not only will you benefit from it once you're on the job, but you will also learn some practical skills as well by seeing how other people approach problems using code.
Sometimes you just won't be able to figure something out. I have definitely fallen into the trap of abandoning a project because I get stuck on a problem and then get distracted with something else. But if you can resist, I urge you to try and seek help before jumping ship! There's no better feeling than sticking with an issue until you eventually solve it. So before you abandon your project for a new one, try to reach out to someone and ask for help. You can post on Twitter, post on StackOverflow (you know they actually allow you to post questions there, not just read answers!!), see who may offer office hours, or look online for paid mentoring programs! You'll learn so much more by working through problems with another person than you would by starting a new weather app from scratch, I promise.
One of the biggest mistakes I made early in my learning-to-code journey was not planning enough before starting a project. To be fair, sometimes I still find myself falling into this trap. We are programmers. We love to code, and want to immediately jump in and get coding. Next thing you know, the project has gotten away from you and you don't know where to go next. Avoid this trap by having a really solid plan in place before you start coding. Figure out every feature you want your application to have, how it functions, and how it relates to the bigger picture. The better (and more detailed) your plan is, the easier your project will come together.
Yes, I know. They can be boring. Some are much better than others. But so many issues would be avoided if you just took the time to read through the docs before starting on a new technology. It's so tempting to jump on Youtube and start following along with a tutorial immediately, but doing so can lead to gaps in your knowledge later on. I promise it's always worth the time to read over the docs!
I have about 100 notebooks for programming at this point. Well, at least three. It has been proven that you're more likely to retain something if you write it down. When I first started at my bootcamp, I took notes obsessively like I was back in college. This might work for some, but I found that technique wasn't the best way for me to use my time. Now, as I am learning something, I write down things that I think I will want to refer back to: syntax, common names or phrases, etc. I also keep a running list of things that I need to research more as I am learning. Even if you're not a pen-and-paper type of person, download Evernote or open a Google Doc and get to typing. Give it a try and see if it helps you retain things more.
When you're so bogged down with bugs and never-ending lists of things that you feel like you "should" learn, it's so easy to let yourself feel overwhelmed and bummed out. Try your best in these situations to change your perspective and realize how much fun this really is. You can create something! Out of nothing! On the internet! Where you can share your hard work with family and friends and they'll probably be super impressed by it! Don't let the minor day-to-day frustrations of coding let you forget why you started coding in the first place - because it's so FUN!
If there's one takeaway you get from this article, please let it be this. Do. Not. Give. Up. You will be frustrated. You will feel dumb. You might think you're not cut out for this. I experienced all of those emotions and more while learning to code. Please please please do not experience those same emotions and let it make you give up. You are literally teaching your brain to work in ways that it never has before. That does not happen overnight, nor is it an easy thing to do. If you stick with it, you WILL be successful. The biggest difference between successful people and unsuccessful people is that successful people just don't give up. That's why they are so successful. Do not give up on this goal of yours and I promise it won't give up on you.