10 Things I Wish I'd Known When Starting My Coding Journey
Tags: webdev, beginners, codenewbie, devjournal
Published: 2022-11-11 03:18:42

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:

- YouTube
- [Codecademy](https://www.codecademy.com/)
- [freeCodeCamp](https://www.freecodecamp.org/)
- [Scrimba](https://scrimba.com/)
- [The Odin Project](https://www.theodinproject.com/)

Another free option is [Leon Noel's #100Devs](https://leonnoel.com/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](https://www.udemy.com/) and [Udacity](https://www.udacity.com/). I highly recommend [Jonas Schmedtmann's Udemy courses](https://www.udemy.com/user/jonasschmedtmann/).

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.

![Runners running a marathon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/23he68uo52ezkt8hqta9.jpg)
Source: Photo by <a href="https://unsplash.com/@mzemlickis?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Mārtiņš Zemlickis</a>

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.

![Chart showing series of steps depicting daily growth](https://cdn.hashnode.com/res/hashnode/image/upload/v1657419232325/FmA5Gyrcz.png)
Source: [Image by Liz Fosslien](fosslien.com)

---

## 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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)!). 💪

Make sure to celebrate those wins, too!

{% embed https://twitter.com/MarisaBrantley/status/1519898952086085632 %}

---

## 5. There will also be "bad" days.

![Man sitting at desk getting frustrated at his computer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tvyrd1z77xylji4gwu61.jpg)
Source: [Andrea Piacquadio](https://www.pexels.com/photo/yelling-formal-man-watching-news-on-laptop-3760778/)

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.

!["You got this" written in white chalk on asphalt](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hde76xgdm062m14knevu.jpg)
Source: [Sydney Rae](https://unsplash.com/photos/geM5lzDj4Iw)

### 👎  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:

1. Select a task (coding your portfolio site!)
2. Set a timer for 25 minutes
3. Work straight for those 25 minutes (no cheating)
4. 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](https://pomofocus.io/app)). Better yet, [code a Pomodoro Timer](https://freshman.tech/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.

![pablo-stanley.jpeg](https://cdn.hashnode.com/res/hashnode/image/upload/v1666736720655/-_pSBiNfK.jpeg)
Source: [Pablo Stanley](https://blush.design/artists/RyUTVuP8G4QeAAEEQgug/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.

![Male sitting on freeway overpass with freeway in background](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b33uubr7vdaf6ebd7m1v.jpg)
Source: [atiabii](https://www.pexels.com/photo/man-in-grey-hoodie-standing-on-bridge-over-the-expressway-2075520/)

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.

![Scrabble tiles saying "Pause Rest But never give up"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tu6h98tcrtlk7rdhzl4b.jpg)

Source: [Brett Jordan](https://unsplash.com/photos/TngLW5BNyF8)

**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.

![Three people sitting in front of their laptops having a good time](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1su0v6o5s35p7d00segs.jpg)
Source: [Brooke Cagle](https://unsplash.com/photos/g1Kr4Ozfoac)

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](https://www.youtube.com/user/thepriceisright/videos?app=desktop)." 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](https://en.wikipedia.org/wiki/Developer_relations), set boundaries. 

###Discord

Another great place to gather with fellow coders is on Discord. Below are some noteworthy servers (watch your time, though!):

- [Danny Thompson's](https://twitter.com/DThompsonDev) [Commit Your Code](https://discord.gg/ahzhtJMT)

- [Eddie Jaoude's](https://twitter.com/eddiejaoude) [EddieHub](https://discord.gg/TH9de7KJ)

- [James Quick's](https://twitter.com/jamesqquick) [Learn, Build, Teach](https://discord.com/invite/vM2bagU)

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.

![Mug on table next to a laptop on a large Zoom call](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtrozdkxdu90j4fgc9i1.jpg)
Source: [Chris Montgomery](https://unsplash.com/photos/smgTvepind4)

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."](https://thedeveloperbee.hashnode.dev/series/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](https://www.meetup.com/) 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](https://www.womenwhocode.com/). Bonus tip: [Danny Thompson](https://twitter.com/DThompsonDev) 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](https://www.linkedin.com/pulse/coffee-questions-what-should-we-asking-during-mukai-matsiga).)

- **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.

![Man sitting in front of computer screens holding post-it that says Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66s7mbqiub58u73wtlfn.jpg)
Source: [Hitesh Choudhary](https://www.pexels.com/photo/man-in-grey-sweater-holding-yellow-sticky-note-879109/)

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](https://www.geeksforgeeks.org/top-10-projects-for-beginners-to-practice-html-and-css-skills/)
- [Flexbox Froggy](https://flexboxfroggy.com/)
- [Flexbox Zombies](https://flexboxzombies.com/p/flexbox-zombies)
- [CodeCombat](https://codecombat.com/)
- [JSRobot](https://lab.reaal.me/jsrobot/)
- [JSchallenger](https://www.jschallenger.com/)

*More advanced -*

- [CodeWars](https://www.codewars.com/)
- [LeetCode](https://leetcode.com/)
- [HackerRank](https://hackerrank.com)
- [Edabit](https://edabit.com/)
- [CodeinGame](https://www.codingame.com/start)
- [frontendeval](https://frontendeval.com/)

> “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](https://www.coursera.org/articles/what-is-a-data-scientist)
- [Computer Systems Analyst](https://www.thebalancecareers.com/computer-systems-analyst-526001)
- [Sales Engineer](https://www.zendesk.com/blog/sales-engineer/)
- [Customer Success Manager](https://www.parlor.io/blog/customer-success-managers/)
- [Help Desk Support Technician](https://www.itcareerfinder.com/it-careers/help-desk-technician.html)
- [UI/UX Designer](https://www.ironhack.com/en/ux-ui-design/what-is-ux-ui-design-and-what-does-a-ux-ui-designer-do)
- [SEO Consultant](https://bealwaysmarketing.com/what-is-an-seo-consultant-and-what-do-they-do/)
- [Digital Marketing Manager](https://online.maryville.edu/online-bachelors-degrees/marketing/careers/digital-marketing-manager/)
- [Content Manager](https://blog.hubspot.com/marketing/content-manager)
- [Interaction Designer](https://designmodo.com/interaction-design/)
- [Accessibility Specialist](https://www.accessibilityassociation.org/s/wascertification)

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](https://www.verywellmind.com/self-care-strategies-overall-stress-reduction-3144729), 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.

{% embed https://twitter.com/ykdojo/status/1585793516008898561 %}

---

### Conclusion

To recap, the 10 things I wish I'd known when starting my coding journey...

1. You can learn to code for free. 
2. Pace yourself.
3. It's okay to code only a little or nothing at all some days.
4. During your learning journey, there will be great days.
5. There will also be "bad" days.
6. Surround yourself with positivity.
7. Networking is really important.
8. Tutorials are great, but they're only a part of learning.
9. It's okay to change direction or career goals during your learning journey.
10. 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*.


![Silhouette of person raising hands on cliffs above beach at sunset](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfaq2qtofgmv4ltqvxhk.jpg)

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!