Where to Begin Your Journey Learning How to Code for Absolute Newbies
Published (updated: ) in code.
Once you’ve decided that you’d like to become a computer programmer, one of the hardest things to figure out is where to begin. There’s a huge abundance of resources available online and a newbie coder can quickly become overwhelmed with all of the different options.
Whether you are considering doing a coding bootcamp, self-learning programming on your own, or even potentially getting a degree in Computer Science, the steps below in this article are a good place to start to prepare you before diving deeper into more complicated courses and/or programs.
This article is geared specifically around web application development (i.e. both front end and back end development), so your own path may need to be slightly different if you wanted to go another route (such as mobile app development). If you talk to a dozen professional programmers on how to start learning to program, you’re likely to receive a dozen different answers. So understand that I’m writing this post specifically through the lens of my own journey over the past 5+ years trying to learn how to code. I’ve made several mistakes along the way, and hopefully, this article will help you avoid the same mistakes I did!
Before You Get Started
A great resource to start off with if you’ve never written a single line of code before, especially if your new to the industry, is the Udemy course: “Pre-Programming: Everything you need to know before you code”.
This course will give you a high-level overview of the industry and teach you different software terms. This is also a great first mental check for you to see if you find the material interesting and want to keep learning more. If so, you’re likely in the right place to keep going and diving into programming deeper! Or, if you find material dull and boring, maybe software engineering isn’t for you. Better to find out now before spending hundreds of hours or more studying.
Udemy Pro-Tip: You can typically find huge discounts on Udemy courses and you should never pay more than $10-20 USD for any specific course. If you don’t see the course above heavily discounted, try viewing the link above in an incognito window and/or a different browser.
Codecademy and Treehouse
If you’ve never sat down and done any coding before, one of the most important things to learn is some basic programming syntax, that is, some of the basics of how the language is written. Many online courses will start you off learning the command line and/or installing a bunch of different programs on your computer. The problem is if you’ve never done any programming before at any level, simply installing a bunch of applications via Terminal can get overwhelming quickly, especially if you run into any errors during the installation process and you don’t have any experience yet doing any debugging.
My recommendation is to hold off from immediately diving into using the command line if you have zero experience. Instead, you can start learning some basic syntax and some core components of programming such as loops, variables, and functions directly from courses via the web.
Codecademy and Treehouse both have their own built-in command line applications as well as their own built-in code editors. The benefit of this is you don’t need to install any applications on your local machine (i.e. your personal computer) to get started. You can simply create an account on either of those websites and use their built-in tools directly from the browser.
With Codecademy, the free version is sufficient to learn some of the basics, so I recommend starting there. Once you’re done with Codecademy, I recommend signing up for the paid version of Treehouse (which is $25/month USD). Treehouse is worth the premium subscription because they have good quizzes at the end of each section as well as code challenges. These quizzes and code challenges are a great way to test your comprehension as you progress through their courses.
What To Learn as a Total Noob
Once you’ve learned some beginning parts of front end web development, and have completed the basic courses on Codecademy and Treehouse, you’re now ready to add more tools to your programming tool belt.
After learning how the command line works, you can now start learning the fundamentals of git and GitHub and to start playing around with your own test repos on GitHub. The command line and git are going to be essential tools for you in your development journey going forward, so don’t skip these steps!
Codecademy and Treehouse are good resources, but they’re sort of like riding a bike with training wheels: you’re only writing code directly in the browser. To get to the next level in your journey to learn how to code, you’re going to need to take your training wheels off and start learning how to write code directly in a text editor and using Terminal to run programs via the command line. I personally code using Sublime Text which has a free trial that never ends (you can click to ignore the upgrade pop-up), but it’ll run you only $80 USD to upgrade and support their developers.
Building Muscle Memory by Coding Along With More Experienced Developers
You’ve done well so far following along the steps above by learning how to write some basic coding syntax and navigating the command line. Since Codecademy and Treehouse have done a lot of hand-holding by having you work with their built-in browser tools, now it’s time to learn how actual coding is done directly in text editors.
You’re not going to completely understand all of the code you’re writing in this stage, but that’s okay. The goal in this stage is to start understanding, at a very high-level, what code looks like as it’s written in actual projects. There are some good online resources on websites like Udemy. I personally enjoyed “Build Responsive Real World Websites with HTML5 and CSS3” by Jonas Schmedtmann as a great way to build upon HTML and CSS knowledge. Then, to take things up another notch, you can do “The Web Developer Bootcamp” by Colt Steele. Another course I haven’t done but that is highly recommended by others is “Automate the Boring Stuff with Python Programming” by Al Sweigart, which has a free book you can read online to follow along with the material.
At this stage, you’re going to be following along to coding tutorial videos, typing exactly the same code in your text editor the same things that the instructor is doing on the screen. You may not understand 100% just yet about what the code does just yet, but you’re building the muscle memory and the habit of typing code in a text editor and viewing your project directly in a browser window.
Don’t worry about building your own projects from scratch just yet. By simply coding along with the instructor, doing some light debugging when my code didn’t work exactly as it did for the teacher, and eventually seeing the project work was a huge confidence boost for me as a newbie developer.
After coding along with the tutorials, you can take the projects a step further by modifying the projects and making them more personalized to your liking.
One other thing I did after finishing courses on Udemy, is I made sure to use my new command line and git experience and submitted all of the projects to my personal GitHub account. It’s important to explain in the repo’s ReadMe file that the project was part of an online tutorial and the code is not your own unique project. But don’t worry if you don’t have the skills just yet to change too much in the programs and/or do your own projects from scratch. Simply learning how to type up code in a code editor and upload it to GitHub via the command line is a huge, important step in learning how to become a developer. Once you get used to using a text editor and uploading projects to GitHub, you’re one step closer to writing and uploading your own projects.
Where to From Here?
Once you finished the online tutorials from places like Codecademy, Treehouse, and Udemy, you’re now ready to dive into much deeper resources.
You may be considering signing up for an online or an in-person bootcamp. Other people may be considering going to get a Computer Science degree if they’ve never graduated from college yet. Or if you’ve already obtained one degree, you can also do a Post-Bacc degree through an online program, such as Oregon State University, Auburn University, University of Colorado – Boulder, or Western Governor’s University.
When you’re ready to progress past the complete noob/beginner stage to become an advanced beginner, there are some good free resources online to take your programming knowledge to the next level. FreeCodeCamp is a good, free resource. Another good, free resource is The Odin Project.
I personally spent a lot of time considering doing a coding bootcamp, and I also did part of both FreeCodeCamp and The Odin Project. None of these options ever stuck deeply enough with me, I always felt like something much deeper was missing. Eventually, I came across Launch School, where I am currently a student, and it’s been a huge game-changer for taking my programming ability to the next level.
I’ll be writing more in the future about my experiences in the Launch School program and why I recommend other students consider enrolling in the program as well.