How I'm Learning to Code and How You Can Too
Tags: beginners, career, codenewbie
Published: 2020-04-14 15:52:43

---
title: How I'm Learning to Code and How You Can Too
published: true
description: 
tags: beginner, career, codenewbie
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/19kf4cc9iqro33mxqxt3.png
---
Learning to code is not easy. It’s definitely possible to learn to code on your own and there are TONS of people who have done so successfully already. But it’s also important to realize that going the self-taught route presents unique challenges. 

I’m one of those people taking the self-taught route.  I’ve now realized that there are a few mistakes I’ve made along the way. You can read about them here if you’d like.
{% link https://dev.to/ceeoreo/5-mistakes-i-made-my-first-year-learning-to-code-3cj5 %}

I hope reading that article will help you take a look at your own journey. If you want to keep yourself from repeating your past mistakes, reflection is so important. But identifying your pain points is only half the battle. To really ensure that you don’t find yourself in an endless cycle of repeating the past, you need to set out a plan to correct your past mistakes. 

This is a realization I had to come to once I decided to write that article. I have a background in digital marketing so I’m used to continuously identifying ways to improve and executing those improvements. It suddenly dawned on me that I need to have that same strategic mindset when it comes to learning how to code. So in this post, I’ll be outlining things I’ve done/am doing to yield even better results in my journey to code. 

##**1. Finding a niche**
There is so much to learn in tech which is something I absolutely love. But this can be extremely distracting too. This year, instead of jumping around from language to language, I’m sticking to one specific career path. I’ll be focusing on [Python]([Welcome to Python.org](https://www.python.org/)) and [Cloud Computing]([What is Cloud Computing](https://aws.amazon.com/what-is-cloud-computing/)). 

“Okay but how do you find your niche?” Take some time to do research. When you’re doing research, keep in mind things like learning curve, salary, industry need/saturation, and barrier to entry. Once you have an idea of some of the different routes you can take, dive deeper into the career paths that interest you most. Try to determine what fits well with your career goals or preferences and what doesn't.  

Now, this is the most important part. Once you have an idea of the career path you want to pursue, *learn only a couple languages at a time*. This is *super* important. If, for instance, you decide you want to become a Cloud Engineer like me, it would be good to focus on *one* cloud platform and *maybe 2* coding languages at the same time. Deciding to learn C++ and Python and Azure and AWS at the same time would be too much. 

If you’re like me and find everything interesting, don’t forget that you can always learn things later on in your career. There's always tomorrow. I plan on learning more about Machine Learning in the future. 

##**2. Learning in public**
I’m the kind of person who needs external sources of motivation to get things done. This is a blessing and a curse. But I’ve learned how to use this to my advantage. One of the ways I do this is by learning in public. 

What do I mean when I say “learn in public”? Sharing what you’re learning with others is learning in public. There are lots of ways to do this. Participating in challenges like [#100DaysOfCode](https://www.100daysofcode.com/) is one way. Writing blog content takes this a step further. Recently, lots of people have started streaming live coding session on Twitch and YouTube. Twitter is also a great place to share what you're learning. Here's a helpful article that dives more deeply into [learning in public](https://www.swyx.io/writing/learn-in-public/). 

Learning in public is important for me because it keeps me accountable. Talking about what I’m learning on Twitter or writing articles about a project I’m building means people know about what I’m doing. Knowing that people are watching my coding journey is a huge source of motivation for me.

But what if you’re extremely self-motivated and don’t need anyone else to keep you going? Is learning in public still a good move for you? Yes! Learning in public is an awesome way to teach others the new skills you’ve picked up. And teaching is one of the best learning tactics out there. 

Learning in public is also a great way to get help from others when you need it. So don't be afraid to openly admit when you’re confused or struggling. You’ll be shocked to see how many people will come to your aid! 

##**3. Doing the hard stuff**
I have a huge problem with procrastination. The root of procrastination for most people is avoiding things that seem difficult. There are lots of things in programming that seem difficult (key word *seem*). Now, I’m making the habit of tackling problems that are hard instead of running away.  This has helped me *immensely*. I’m surprised how far a little persistence goes. 

There have been times when a coding exercise seemed too advanced for me. Instead of just giving up or leaving it for another time that never comes, I’m making the habit of just going for it. If I mess up or hit a block, I keep trying. If I still can’t figure it out, I take a break and ask for help. I’ve noticed that I’m picking up on syntax and problem solving really well.

This is such a great habit to build and not just for coding. So the next time you want to watch Netflix instead of working on a tough problem or project, DON’T!! Stick it out and see how far you go. 

##**4. Relying on just a few resources**
There are literally millions of resources out there for learning how to code. I just Googled “learn Python” and there were *387 million results*!!! And that’s only Python. With this many resources, books, courses, etc it’s very easy to get overwhelmed. I definitely was at some point.  

To prevent this from happening, I recommend sticking to just a few learning resources. In a future post, I’ll list some of the things I’m using to learn Python. I’m making sure to work through only 2 resources at a time. This number is different for every person. But I think using a bunch of courses at the same time just means you’ll be going nowhere fast. 

##**5. Having productive study sessions**
I know I’m not the only one who gets distracted easily. There’s always something to do. And social media apps are always calling my name. I also, like many others, don’t have an office at home. I live with 3 other people and we seem to always have company (of course not at the moment).  

I say all that to emphasize that staying focused is not easy for most of us. But focused study sessions are really important for learning how to code. I’ve been using the [Pomodoro method](https://francescocirillo.com/pages/pomodoro-technique) to keep distractions at bay while I study. I aim to block out 1-3 hrs of study time each day of the week.  

This doesn't always happen and this might not be feasible for everyone. I recommend starting out small with maybe only 30 minutes of focused study each day. I make sure to put my phone across the room so that I can't instinctively reach for it. I keep water nearby so I don’t have to get up and risk getting distracted. 

I also make sure friends and family know that I’m unavailable during my study sessions. One of my favorite new tricks is telling people “Sorry, I can’t make it. I have class during that time.” Some people won't respect your time if you tell them you’re simply learning how to code. But telling them you have a class holds more weight. And technically, you do. It’s just a class of one ;) Try this out and let me know how it works for you!

##**6. Get involved in the community**
Right now, there are remote conferences popping up everywhere. People are live coding on Twitch. And Twitter is *the* social media platform for people in tech. I’ve made a point to go to some of these meetups and conferences if I can. I try to support people’s Twitch streams too. I’m also working on being an active participant on Twitter. 

There are so many benefits to doing these things. Firstly, you learn so much from others. I’ve been able to see how so many amazing developers tackle problems. I’ve also seen how they learn new things and even make mistakes sometimes. This has been incredibly helpful to me. 

Getting more involved with the community has also helped me to build my network. This is why I say it’s important to be an active participant on Twitter. You’ll find yourself talking to some of the smartest people in the industry. And if/when you need to look for a new position or your first job in tech, so many of these people will rally to your aid. I’ve seen it happen so many times and it's amazing! 

___
##Conclusion
My coding journey has not been straight forward at all. There have been lots of twists and turns and I expect more in the future. But I’m making sure I’m putting my best foot forward in learning how to code this go-round. I hope you’ve found these tips helpful. You don’t have to follow all of them. Remember, this is just my opinion. Always do what works for you!

I’d love to share specifics on what led me to Cloud Computing. If that’s something you’re interested in, let me know!  I'm trying to implement tip #2 as much as possible! So if there are any AWS, Cloud Computing, or Python-related topics you’d like me to cover, make sure to tell me in the comments. Thanks for reading!