Many of you are just starting out on your coding journeys—and while it’s helpful to learn from the experts, sometimes it’s also nice to get perspective from someone who’s right alongside you on the path.
Claire Whittaker has been learning to code for three months, so she’s in the perfect position to remember what it’s like when you’re first learning how to program.
In this special guest post, Claire shares what she’s learned on her journey so far and the tips she has for fellow beginners.
Disclosure: I’m a proud affiliate for some of the resources mentioned in this article. If you buy a product through my links on this page, I may get a small commission for referring you. Thanks!
I have been learning to code for about three months now. I can tell you that already there have been a lot of highs and lows. Overall, however, the highs are winning.
If you're struggling with taking the first step and signing up for a course, take it from me: don't wait. Get going now!
Since I’m still relatively new at this like you might be, I wanted to take some time to share with you what I’ve learned so far. Learning anything new is hard work, especially if you’re balancing a job, family, chores, gym membership, and goodness knows what else.
Going through this has taught me a lot—not just the basics of coding. Now, I want to pass this knowledge on to help you.
Getting Started with Learning to Program
Learning how to program can seem overwhelming if you're a beginner, as there are loads of courses out there, both free and paid. With so many different options out there, how are you supposed to know which is right for you?
I know how you feel. When I started out on my coding journey, I felt utterly lost.
So how do you choose a course?
Start by asking yourself these questions to help narrow down the options.
- Do you prefer (or have access to) online or in-person classes?
- Do you want something self-paced, or would a rigid structure with deadlines be better for keeping you motivated?
- What are you looking to get out of the course? As an example, do you need a recognized qualification?
- What’s your budget?
Write down your answers and then use these as a map to help narrow your search.
As an example, if you want to set up your own website, but you don’t want to spend money and need something to work around your family time, a free online course will probably work best. Since it’s a personal project, you don’t need an official qualification.
In the end, I decided to teach myself to code by enrolling in online courses, because they are more flexible than in-person classes. Of course, there are still plenty of options out there…so what’s the next step?
Learning to Program Online: Choosing Your Coding Course
Once you know where you want to learn, my recommendation would be to start searching for beginner courses on coding and check out the syllabi.
If we take a look at online courses specifically, you will find that these can be stand-alone, like Codecademy, or run through platforms like Coursera, Udemy, or edX. Take some time to check out the different options and go for the one you think most suits your requirements.
If you know the programming language you want to learn, then you can be more specific. But if that last sentence meant nothing to you, don’t panic! All will become clear soon.
Most of the courses will have reviews on them, so you can see what others thought of them before you commit.
If you’re still feeling overwhelmed, this post on my blog summarizes some helpful reviews I saw of both free and paid courses. I also recommend checking out Laurence’s article on where to learn to code for free.
Personally, I am focusing on learning Python. That is why I’m starting with the Udacity Intro to Programming Nanodegree. This course covers the basics of Python in detail, and there is the option to do your final project on Data Analysis with Python, which is precisely what I need to practice to become an Applied Scientist.
I’m then planning to do a course recommended to me called Machine Learning A-Z™: Hands-On Python & R In Data Science from Udemy.
The journey of 1000 miles starts with the first step.
Since I started learning how to program, I have learned a lot about how to make what I am learning stick.
My top tip: use a variety of different information sources and broaden your horizons. Which leads me to this next part!
Going Beyond Your Chosen Course to Deepen Learning
Online courses are great, but it’s worth using a variety of sources to deepen your understanding of coding.
Broadening Horizons: Reading Books
While the online course content is good, a book can help with learning to program by giving you a much deeper understanding of a topic. Plus, looking at the question you’re having trouble with from a different angle can help clarify.
While struggling with Python, I found the book Automate the Boring Stuff—which you can read for free online—really helpful. At the time, I had been struggling to get my head around performing functions on lists in Python. The book provided a much more detailed breakdown of the process and how it worked, which really helped me understand what was happening.
This can partially depend on your learning style. If you’re more of a visual or hands-on learner, reading might be more difficult than watching a tutorial or practicing. The journey of learning to program is different for everyone!
Engaging With the Community: Checking Out Articles
There are plenty of excellent online communities of coders and people learning to program like you.
Blogs, like Learn to Code With Me, show you that you're not alone and give you helpful advice.
You can also follow people on Twitter or Instagram. I really like Instagram for motivation. I follow @codingblonde. She does interviews with people working in tech and has office hours where you can ask questions. Plus, her feed is gorgeous!
I also follow a lot of different publishers and companies, like Forbes, Business Insider, and Google feeds on LinkedIn or Twitter to keep up to date with trends in my industry.
It's good to know what’s happening in the market when it comes to your chosen area. I try to read two or three articles a week about machine learning developments so that I can keep up to date with where I should focus my learning.
Casual Learning: Listening to Podcasts
One of my favorite ways to get the latest updates and learn more about programming and data science is by listening to podcasts. I can do it on the go, and it doesn't require me to do anything but pay attention!
My current favorite is Data Skeptic, which is about big data and machine learning. They do new podcasts weekly, and they're a fascinating entry point into the topic for beginners.
For learning to program in general, however, you can’t go wrong with the Learn to Code With Me podcast. It’s full of top tips and stories from other people who have already been through the pain to keep you motivated.
Practice Makes Perfect: Test and Learn
My final tip for learning to program is don't be afraid to test and learn. If you have a specific program you want to try, do some research (read: google it) and then try it out in your spare time. You can then build on it and adapt, pulling in new features to build up your knowledge.
Once complete, I share my programs with my partner. I really like seeing how impressed he looks when I succeed in creating something—even if it's super basic.
My favorite occasion so far was setting up a game of Tic Tac Toe in Python and then playing against him. He was so impressed with my skills. It’s actually quite simple once you know how, but I felt like a genius.
I know it seems daunting, but spreading the process of learning a new skill over many different methods helps you get a deeper understanding. More importantly, it gives you the freedom to switch it up if you get bored/frustrated with one route.
Start coding now
Stop waiting and start learning! Get my 10 tips on teaching yourself how to code.
How to Keep Going When It Gets Hard
Learning a new skill is more than just absorbing content. Setting yourself up with a growth mindset gives you a more resilient and positive mental attitude.
Managing your mental headspace when learning is incredibly important. In my experience, this has actually been the make or break when I'm trying to do something new and scary.
These three tips are my top ones taken from when things have gone well:
1. Know Your End Game
Learning any new skill and making a change in life or career is hard. Visualize why you're going through the pain. Know what you want to achieve and keep it at the front of your mind. It will make the tough stuff bearable and the successes incredible. Write it down, make a poster, tell your friends—just get it out there!
Having a clear end game will help motivate you through the bad times.
I was finding learning Python really hard and was seriously considering giving up, but I just kept visualizing how it would be when I completed my goal, and this kept me going. Last week I successfully wrote my first Python program. It felt awesome! Without being able to visualize my end goal, I don't think I would have been able to do that.
2. Find Your Tribe
Know that you're not alone. Even if no one you know is learning to program or has been through the pain before, plenty of other people are. Seek them out and create your own support network to push you forward.
I'm lucky in that my partner is also learning to program, so we are able to be there and support each other through it. We help each other out. Also, at times, it adds in a competition element that makes us want to prove we can do it and drives us both to be better.
3. Take Breaks
One of the biggest mistakes I have made in the past is not taking breaks when I feel frustrated. It's often made me resent the thing I was trying to do and took the fun out of learning.
If something's not working for you one day, leave it. Come back to it in a few hours or days when you're in a proper headspace and try again. Don't feel like you have to keep going till everything is perfect.
Also don't feel like you have to know everything; that's what the internet is for!
Remember that it’s going to be a long journey. Don’t beat yourself up if you can’t make something work the first time. (If you can make it work the first time, I kind of hate you a little bit right now.) Even the experienced coders I follow on Instagram are always talking about the mistakes they make each day.
Also, remember that you’re doing this for a reason, and you can do it! Apologies for the cheesy phrases, but believe, and you can achieve! #sorrynotsorry
About the Author
I'd love to hear about your journey and the things you’re finding most useful and inspiring. Let me know how it’s going in the comments. You can also follow my progress on Artificially Intelligent Claire.