All Posts

Learn to Code in 2020

Prerequisites

This post makes only two assumptions:

  • You have a computer or tablet (preferably with a keyboard)
  • You want to learn how to code

Introduction

It’s hard to imagine my life without writing code. There are also few things in life as game changing as learning how to code. If you’re reading this article, I guess it’s safe to assume you are interested in learning some code?

I have great news for you! The barrier to entry into the world of development has never been lower.

Some aspects of this article may not be immediately clear if you are 100% new to this world, and that’s ok!

It’s Not Necessarily Easy, But You Got This

Nowadays, there is a myth that programming is “easy”. I want to dispell that. Coding is a skilled trade, and like any other skilled trade, it takes time to develop competency. This does not mean that it is impossible to attain. I truly believe anyone can learn how to do it.

The reason I make this distinction is that I also believe it’s harmful to label something as easy when it’s something that people are inevitably going to struggle with. And struggle you will. Just remember — you got this!

The Building Blocks of the Web

The landscape of web development is made up of a few basic parts. Don’t worry about fully understanding and memorizing the below definitions. I simply want to establish a little shared vocabulary for the context of this article and so as you are exploring some of the resources mentioned in this post, you are not hearing them for the first time.

HTML

HTML is what is called a “markup languages”. To draw a comparison to the real world, HTML is like the components of building a house like the wood and sheetrock. You use it to build out the structure and contents of your page. Such as saying you want an image followed by three paragraphs of text.

You will find many familiar constructs to modern word processing such as ordered and unordered lists, tables, and font / text formatting.

This is where your journey will begin and you can get almost immediate satisfaction of building things after just a few minutes of study.

CSS

If HTML is the wood and sheetrock that make up our walls, then CSS is the paint and the decorations. Short for cascading style sheets, CSS is the specification that defines what each of piece (called elements) of your HTML looks like. For example, colorin text blue or centering an image in the middle of the page.

CSS and HTML go hand-in-hand and you will likely be exposed to both in most web related tutorials / learning resources you pursue.

JavaScript

JavaScript is the “action” of the web, as well as other points we’ll discuss shortly.

To keep with the house analogy. JavaScript is what causes your lights to come on when you flip the switch, or causes your washing machine to begin washing when you press a button. On the web, it functions in a very similar way.

When you are scrolling on FaceBook or Instagram and supplied with an infinite feed of content that keeps loading, this is JavaScript at work. JavaScript can also be used to create entire web applications, games, Android or IOS applications, and even desktop apps for your computer like Spotify.

So where do I begin?

Let’s start by establishing that not all programming is the same. Like our previous construction analogies, building a bridge and a townhome both share a lot of simularities but are also vastly different and have their own experts of the discpline. Someone working on 3D game for a gaming console or PC will often use different technology and technique than someone creating mobile applications like FaceBook Messenger or someone building web apps. What is it that calls to you?

For Web Developers

Do you like the idea of creating highly interactive web applications and websites like you see with companies like Amazon, Walmart, FaceBook, or Twitter? For an aspiring web developer, there can truly be no better starting point than FreeCodeCamp.

FreeCodeCamp, as the name suggests, is a completely free coding bootcamp supported by donations. It has thousands of guides, exercises, projects, and even certifications you can earn to spice up your resume looking for your first development job.

This is why I suggested that understanding the vocabulary above 100% is not necessary at this phase, because this is precisely where FreeCodeCamp will drop you off. You will begin with interactive exercises that thoroughly explain and build at a gradual pace starting with “What is HTML?” leading through CSS and eventually JavaScript.

FreeCodeCamp is a fantastic platform, but to name a few of my favorite aspects, you will find:

  • Interactive exercises that allow you to say “I created something with code” literal MINUTES after signing up for the site.
  • A welcoming community spanning multiple social media, chat, and code related websites where support and help is readily available
  • A spring board that you can use to branch into any discipline of programming or IT work
  • Hundreds, if not thousands of hours of free content on YouTube from entire courses to project based tutorials that will teach you to build a specific thing like a calculator or a tic-tac-toe game with an AI opponent.

For Game Developers

Does the idea of creating a new world that did not exist before like your favorite video game sound like the worlds best job? Then you’ll be happy to know, like web development, this has never been easier.

For people wanting to make games that run in the web browser, as mentioned above, the same JavaScript taught at FreeCodeCamp can be used to create both 2d and 3d games. I would still recommend you start there. There are a finite number of things a programming languge can do such as looping 5 times, and things you learn will transfer over.

If you are interested more in 3D games being delivered to a PC or a gaming system, there are a lot of great engines such as Unity, Unreal Engine, and Godot.

I am not a game developer, so I am not qualified to help you weigh the pros and cons of each engine, and the technologies that power them. For example, with Unity you will likely use C# and with Unreal it would be C++. What I recommend in this regard is to pick the engine that is behind some of your favorite titles.

Whatever your choice of those three, and there are others, there is a huge community available and no shortage of official and third party content availble to help you learn.

For Mobile App Developers

Do you think the cell phone and it’s ultimate swiss army knife functionality is one of the best inventions of modern time and want to create that next big app?

Forgive me, I probably am beginning to sound like a broken record, but FreeCodeCamp for the win again.

Like the examples above, Android development uses one series of technology and IOS development utilizes a different and requires a Mac. You absolutely can become in expert in what is called “native development” using these platforms. There is likewise a huge community and tutorial network around those technologies as well, however, JavaScript can do the job.

For mobile apps, I recommend following FreeCodeCamp up until you learn a framework called React. You don’t need to understand what a framework or what React is right now, just keep the terms in mind for when they are re-introduced later.

In my honest opinion, this is the most friction-free way to start deploying to both IOS and Android devices.

Having Doubts?

Firstly, if you’re reading this, you’ve already made it further than 90% of the people who will land on this page. Pat yourself on the back and let’s put your worries to rest.

In the industry, we call those feelings “imposter syndrome”. The idea that you can’t really be a developer because you aren’t “one of those people” for whatever reason. Maybe you are bad at Math, or don’t consider yourself “computer literate”. Let me be clear — Programmers are not geniuses. We are just normal, average people who have spent a lot of time learning a trade, and a lot of the time we still have no idea what we’re doing. You can learn to code.

Conclusion

I intended to post this when everyone was hyped and happy for the new year and new decade. A new decade feels especially like an even huger opportunity to start something anew. But life happens and here we are getting finished on a lunch break on the last day of January.

That said, it helps me to segway into a final point. It’s never too late to learn to code. Maybe you have a different career, that’s ok, I don’t even work professionally as a coder. You may be 14, or you may be 86, that doesn’t matter anymore than what you do for a living. Nor does whether or not you went to college.

Best time to start is right now by doing the following:

  • Find a learning medium like FreeCodeCamp that clicks with you
  • Spent a consistent 1-2 hours studying every day. Consistency will do more for you than long hours and cramming
  • When you get stuck, raise your hand and ask for help
  • Keep an eye on this blog for tutorials ranging from beginner to advanced