Do you remember when you first decided to learn to code? The excitement, the wonder... the feeling of utter cluelessness?
Coming from a paralegal and small business background, I had absolutely no idea where to begin. Googling "How to learn to code" brought up countless pages of online coding programs, articles, blog posts, and YouTube videos. Which one should I choose? What's the best advice? It was all incredibly overwhelming.
Let me share with you 10 important things I've learned over the years that will help to give you a head start on your coding journey, and offer some good reminders for the experienced devs as well.
I began my journey with a paid, online boot camp. It offered a variety of frontend and backend courses, had a Slack community with easy help from instructors, as well as a handful of one-on-one mentoring sessions. It cost $1,300 USD. I still ended up supplementing some of the courses with free Codecademy classes, though.
Only until I joined Tech Twitter - more on that later - did I learn about the many quality, free coding options available. They include:
When learning to code, there's no need to spend money on expensive programs. Explore the free options listed above and you'll be in good hands.
Learning to code is a marathon, not a sprint.
Source: Photo by Mārtiņš Zemlickis
It is really important at the beginning of your coding journey to set realistic, manageable goals. Going from beginner coder to interview-ready will take time... how much time is really up to you.
Figure out when you have free time to code and make a schedule. Do you prefer coding in the morning or in the evenings? Can you set aside one hour or three? Write it down and do your best to stick to it.
Everyone's journey is different. Some begin learning to code as part of a college degree, while others are career-changers with families and other "adulting" responsibilities. It really is up to you how long it takes.
Just make sure to pace yourself and you'll get there before you know it.
Your boss asked you to stay late after work. Your little one is sick with the flu. You told a friend you'd help them move. You don't understand a concept and feel unmotivated. You've had a hard day, are tired, and just don't feel like it.
There are all kinds of reasons why coding gets pushed aside... and it's okay. Life happens.
Don't for one minute beat yourself up or feel guilty about how little studying or code you've written. You're human, not a machine! It's all about balance. Tomorrow is a new day.
The key, though, is to keep going, with the ultimate goal of doing something every day, even something small.
Little things done often turn into big things over time.
Source: Image by Liz Fosslien
Finishing an app you've worked on for weeks is one of the best feelings to experience during your learning journey. Knowing that you were able to successfully create something like that with the knowledge you've gained is just amazing.
Even the small things, like figuring out a problem without the help of Stack Overflow or YouTube, can really be encouraging (bring on RegEx!). 💪
Make sure to celebrate those wins, too!
Marisa Brantley 🌴Do you ever think, "There's no way this code is right" only to discover that it is?
Best feeling ever. 😄🥳04:38 AM - 29 Apr 2022
Source: Andrea Piacquadio
Learning to code can be tough. Here are some things that can happen, and what you can do to fight back:
You run your code - instead of working smoothly like a well-oiled machine, you're slapped with a list of error messages.
- Remain calm (after you've screamed, "Why won't it work??" at the computer a bit).
- Review the error messages. Don't understand them? Search Google.
- Use console.log in your code to see where you've gone wrong.
- Check the variable names to make sure they're spelled correctly (we've all been there).
- If this hasn't worked, walk away from the computer. Get busy doing something else. Chances are the answer will come to you when you least expect it (while falling sleeping, taking a shower, or visiting the restroom).
You're reading a passage over and over again and trying to understand the code, but it just isn't clicking. It's beginning to make you feel a little down.
- Take a break! Sometimes it's only a matter of being tired. Coming back to it with fresh eyes after a short (or long) break can do wonders.
- Use a different resource to learn about the topic. Not all tutorials and documentation are created equal. One might make sense to you more than another.
- Stay confident, and keep things in perspective. Just because you're struggling with a concept doesn't mean you'll never understand it, or that being a developer isn't for you. Think of it as a challenge that will make you even stronger - and smarter - in the long run. You will understand it, with patience, practice, and positivity.
Source: Sydney Rae
You sit down to code and your mind starts to wander...
What do I need at the grocery store? Did Taylor get back to me about Saturday? I wonder if the domain for my new project is available...
It happens to all of us. Thankfully, there's a helpful solution.
The Pomodoro Technique. 🍅
The Pomodoro Technique is a time-management method that involves taking a series of breaks in order to help improve focus and productivity.
How it works:
- Select a task (coding your portfolio site!)
- Set a timer for 25 minutes
- Work straight for those 25 minutes (no cheating)
- When time's up, take a 5-minute break (to check Twitter)
Repeat this three more times. On the fourth Pomodoro, take a longer, 15-30 minute break.
Many people swear by this method, myself included. You'll be amazed at what you can accomplish.
You've probably heard this term floating around.
Imposter Syndrome is defined as:
A psychological occurrence when a person has feelings of self-doubt and incompetence despite their skills, talents, and accomplishments, with a fear of being exposed as a fraud.
It can be especially prevalent when learning to code. When things aren't going right, thoughts like, "I can't do this - I'm not good enough" or "I'll never get a job" often pop into our heads, despite all that we've accomplished in our coding journeys.
If not put in check, these thoughts can lead down an ugly path of low self-esteem, lack of motivation, and self-sabotage.
Source: Pablo Stanley
If you ever encounter these feelings, know that you are not a fraud. Consider how far you've come from your first HTML "hello world!"
Look at the projects you've created, the courses you've completed, the skills you've learned, and the compliments you've received from others about your code (they're not lying!).
Also, find solace in knowing practically everyone - at every level - has felt like this at one time. Again, we're only human. You've got this.
Tina created an amazing project solving a problem everyone has, sure to impress any hiring manager.
Jack's portfolio site is so fantastic it's been featured on design websites as inspiration.
Kelsey volunteers her dev skills at a great non-profit and is really helping to improve lives.
Meena hit level 1 kyu kata in CodeWars.
Ashish got a dev job after only 4 months of studying.
And I... ? It seems everyone's accomplishing all of these amazing things, and what have I done?
Stay in your lane.
Your coding journey is about YOU. Use the accomplishments of others as inspiration.
If you need help trying to do what these people have achieved, ask them for tips! Send them a DM and schedule a Zoom call. Later on, there's a good chance you'll be able to say you've accomplished these things, too.
There might be days when you feel like just throwing in the towel on your coding journey.
Thoughts like "Maybe development isn't for me" or "I'm not cut out for this" might swirl around in your head. If you're a career-changer, you might contemplate returning to the safety of your former career, one you were good at but didn't truly enjoy.
Know learning to code is hard. It's only natural to feel overwhelmed at times.
Breathe. Sit down in a quiet place with your favorite drink and try to remember what interested you in learning to code or join tech in the first place. Write it down on a post-it and slap it on your screen.
Take a break, as long as you need. You might find during this break that you miss coding.
Talk with someone, possibly in tech, a trusted friend, or a family member, about your feelings. Most everyone has been at this point one time in their lives. They might be able to provide you with some insights you hadn't considered.
Also know that there are so many other careers in tech that don't involve coding in case - after some deep soul-searching - you find it isn't for you (see #9). But please make sure to give coding your best shot.
Source: Brett Jordan
There will be "bad" days in your coding journey. Just remember, in the long run, they'll make you an even stronger developer. 💪
"Always remember you are braver than you believe, stronger than you seem, and smarter than you think." – A.A. Milne
Seek out people who will support and encourage your journey - be it with friends, family, or social media, like Tech Twitter and Discord groups.
Source: Brooke Cagle
Having a tribe who will root for you can make the tough parts of your coding journey much more bearable.
Tech Twitter is a great place for newbie coders to broaden their tech journeys. It's filled with easily accessible information and supportive people who are willing to help you grow as a developer.
Have a win that you want to share? Be prepared for a deluge of followers and non-followers cheering you on like you're a contestant on the game show "The Price is Right." It's a pretty awesome feeling.
Like with all social media, being on Twitter can eat up some serious time.
Be intentional with your time.
Don't scroll mindlessly.
Set a timer (and stick to it).
Time is a very precious commodity. The more time spent on Tech Twitter is less time spent on coding and preparing for your tech future.
Also, don't fall for the "need more followers" mentality. Unless your goal is to be an influencer or DevRel, set boundaries.
Another great place to gather with fellow coders is on Discord. Below are some noteworthy servers (watch your time, though!):
Surrounding yourself with positive, like-minded people can be a springboard for you to achieve your tech goals.
We've all heard it... networking is really important.
Source: Chris Montgomery
From a new developer's perspective, networking allows you to meet people who have careers you're interested in learning more about. This can lead to mentorship and career guidance once you've landed your first position.
Networking can also:
Build confidence by getting you out of your comfort zone! It forces a person to learn better communication skills and improve overall soft skills.
Open up job opportunities. By networking and getting your name out there, people you've established relationships with might pass along your name to their hiring managers or give you a heads-up when positions are available.
Help you to make friends. Connecting with those who have the same tech career goals not only provides support during your learning journey, but can also help your career goals later on. Besides, meeting new people can make life even richer.
Are you an introvert and find it challenging to speak with new people?
Bridget "The Developer Bee" wrote a great multi-step guide to help with just this in her 4-part blog series, "The Beginner's Guide to Networking." The series discusses how to reach out to people, strategies to build up the nerve to talk to people, what to talk about, and what to do after making a connection.
Bridget even provides plenty of sample scripts throughout to use in various networking situations.
So you now have an idea of what to say when networking, but where do you go?
Coffee Chats. Coffee chats are a fantastic way of meeting people in your prospective field. Done either in person or online via Zoom or Google Meet, you'll spend 15-30 minutes asking questions to experienced devs such as, "What does your day as a developer typically look like" or "What advice would you give someone starting their coding journey?" (Check out some further questions here.)
Social Media. Tech Twitter and Discord are great places to meet people at all levels in their careers. You'll come across many devs who are more than willing to do coffee chats and offer up their expertise. DM them by briefly introducing yourself, what drew you to their profile, and asking for a coffee chat. (Sending a DM simply saying "hello" will not accomplish this. 😄)
Networking... do it!
So you've watched what seems like hundreds of hours of tutorials and diligently followed along on all of the projects. Now you're ready to apply for your first dev job, right? Think again.
The way to really cement in all those things you've learned is to PRACTICE.
Source: Hitesh Choudhary
Below are some sites featuring beginner to advanced games and building opportunities to improve your coding skills and get you whiteboard interview-ready.
- Top 10 Projects For Beginners To Practice HTML and CSS Skills
- Flexbox Froggy
- Flexbox Zombies
More advanced -
“Knowledge is of no value unless you put it into practice.” – Anton Chekhov
Be honest with yourself. Will doing this really make me happy? Am I informed enough about what a developer does to determine whether this career is for me?
If you think you have enough information to make this decision and feel development is a great fit, fantastic! If you think it might not be for you, then pivot! There are so many positions in tech besides development. No one will shame you. It's your life and you have to live it - do what you think will make you happy.
Other positions in tech include:
- Data Scientist
- Computer Systems Analyst
- Sales Engineer
- Customer Success Manager
- Help Desk Support Technician
- UI/UX Designer
- SEO Consultant
- Digital Marketing Manager
- Content Manager
- Interaction Designer
- Accessibility Specialist
Asking yourself this question now, before being employed in an unfulfilling position, can save plenty of time and frustration down the line.
When learning to code, we sometimes put so much pressure on ourselves to learn as much as we can, as fast as possible.
Also, when we're not coding, we feel guilty for not coding. We give up time with friends and family, put our needs aside, laser-focused in pursuit of our goal and completely stressing ourselves out in doing so. It can be a vicious cycle.
It doesn't have to be this way. By keeping things in perspective, taking breaks, practicing self-care, and making sure to inject fun into your journey, your path will be a much more enjoyable experience.
This process is an exciting time, full of hope and possibilities. The ability to build and maintain a website or an app is an amazing, in-demand skill. You'll look back fondly at this time in your life and be proud of how far you've come.
To recap, the 10 things I wish I'd known when starting my coding journey...
- You can learn to code for free.
- Pace yourself.
- It's okay to code only a little or nothing at all some days.
- During your learning journey, there will be great days.
- There will also be "bad" days.
- Surround yourself with positivity.
- Networking is really important.
- Tutorials are great, but they're only a part of learning.
- It's okay to change direction or career goals during your learning journey.
- Have fun!
By learning to code, you're embarking on an adventure filled with endless opportunities. It's not an easy feat, but the struggle is worth it.
I hope you find these tips to be as useful as I have with your own coding journey.
Thank you for reading! If you enjoyed this article, please leave a like, comment, and share it around for others to see.