This post makes only two assumptions:
- You have a computer or tablet (preferably with a keyboard)
- You want to learn how to code
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!
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 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 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.
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.
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?
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.
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.
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.
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.
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.
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.
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.
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