Have Projects In Mind When Teaching Yourself to Code
Published: 2020-03-17 00:49:58

Though I have a VERY long way to go in becoming a good programmer, I feel my progress teaching myself to code has exceeded what the average beginner achieves in a similar time frame.

While you could argue that I could have learned more in this time, I think it's at least safe to say I've put in more time over the last few months than the vast majority of other people on a similar journey (many 12-18 hour days).

In this article, I want to talk about how I've managed to stay focused on learning and coding almost all day every day for the last few months.
<h2>Yes, Not Everyone Has As Much Time to Invest</h2>
Yes, I'm aware not everyone has as much time to invest in learning to code. I've fortunately set myself up over the last few years by creating low maintenance websites (WordPress sites that didn't require any real programming knowledge) that generate enough monthly revenue that I feel comfortable taking time off to learn a new skill. I've also drastically cut down on my spending.

This article isn't necessarily about spending all day learning to code. Instead, it's about finding the motivation to stick with it when the initial excitement wears off.
<h2>Have Real Projects In Mind</h2>
Whether spending 12-18 hours a day or just a couple hours a week learning to code, I think it's extremely helpful having projects in mind that you want to build.

As you learn the basics of your programming language, start thinking of simple projects you'd like to use yourself. If you can't think of anything unique, try to recreate or even improve an existing tool.

My very first JavaScript coding project was a recoil calculator for a <a href="https://gunpros.com/" target="_blank" rel="noopener noreferrer">firearms review website</a> I've run for a couple of years. While I figured out how to implement the logic in a text editor, I didn't actually know how to implement it on a website... so I ended up <a href="https://gunpros.com/recoil-calculator-charts/" target="_blank" rel="noopener noreferrer">making it</a> with a WordPress plugin.

Despite not using the code I had written, I was hooked and wanted to learn how to build a full website 'from scratch.' This led me to learn React &amp; <a href="https://nextjs.org/" target="_blank" rel="noopener noreferrer">NextJS - "The React Framework."</a>

Aside from shooting firearms, video games are one of my favorite ways to <span style="text-decoration: line-through;">waste time</span> have fun and relax. I've always wanted to create a website to do with gaming and eSports, so I started working on individual tools in that space.

My first project was a very simple sensitivity converter that allows you to find the <a href="https://calculatorandconverter.com/video-games/mouse-sensitivity-converter" target="_blank" rel="noopener noreferrer">same sensitivity in a different game</a>. It's not going to change the world, but it felt great to code and release my first useful project to the world after around a month of learning.

<img class="aligncenter wp-image-56 size-full" src="http://killiantmcgrath.com/wp-content/uploads/2020/03/Mouse-Sensitivity-Converter-Example.png" alt="Mouse Sensitivity Converter Example" width="844" height="331" />

Since then, I've continued adding additional tools to the website and am in the process of building an event organizer that helps users find eSports match streams and tournaments, starting with the game Counter-Strike: Global Offensive (CS:GO).

With the goal of creating a functional and useful gaming website, I've been able to maintain my passion for learning and writing code.
<h2>Learn By Doing</h2>
When I started doing online coding courses (<a href="https://www.codecademy.com/" target="_blank" rel="noopener noreferrer">Codecademy</a> and <a href="https://codewithmosh.com/" target="_blank" rel="noopener noreferrer">Code With Mosh</a>), I took diligent notes in Google Docs. As I tried to progress, it was incredibly frustrating to forget what I'd learned and constantly having to look over my notes before writing any code.

Beginning to work on real projects forced me to repeat what I'd learned and write code without a guide.

Initially, this was a huge struggle, but it led to me memorizing core concepts and learning how to efficiently search for coding answers on Google.
<h2>Final Thoughts</h2>
Weeks 3-6 of learning to code were a huge grind for me. If I hadn't begun working on real (yet simple) projects that interested me, there's a good chance I'd have given up.

Think of a project you want to build, search Google for project ideas, or expand on projects you're learning to develop in online coding courses.