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.
1. You can learn to code for free.
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:
Another free option is Leon Noel's #100Devs, an intensive 30-week online coding boot camp. Leon teaches HTML, CSS, Javascript, React, Node, Express, MongoDB, and some CS theory, as well as coaching students on how to network, freelance, and create standout LinkedIn profiles and resumes.
There are also great low-cost programs available through Udemy and Udacity. I highly recommend Jonas Schmedtmann's Udemy courses.
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.
2. Pace yourself.
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.
Be wary of people on social media who post "roadmaps" advising how long someone's coding journey should take (HTML and CSS - 1 month, JavaScript - 2 months, etc.). If anyone tells you exactly what languages you need to learn and how long you should spend learning each, they're only saying it for engagement. Ignore them.
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.
3. It's okay to code only a little or nothing at all some days.
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
4. During your learning journey, there will be great days.
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!
5. There will also be "bad" days.
Source: Andrea Piacquadio
Learning to code can be tough. Here are some things that can happen, and what you can do to fight back:
π Your code isn't compiling.
You run your code - instead of working smoothly like a well-oiled machine, you're slapped with a list of error messages.
Fix:
- 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 having problems grasping a concept.
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.
Fix:
- 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
π Can't focus.
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.
Fix:
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.
If you'd like to use something fancier than a kitchen timer or the timer on your computer, there are plenty of apps to choose from (I use this one). Better yet, code a Pomodoro Timer for yourself.
Many people swear by this method, myself included. You'll be amazed at what you can accomplish.
π The dreaded Imposter Syndrome.
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
Fix:
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.
π Comparing yourself to others.
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?
Fix:
Stay in your lane.
Source: atiabii
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.
π You feel like giving up.
There might be days when you feel like just throwing in the towel on your coding journey.
Maybe you feel like you'll never be able to understand JavaScript even though you've tried so hard. Or perhaps you've encountered too many bad days like those listed above and they've taken a big toll on your self-confidence.
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.
Fix:
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
6. Surround yourself with positivity.
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
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 problem with a coding exercise? Ask Tech Twitter. Need some tips on JavaScript loops? Search Twitter and you'll find a multitude of threads on the topic.
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.
Some cautions...
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.
Discord
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.
7. Networking is really important.
We've all heard it... networking is really important.
Source: Chris Montgomery
But why?
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.
How to Network
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.
Where to Network
So you now have an idea of what to say when networking, but where do you go?
Meetups. There are plenty of tech Meetup groups to choose from, either in person or online, some even focusing on specific technologies. Love JavaScript? There's most likely a local group for that. Also look for groups that offer mentoring, like local chapters of Women Who Code. Bonus tip: Danny Thompson recommends volunteering at Meetup events and adding it to your resume and LinkedIn. It's especially great for those looking for dev jobs without any experience.
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!
8. Tutorials are great, but they're only a part of learning.
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.
Beginner -
- Top 10 Projects For Beginners To Practice HTML and CSS Skills
- Flexbox Froggy
- Flexbox Zombies
- CodeCombat
- JSRobot
- JSchallenger
More advanced -
βKnowledge is of no value unless you put it into practice.β β Anton Chekhov
9. It's okay to change direction or career goals during your learning journey.
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.
10. Have fun!
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.
Conclusion
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.
Happy coding!
Top comments (52)
This post was EXACTLY what I needed to read. THANK YOU so much!!! I need so much encouragement right now as I struggle through JS and the fact that I am in my 50βs (yes, you read that right) doesnβt make it any easier. Imposter syndrome to the max, even though I know I have this in me. I will be taking your advice to heart and pushing forward. Again - thank you βΊοΈ.
You've got this, Tracy! Being a career-changer sure isn't easy. I hope these tips help. Best of luck! If you have any questions, feel free to reach out to me on Twitter (twitter.com/MarisaBrantley).
Thanks so much Marisa, much appreciated!
Its a good and elaborate compilation of so many aspects a coding journey. Though I have my own journey, I never took any paid help or mentoring, except for occasional free/paid training. I am also self taught and I started a long time back. Happy coding!
Thank you for your kind words! Yay for self-taught devs!
I like this. A lot.
That said, it seems the audience is a new kind of wanna-be programmer, the type that wants to be a programmer ... ;-). Or developer if you prefer or coder, whatever.
While that may seem like a tautology, rest assured it is not ... you see there is a considerable and large I suspect, if perhaps top-heavy in age of what I consider the hobby programmer.
They learned, as I did, not because they ever had a goal that was beyond today or this week, but because these new fandangled things called computers were really interesting. They essentially got all these 10 things for free, it came natural to them (backwards):
I say top-heavy in age as I suspect there was a larger number of such hobby programmers landing in diverse jobs and roles that involved coding that cute their teeth before the World Wide Web emerged, and that post this time, I suspect that the market for such skills has grown immensely and so too, the supply of them so the game changed slowly and now there are indeed many young people looking to have a piece of this large pie in a very competitive world.
For a little context because I am not alone demographically, I studied mechanical engineering and worked on steel mills, but have not been in one role or job for more than about 3-5 years since the early 1980s and been employed in areas as diverse as math modelling, consulting, liaison, programming, quality assurance, technical writing, project management, sales, sales management, marketing, training course development and delivery - today I run servers in my basement, host websites for NFPs who can tolerate the inevitable downtime of small shop hosting, I develop mostly with Python, JavaScript, and CSS, but have been employed to write and maintain FORTRAN, Visual Basic, C# and more.
Many of the people I call and called friends learned to code on the fly and in my recruiting roles (I have hired a number of people) I have always preferred to see people with core competencies in something real (engineers, scientists, etc) who could code comfortably, over coders who were out of touch with the real world (that most of my coding interests have modelled over time - never been so big on the financial sector).
But as I said, this is a great list, especially for those who are stressed about the modern world, about wanting to perform well in a very competitive IT sector now. Still, one counsel I continue to offer that is not on the list is:
10b. Yes Have Fun, but go one better, do mostly if not only, things that interest you, that draw you in, that you find fun. If you do that, you will shine at those things and do well at them and these and your passion for them will open doors for you. If there's something you feel you "need" to learn to cut the grade, by all means, your call, but remember, this may just not be, your thing ... and it may just not be, as important as you think. You job prospects will rely, in the end, upon your relationships (networking) and your enthusiasm (which charges you with the energy to keep looking).
But this I find is a life counsel not an IT counsel, because it may well be that IT is saturated and your interests lie elsewhere and you shine elsewhere in particular in areas less popular at present, less competitive ... there's always room for hobbies.
Thank you for taking the time to share your opinion.
Not at all, thank **you **for sharing yours! There's a whole new market of budding young wannabe devs that can learn from the previous fold ... always.
Never though, forget the power of pure interest driven (sometimes aka hobby) activities .... over set learning goals and skill acquisition goals. Learning and skills flood in all by themselves in the former scenario, IMHO. Usually ... the rule is always with its exceptions ;-).
This article is just the perfect read for the devs who are trying hard in their journey or getting demotivated due to many reasons in their day to day career.
Many thanks Marisa for bringing up these points. They will definitely help many on the way as they thoroughly read the points.
Keep them coming!
Thanks so much! I appreciate it.
This is a great list! Thanks so much for this awesome reminder! I didn't need to hear this today BUT there have been days where I definitely needed to hear this so I'm bookmarking it and saving it for those days (because I know they'll happen again). Thanks so much for writing this useful post.
Thank you, Anthony! I'm so happy to hear you've bookmarked it for later. That's so awesome. Hope it helps.
The part about feeling like "I'm not cut out for this" is exactly how I feel right now.
I fell into tech, only learning SQL and now I'm trying to learn C# on the job and it's so different in everyway, I feel like I'm not a "real" developer because I can't get my head around this new way of thinking. This gave me a bit more hope though, thank you
I'm glad it could help! You can do it! Just keep going. πͺ
Nice breakdown dude! π₯
I've been 10 years in coding world, am self taught and the marathon is still running... Good Luck dude!
I called my self as Street Programmer. Cuz so many unconventional method in my code π€£
Thanks!
"Street Programmer"... sounds pretty fierce!
Hi Marisa!
How can you βPace yourselfβ with a bootcamp?
You say learning to code is a marathon, not a sprint, but in a bootcamp it seems more like a sprint, and it make you feel more and more not good enough, because more difficult task are required daily.
The βEveryone's journey is differentβ but in bootcamp you have to follow what they say..
And all this reasons are make me doubting a lot about the expensive bootcamp Iβm doing.
Cause every time you feel like you have a lot of basic learning holes but they have to keep going.
Hi Nicky! Thanks for reading the article.
Attending a bootcamp is just part of your learning journey. You'll still continue to learn to code after it. So while your bootcamp seems like a sprint (and rightfully so), learning to code overall is a marathon.
You can do it, Nicky. I think you're having the same concerns as so many other people who attend bootcamps. The pace is intense, but (I've heard) worth it. Is there an option for you to possibly speak to alumni from your bootcamp? It might help hearing their stories and seeing where they are now.
Best of luck! πͺ
Loved your article. Thanks for sharing β₯οΈ
Thank you, Adarsh! I appreciate it.
Nice article!
Thank you, Gustavo!