Coding Journey of Psych Grad to Developer: Struggles, Mistakes & Lessons Learned

Cindy Lin

Cindy Lin


Learning to code and getting hired itself isn't hard. **WHAT 😵?!**

Ok, to be fair, it doesn't have to be hard. I don't mean that it won't take a lot of work because it definitely will but we as humans end up making it much harder on ourselves.

From my story, you will see what I mean and how this was true for me and from most people I talk to in the developer community, it's true for them too.

Whether you are looking for a career change or you are not sure what to do with your life after graduating with an Arts Degree, I hope my story, struggles and experiences will shed light on the struggles you might be facing and inspire you to take action.

To be clear, this isn't a step-by-step guide or path to becoming a software developer. If that's what you're looking for, this free guide is all you need.

My goal is to help anyone who has been in my shoes and is on their own coding journey but experiencing some of the common struggles when learning to code and finding a job as a programmer (self-doubt, imposter syndrome, losing motivation, feeling lost, etc etc).

What This Post Will Cover:

  1. Part One: Timeline of My Coding Journey (beautiful illustration above :) !)
  2. Part Two: Struggles, Mistakes, and Lessons Learned
  3. Part Three: My Top Tips, Recommendations & Resources for your Coding Journey

Part One: Background Story and Timeline of My Coding Journey

2019 January ~ 2019 May (Intro to the Web Dev World)

During my last semester at University, I took a course in psychological measurements where I learned how to analyze data and create information visualization with RStudio.

Prior to this course, I had ZERO experience in any programming language. The interface looked daunting at first, but I was fascinated by how everything worked. With a few lines of code, I could create beautiful diagrams and charts!

Around March 2019, I was seeing Udemy ads on Youtube. As I browsed through Udemy, I found an interesting web development course (The Complete Web Developer from Zero To Mastery) taught by Andrei Neagoie.

The trailer video looked so good that I decided to give it a try!

BEST. DECISION. OF. MY. LIFE.

It’s absolutely mind-blowing to learn how the Internet works and I really enjoyed watching the videos and following along. I remembered some nights I spent hours simply trying to adjust the CSS layout for a web page (e.g. Figuring out the differences between display:flex and display:grid).

When things worked the way I wanted, it was pure joy and a great sense of achievement!

OMG reaction

2019 May ~ 2019 December (Exploration and Reflection)

By May 2019, I had finished Andrei's Complete Web Developer course.

I should be a Web Dev expert now, right? Not so fast, in Part Two below, I'll discuss the struggles and mistakes I've made and what steps you can take to overcome the learning barriers.

At this point, I wasn't 100% sure if I want to pursue a career as a developer. While web development felt like an exciting industry to be part of, my self-doubt and insecurity were holding me back to make the next move.

In fact, I didn't feel competent enough to call myself a 'developer'. After all, I don't have a computer science degree or any coding-related work experience.

I really enjoyed all the things I learned in that course. However, I didn't know what would happen if I turned this hobby into a career. I asked myself questions like:

  • "Will I still enjoy coding?"
  • "Is this something I want to do professionally?"
  • "Is programming really for me?"

I didn't know the answers!

finding directions

Analogy: Playing a sport as a fun leisure activity versus becoming a professional athlete.

In June, I came across a volunteer opportunity as a Website Administrator at UBC Campus Lightbox, a non-profit organization that aims to make mental health resources more accessible to the community.

This role perfectly aligned with my psychology background and interest (coding and raising mental health awareness! Heck yes!). Every since taking that role, I have been working with the engineering team to update the website and implement new features.

This was, and continues to be an awesome opportunity for me to test my skills and learn new things and see them live in the real-world while getting to help a good cause.

In the meantime, I was also looking for a full-time job. In July, I started working as a Campus Coordinator at a digital training Bootcamp where I was surrounded by individuals who wanted to make a career transition into the tech industry.

Most of the Bootcamp students, just like me, had ZERO experience in coding.

Their dedication and hard work inspired me to keep learning and pursue a career in the tech industry.

As I reflected on my personality traits and my long-term goals, it became clear that I wanted to work in an industry that will constantly challenge me to solve hard problems and push me out of my comfort zone.

So, I quit that job by the end of 2019, booked a flight to Taiwan for a short vacation and I told myself, "2020 will be my year! I'm ready to embark on a new adventure and commit to getting into the tech industry."

Life Threw Me (and you) a Curve Ball: A Global Pandemic

Sad pug

If I were a pug, this would be me staring out of the window and wondering the meaning of life.

2020 January ~ 2020 April (Took A Detour in Life)

Because of the COVID-19 pandemic and flight cancellation, my 'short' vacation in Taiwan was extended. I didn't even know when it would be safe to fly back to Canada.

As I navigated these life challenges and uncertainties, I questioned myself... "What should I do now?"

I remember seeing Python as a required skill in many job descriptions and heard all of the hype about AI, Machine Learning, and Big Data. Also, my friends and family were all telling me that being a Python developer is a promising career option.

Therefore, I started taking online live Python courses in Taiwan and learned about pandas, numpy, matplotlib.pyplot, and all that good stuff. You can check out some of my Python learning notes.

During this time, I also got certified as a Microsoft Office Specialist. My backup plan was to find an office administrative role if I couldn't land a job in the tech industry. Having a backup plan was my way of dealing with my insecurities and self-doubt.

As I explored more advanced topics regarding KNN and PCA (supervised and unsupervised learning), I realized that this was not what I was looking for. I wasn't enthusiastic about Machine Learning at all.

A lady who is feeling bored

I recalled those late-night coding sessions when I was taking Andrei's Complete Web Development course in 2019 where I could spend hours working on the front-end projects without feeling tired. I was thrilled about everything and I really felt like I was able to achieve a state of flow.

The voice inside my head became stronger and stronger as each day passed by: "That's it! What am I doing?! I don't want to be a Python Developer or Machine Learning Expert. I don't want to be an Office Administrator. I want to become a Web Developer, so just do it!"

This exploration phase and detour were crucial in helping me narrow down my interest. Despite all the uncertainties, I figured out what I really want to do!

2020 May ~ 2021 January (Refined My Goal)

Although my self-doubt was still lurking in the background, I decided to take a leap of faith.

I asked myself: "Will I regret not trying my best to pursue my goal?" and the answer was 100% yes.

The fear of not reaching my full potential outweighed my fear of failure.

So I threw my backup plan out the window (and a small piece of my self-doubt with it) and committed myself 100% to becoming a Web Developer even though I knew that it still wouldn't be easy and there was no guarantee of success.

So, What Did My Typical Day Look Like?

Now that I had a clear focus to get hired as a full-time web developer, I knew I would have to sharpen my web dev skills and so I mainly allocated my time into the following buckets:

  1. Learning data structures and algorithms
  2. Building a strong foundation in JavaScript
  3. Working on side projects
  4. Job searching and recruiting
  5. Sharing my progress on LinkedIn
  6. Connecting with like-minded professionals

Daily_Agenda

Note: Each task is time-consuming so rather than trying to focus on all of them at once, it was more of a mix and match of 2-3 of my buckets, depending on the day.

Some days would be: Coding Challenge —> Side Projects —> Job Search.

Other days: Data Structures & Algorithms —> JavaScript Deep Dive —> Networking & Job Search.

#1: Coding Challenges | Learning Data Structures and Algorithms

I started my day with coding challenge(s) on Edabit as a brain warm-up exercise. I highly recommend this resource to newbies.

These challenges are easier than Leetcode and HackerRank. It'll help you build confidence and learn the fundamentals.

The best part? You can learn from others by looking at their solutions and see how other people approached the problems differently.

Like many people, learning data structures and algorithms wasn't all roses and I banged my head against the wall a few times (metaphorically of course 😅) while trying to understand the concepts.

Don't be discouraged, keep pushing. It's meant to be challenging and once you finally grasp a concept, it feels that much better.

If you are having a hard time understanding everything, YOU ARE NOT ALONE. Take your time to digest the content and compare and contrast the differences between each data structure.

To help me manage and track my progress with coding challenges, I created this template. You're more than welcome to download or make a copy of it to help you keep track of your learning progress as well. I've also included instructions if you would like to customize your own version of the spreadsheet.

Why is a tracker important? Having a tracker will provide insight into:

  • Which topics you struggle with the most
  • How many hard questions were you able to solve (Quantify success and failure)
  • Show you how far you've come (be proud of yourself!)

You can even take it one step further and create a list of coding challenges to do and then add a column for "due date" for each coding challenge you add in. This way you can plan out 1-2 weeks in advance and even block off time in your calendar to complete these coding challenges before the "due date". This will help you hold yourself accountable and build a consistent habit.

If you want even more accountability, find someone else (ex: send a message in a developer community like ZTM) who is also learning to code who will do the challenges with you with the same due dates. You can then compare answers after each challenge and help each other along the way if/when you get stuck.

Are you a beginner? Not sure where to start?

Andrei's Master the Coding Interview Course is suitable for people who don't have a computer science background (just like me!). The course is well-structured and broken down into bite-sized information so I didn't find it overwhelming. To reinforce my learning, I also read articles and did coding exercises from InterviewCake.

When I first learned about the differences between static and dynamic arrays, I couldn't fully understand why an "append" operation on a dynamic array is worst-case O(n) time. This article from InterviewCake provided me with the mental model I needed!

I then had that 'AHA' moment when I rewatched Andrei's lectures... Best feeling ever!

Are you up for more coding challenges?

I love using a variety of resources to boost my learning. For example, FreeCodeCamp has a section on Coding Interview Prep with hundreds of FREE coding exercises.

It's a combination of take-home projects, data structures, algorithms, and math questions!

To take my problem-solving skills to the next level, I also took the FAANG Interview Course by Yihua Zhang. I found some of the questions extremely challenging and I had to pause and rewatch the lectures a few times.

However, this course opened up a whole new world to me. I learned the logic behind each solution and common strategies to implement when encountering hard coding questions.

While I'm still not very confident about FAANG level coding questions, I now have the right mental frameworks to approach the problems!

#2: Working on Side Projects | Deep Dive into JavaScript

Side Projects Examples:

I helped create a new feature (resource recommender) for UBC Campus Lightbox which allows users to find the available mental health resources based on their preferences.

Resource_recommender_react

Thanks to Jacinto Wong's JavaScript Projects Course, I applied what I learned, added a few features, and shared my project on Linkedin.

The result? My post received over 3,000+ views and 180+ reactions 🤯! Some people even reached out to me and asked if I would be interested in collaborating on future projects.

The takeaway here? Share your work!

Deep Dive into JavaScript:

To better understand some of the most confusing concepts in JavaScript, I took Andrei's Advanced JavaScript Concepts Course. For example, "this" keyword, lexical environment, how event loop, job queue, and callback queue work together.

The Advanced JavaScript Cheat Sheet from the course is also something I use as a helpful reference.

I also recommend reading You Don't Know JS by Kyle Simpson. It's so good, you will be blown away!

#3: Linkedin Network | Job Search

Linkedin

I used Linkedin to connect with professionals and seek career advice from people working at Amazon, Asana, GoDaddy, Salesforce, SAP, Shopify, and Later. Instead of reading online company reviews and researching the company's about page, talking to people directly allowed me to gain insights into the company's hiring process and culture.

In addition to networking, I leveraged the power of Linkedin to increase my visibility by sharing useful content.

CSS is a common source of frustration for many developers as we don't 100% understand what's going on under the hood. Therefore, I shared a CSS trick which mimics dark and light mode with plain CSS. (No JavaScript at all!) The result is absolutely mind-blowing!

My post received over 7,600+ views and 460+ reactions on Linkedin 😲!

These moments were what kept me going! Woohoo! Celebrate your small wins!

Happy Dance

Job Search

Because my flight back to Canada in May was cancelled, I was in a dilemma. I wanted to find jobs in Canada but I was stuck in Taiwan.

So, I started looking for short-term internship opportunities in Taiwan.

I applied for a front-end developer role at a digital design company. I passed the initial screening, the online technical interview, and made it to the final round. Unfortunately, I wasn't able to answer some of the React questions and I didn't land the offer.

While this "failure" definitely didn't feel great, I decided to look at it as a learning opportunity and I told myself, "Ok, I need more hands-on experiences with React!"

But How?

Not thinking he would even respond, I reached out to Andrei and asked if I could contribute to any projects he was working on.

I created my own learning opportunity by asking, "This is what I'm good at, do you need an extra pair of hands?"

To my surprise, Andrei replied to my email. From there, I started taking on some small tasks and working on fixing bugs.

After I finally got back to Canada in August, I joined the ZTM team weekly sync meetings and contributed more to the improvement of the ZTM website. Even though I wasn't familiar with the tech stack, I took time to watch Youtube tutorials on topics I didn't understand so that I could start contributing right away.

The ZTM programmers were also super helpful in teaching me, answering my questions, mentoring me and giving me harder and harder tasks to work on.

Gradually, I was able to write better code and complete tasks independently.

In the meantime, I was still job hunting but it was frustrating. I submitted more than 50 applications but the majority of them went to a black hole and I never even heard back from the companies.

Two companies invited me to complete the coding challenge as part of the hiring process. However, I was too nervous to come up with a good solution under time pressure.

crying baby

This felt like another step back but again, another learning experience and opportunity for me to keep improving. My next step was to keep practicing coding interview questions and apply for more jobs.

Job Offer

In the meantime, I was still learning a lot and working hard with the ZTM team and after working with them for a few months, they decided to offer me a full-time position as a Software Developer right around the same time. Woohooo!

It's no doubt that ZTM has played a pivotal role in my coding journey and I feel like I'm still just getting started and learning even more now that I'm working full-time.

It's tough but I didn't give up. Thanks to the supportive community, I was able to keep pushing myself, never giving up and having faith in myself.

Editor's Note: Cindy is being modest in this section. A LOT of people reach out to Andrei but Cindy went above and beyond has backed it up. We are super lucky she reached out and ecstatic to have her as part of the team!

TL;DR

Here is a super simplified version of my coding journey.

Time_line

Part Two: Struggles, Mistakes, & Lessons Learned

#1: Dealing With Self-Doubt & Imposter Syndrome

(My inner self-talk: “OMG, how can I ever be competent enough to be a software developer?! There are so many things I don’t know! It's so overwhelming”)

⚒️ To combat imposter syndrome, I reached out to the LinkedIn community and asked for some advice.

What really surprised me is the fact that many people were super generous in providing feedback and guiding me in the right direction. Here were some of the top suggestions:

  • Start creating a portfolio website as soon as possible (here's mine 🙂)
  • Code every day and post it on social media as part of a challenge #100DaysOfCode - consistency and building the habit is key
  • It’s perfectly normal to feel like an imposter, but remember, no one knows everything! Keep learning, and with every line of code, you will feel more confident about yourself
  • Focus on what each technology does and stick to one technology. For example, Vue/Angular/React can solve a similar problem. Pick a framework to learn and master
  • It’s gonna be a bumpy road but don’t give up! Keep asking questions when you don’t know things

I started to focus on the progress I was making and celebrating the small wins and those negative feelings gradually faded away for the most part.

Editor's Note: Also knowing that you're not the only one feeling this is reassuring. This is a topic that comes up for nearly every person at some point in their journey. Here's an example, another one and another one... you get the idea!

#2: Good Enough? Move On!

Don't spend a crazy amount of time on HTML and CSS. I used to spend too much time fixing pixels, changing the colors, and messing around with positions of elements.

While HTML and CSS provides you with a great sense of achievement (beautiful animations and color gradients background), it's not meaningful progress and not the best use of time (unless you want to become a Web Designer then you'll probably spend more time on it).

⚒️ You don't need to be a CSS Guru to become a great developer. MOVE ON and you will naturally hone your CSS skills as you build more projects.

⚒️ Start learning JavaScript and basic Git commands as early as possible. For the majority of your time as a developer, JavaScript skill is more important as there are so many JavaScript libraries and frameworks out there. For example, learn how to manipulate strings and arrays, the differences between map and forEach.

But Wait?! What is Good Enough For HTML and CSS?

Go to DevChallenges and pick a beginner project (e.g. 404 page, team page, home page)

Are you able to create a responsive page using CSS Grid, Flexbox, media queries?

Amazing! Move on and start learning JavaScript now.

#3: Don't Jump Into A Framework Too Quickly

This point might seem contradictory to my previous point. But the truth is that when I jumped into React, I wasn't even 'Good Enough' in JavaScript. For example, I didn't even know about "class" in JavaScript (huh? what is the constructor method? what is the 'super' keyword?) and I had to look up many basic JavaScript methods which wasn't efficient.

Essentially, I was learning the new syntax and jargon in the React framework (JSX, props, state, functional component versus class component) without solid JavaScript knowledge.

I was overwhelmed with all the new information.

⚒️ When things don't make sense, it's an indicator that you might need to revisit some topics and build your fundamental knowledge.

jenga games

Just like Jenga, without a solid base, it will collapse quickly. Build your base.

#4: Don't Just Watch Endless Coding Tutorials and Code Along. Build Your Own Stuff!

When I watched Andrei's Complete Web Development course, I didn't push myself hard enough to fully grasp the concepts and apply that knowledge to my own projects.

Analogy: Reading amazing recipes by Michelin-starred chefs without actually cooking anything. Even though I know all the ingredients and step-by-step instructions, I won't become a good chef without hands-on experience. I'm also not going to be able to create a michelin-starred level quality meal on my very first try. It takes practice!

These were my biggest lessons learned to help me actually retain what I was learning:

⚒️ Don't just passively consume information. Chew on it. Take time to digest what it means and test your knowledge by explaining it to someone else.

⚒️ Treat the debugging process as a great learning opportunity.

⚒️ Pause the video and try to solve the problem yourself before proceeding.

⚒️ Contribute to open-source projects where you are not the only user.

⚒️ Build your own projects based on what you know. Even better if you share them publicly. You are not stepping out of your comfort zone if you simply copy and paste the code from the Github repo.

For example, I applied what I learned in the RoboFriend app (project from Complete Web Developer), and turned it into this 👇

React_project



#5: Stay Focused And Stick To Your Goal

⚒️ Instead of being multilingual, focus on mastering one language at a time.

Get a holistic view of yourself by asking:

  1. "What do I really want to achieve?"
  2. "What do I enjoy the most or find most interesting? (Creating user interfaces? Working with databases? Analyzing data?)"

Before you know the answer, it's perfectly fine to experiment with different things and dabble in different languages. In retrospect, those three months I spent learning Python weren't a waste of time. In fact, it allowed me to see the beauty of different languages and what purpose they serve and better understand what I actually enjoyed vs. didn't.

⚒️ Stay laser focused on your current task - multitasking is a myth!

Avoid any distractions such as phone notifications or checking social media while you are coding.

Multitasking_myth

Singletasking is the key to entering the flow state.

What I typically do is mute my phone, turn off notifications, and put on my headphones with 1-hour ambient background music. This helps me to focus on the task at hand for one hour and then I'll stretch a little bit and give myself a break before diving in again.

Here's an awesome list of 5 habits by Jason Lengstorf that has helped me and I definitely recommend you check out if you want to be super productive.

#6: Self-Care Should Be One of Your Top Priorities

Coding can be a complex cognitive task and you need to recharge your battery to keep that momentum. You should check in with yourself as frequently as you check your phone's battery level.

Feeling exhausted and stressed out is detrimental to your productivity and health. Don't feel guilty about scheduling 'ME' time to relax and let your mind wander.

It's crucial to keep your creative juices flowing and you will be surprised at how beneficial a break (especially if it's outdoors) can be to improving your efficiency and understanding of concepts you're learning.

⚒️ To bring your best, you need to take care of yourself first What's the best debugging tool? A full 8-hour sleep 😆

Make a list of activities that you find relaxing and de-stressing. Schedule them in if you have to.

⚒️ Go take a real break! You are not a robot It's not selfish or indulgent. It plays a huge role in your health and happiness.

If you are pushing yourself too hard, your passion for coding will slowly fade away.

Staying focused requires a lot of mental energy. If you start feeling fatigued and you aren't able to absorb any new information. Stop what you are doing. Give your focus a break.

Learning how to code is a marathon, not a sprint.

My Top Lessons Learned While I Was Learning to Code:

If I could go back in time, these are the lessons I would tell myself:

  1. Reach out to people and ask for career advice (people love to help)
  2. Invest your time strategically
  3. You don't need to be an expert in CSS
  4. Solidify your JavaScript knowledge when things don't make sense
  5. Don't just watch endless tutorials and code along; build your own stuff!
  6. Figure out what you really want, set clear goals and stay focused
  7. You and your brain need a break... For real!

Part Three: My Top Tips, Recommendations & Resources for your Coding Journey

1. There is no cookie-cutter pathway to becoming a developer. If you look at my journey, it's been a bumpy road and it certainly hasn't been a linear progression. It took me time to figure it out and determine exactly what I wanted.

Is learning to code and coding difficult? Nope, at least not any more than other skills. The hardest part is the learning process itself no matter what you're learning that makes people want to give up quickly.

Well then how do I become good at programming (or any other skill)?

To simplify the process of mastering a skill, it all comes down to these steps:

Steps_to_master

For example:

  1. Learning an Array method such as map()
  2. Solve a coding question that requires you to perform some actions on each item in the array and return a new array
  3. Create an 'About Us' page in React where you have to list all the team members on the website

2. Treat your coding journey as a challenging video game and you will find it less scary and more fun!

Remember when you play Super Mario games, do you dwell on the past and think about how many times you've failed? No, you keep going because all you care about is rescuing the princess. And before you know it, you do but you probably "failed" many times before you did!

The more you're "failing", the more you're learning. Fail fast to learn fast.

3. Patience and persistence are rewarded.

Have you started looking for developer jobs but you're feeling discouraged by the unrealistic job descriptions (Bachelor or Masters degree... 2-3+ years of experience for an entry-level role...)?

Apply anyways. And keep applying. Everyone else is going to stop applying after 10, 20, 30 times but not you. You have nothing to lose.

Are you feeling shitty because it seems like most of your friends seem to have landed their first dev job?

Stop overthinking it! You are the only one in your situation. Stay persistent, stay positive, focus on your process/schedule, celebrate your small wins and be a little bit patient... as they say, time will soften all avocadoes 🥑 (aka - you will get there too!).

Actionable Next Steps:

[ ] Join a developer community of people in your situation: Linkedin, Discord, Virtual Meetup group... etc.

[ ] Leverage the power of Linkedin: Build genuine connections and reach out to professionals who are already in the tech industry. Start with your existing network and build out from there.

[ ] Reflect on your goals, interests, personality, strengths, and weakness. Ask yourself:

  • "What is my ideal career? What would I be doing in that role?"
  • "What's my long-term goal? What monthly / weekly / daily actions do I need to take to get there?"
  • "What am I good at?"
  • "What am I curious about?"
  • "Am I the type of person who enjoys solving problems where there is no obvious answer?"
  • "When's the last time I entered a flow state? What was I doing?"

Editor's Note: if you're a member of the ZTM Academy, we highly recommend taking Andrei's Future-Proof Yourself workshop which will help you answer questions like these and gives you a framework (that Andrei uses himself) for building the life that you want.

[ ] Write down your plan

  1. "How much time can I spend on learning each day?" Block this off in your calendar.
  2. "When will I start applying for jobs?" It should probably be sooner than you think.
  3. "What's the tradeoff (less time for entertainment? less time to exercise? less time with family?)"
  4. "Which career path do I want to pursue?" These developer roadmaps are helpful to understand what's out there within the development / tech world.

[ ] What are you waiting for? Start learning today! To answer the question we've all asked ourselves, "Do I need a computer science degree to get hired?" NO, you definitely don't need a CS degree to learn how to code and get hired!

In fact, here's an entire website dedicated to interviews with people who successfully changed careers and got hired as self-taught developers.

Top Coding Resources:

Most of my favourite resources other than ZTM courses are already listed here but this is probably my top 10 👇:

  1. (Free) CSS Fundamentals: CSS Guide - Learn Flexbox, Grid, Media Queries
  2. (Free) JavaScript Fundamentals: Eloquent JS Ebook
  3. (Free) Learn Web Dev Through Analogies: Code Analogies & Interactive Tutorials
  4. (Free) Learn Web Dev Through Exercises: FreeCodeCamp
  5. (Paid) Learn Web Dev Through Different Learning Paths: Lynda - Learning Path. Note: Check with your local library to see if they provide free access to Lynda.com.
  6. (Free) JavaScript Project Ideas: JavaScript30: Video Tutorials
  7. (Free) Website Feature Ideas: W3Schools: How to
  8. (Free) GitHub Student Developer Pack
  9. (Free) Redux - What & Why: Frontend Turing: Redux
  10. (Free) Andrei's famous learn to code and get hired in 6 months (for free) guide: Learn to code in 2021, get hired, and have fun along the way

Please feel free to say hi or ask me any questions you have in the ZTM community discord, my username is @AwesomePerson.

Stay Safe, Stay Awesome, & Stay Strong! You've got this. 💪🏼




If you enjoyed Cindy's post and want to get more like it in the future, subscribe below. By joining over 75,000 developers who are ZTM email subscribers, you’ll receive Web Developer Monthly (the fastest growing monthly newsletter for developers) and other exclusive ZTM posts, opportunities, and offers.

More from Zero To Mastery

Learn to code (for free) in 2021, g...

I've taught 500,000 of students how to code over the past 3 years. Many of them ...

Mistakes I Made When Learning To Co...

This article will help you save time and avoid the mistakes that a lot of beginn...

Top 10 Programmer Articles From 202...

Andrei Neagoie's list of the top 10 articles from 2020 that every programmer sho...