Learning is hard.
Learning is a roller coaster of highs and lows. Confusion reigns supreme, and breakthroughs are amazing!
As a web developer, you're likely honing your craft and learning new skills. You may be learning how to code or leveling up into harder material.
As a self-taught developer, I've had my fair share of ups and downs along the way. So today, I'm sharing my top 5 tips for learning how to code!
Tip #1: Find Your Motivation
Why are you learning how to code?
There are a lot of reasons to learn how to code. For one, it's a lot of fun!
But you may have other reasons. Maybe you want to:
- earn a solid job without going back to school
- create a product without having to find a developer to partner with
- add more skills to your repertoire as a web designer
- automate some processes in your day-to-day work
Once you have your motivation, write it down. You can write it down on a sticky note or even create a vision board. Put it somewhere where you can see it while you're learning and coding.
I used to think that this was a silly suggestion. How could I forget about my goal? But once I actually tried it out, it was very motivating to look up and see the Why. It can be easy to lose days and weeks to other priorities. But being reminded of your Why helps you to better prioritize things and make the time (even if it's just 10-15 minutes a day for a while).
Tip #2: Find Resources That Click For You
We all learn differently. What works for me won't necessarily work for you. We all come from different backgrounds and have different strengths and weaknesses.
When you're first learning, it's a great time to take a step back and try a lot of different tutorials. Take time to find resources that you love and make sure that you're on the right coding journey. There are a lot of different paths you can take with coding, after all.
Some Questions to Ask Yourself:
- Who are the content creators that make the most sense to you?
- Do you prefer videos or reading documentation?
- Do you prefer workshops with a 1:1 component?
- Do you like to work solo or in groups?
- Do you want the extra 1:1 instruction that a bootcamp provides? (Be careful with bootcamps. There are some really great ones but also some that are more predatory. Do your research.)
- Are there languages that make more sense to you?
Take a few weeks when you're just starting out to figure out what type of projects excite you. That will help you narrow down the languages and types of material you'll have the most success with.
Tip #3: Avoid Getting Stuck In Tutorials
A common problem for aspiring developers is getting stuck completing tutorial after tutorial and not really getting anything out of it. You'll feel lke you're learning a lot until you sit down to create a project on your own and suddenly it feels like you know nothing. It's so common a problem that it's been named Tutorial Hell.
Now, don't get me wrong. Tutorials are great and super useful, but the key is to immediately put what you've learned into practice. You can do this by taking the tutorial project and building on it further. What tweaks can you make? What additional functionality do you want to add? How can you take the project even further using what you already know?
Additionally, I recommend choosing a main project to work on. Let's say that you're an aspiring web developer and you want to build your personal web site.
So you take a tutorial on building a website from scratch with HTML and CSS. That tutorial may have a project that goes with it. Great! But don't use that tutorial project as the base for the personal site you're building. Start over from scratch on your own site and see how far you can get without referring to the tutorial. If you get stuck, try Googling for some answers.
Once you have a basic site, what features do you want to add? Maybe you choose to add a dark theme. That means you can look for a tutorial that helps you add that feature to your own site.
Tutorials are really great for teaching you about the things that you need to know. They help give you some high-level guidance on how to go about working on a project. They help give you the language to talk about what you're doing. They help give you the keywords you need to find documentation or potential solutions when you get stuck on your own project. But they don't teach you how to solve problems. And being a developer is all about solving the problems that you run into while developing.
So by all means, use tutorials. But don't stop there. Work on a your own fun projects.
Tip #4: Set SMART Goals
We talked about knowing your motivation for learning, but you'll also want a framework to help you turn this big Why into goals you can complete.
I like to use SMART Goals. SMART stands for Specific, Measurable, Attainable, Relevant, and Time-bound.
Specific - Create a super detailed goal. The more details about what you're going to learn and how you're going to get there, the better.
Instead of "I'm going to learn web development" try "Learn HTML and CSS so I can build my first site from scratch."
Measurable - How are you going to measure your success? How will you know when you've succeeded?
- Learn HTML and CSS so I can build my first site from scratch.
- I have completed my goal when I can share a link to my first site on CodeNewbies.
Attainable - It's all fine and dandy to shoot for the stars, but you need a goal that's within reach. Don't set yourself up for failure. Make sure your goal is reasonable for your current skills.
Building a web app in a day is not attainable if you're just starting to learn how to code. But learning the basics of HTML and structuring a web page in a week or two is much easier to obtain.
Think about what resources you'll use to make sure this goal is attainable.
- Learn HTML and CSS so I can build my first site from scratch.
- I have completed my goal when I can share a link to my first site on CodeNewbies.
- To achieve this goal, I have enrolled in a workshop to learn HTML and CSS over 4 weeks.
Relevant - How is your goal relevant to your long-term goals and dreams?
Sometimes, we get distracted by the newest shiny thing, so make sure that your SMART Goals are relevant to your overall goals. Your Why from Tip #1.
- Learn HTML and CSS so I can build my first site from scratch.
- I have completed my goal when I can share a link to my first site on CodeNewbies.
- To achieve this goal, I have enrolled in a workshop to learn HTML and CSS over 4 weeks.
- This goal will help me to become a professional web developer.
Time-bound - Give your goal a deadline. Don't make the mistake of leaving this open-ended. You need a line drawn in the sand to help keep you motivated and moving forward.
- Learn HTML and CSS so I can build my first site from scratch.
- I have completed my goal when I can share a link to my first site on CodeNewbies.
- To achieve this goal, I have enrolled in a free workshop to learn HTML and CSS.
- This goal will help me to become a professional web developer.
- I will complete this goal in 4 weeks and share the link to my site on | specific date |.
Setting SMART Goals will help set you up for success. So make sure that you take the time to formally write things down. You may find that it helps you to form a curriculum and overall learning path that works for you.
Tip #5: Embrace the Confusion
“The path of learning goes through the swamp of confusion.”
— Dr. Rhett Allain, Associate Professor of Physics
One of my favorite articles about learning is by Dr. Rhett Allain. In his article, "Learning goes through The Land of Confusion", he explains why you're supposed to be confused when you're learning. He says "If you are not confused, you are not going through the learning process."
By going through the process of first being confused about a concept, and then learning it until it clicks, you're setting yourself up to truly understand that concept and remember it.
If you're not confused, you're unlikely to push yourself to gain more than a surface understanding of the concept. And a surface understanding is easily forgettable.
So when (not if) you're confused and frustrated and nothing is going the way that you want it to, take a time out.
Take a step back from your work, go on a walk, take a shower, or work on something creative. Once you've given your brain a break, you may just find that you're ready to approach the problem from a different angle and finally obtain a deeper understanding of the concept.
Learn to Code
Learning isn't easy. But with a few tips and a bit of perseverance, you can succeed!
Remember to:
- Find your motivation.
- Get a feel for the different resources that exist and find ones that work for the way you like to learn.
- Avoid Tutorial Hell by working on projects that you care about.
- Set SMART goals!
- Embrace the confusion. Push past it into deeper understanding.