Becoming an app developer (especially for web) has never been more accessible. There are now countless (nearly) free resources online that will guide even total beginners towards understanding how to use all the hottest app-building technologies, from React to GraphQL to Serverless.

I've been mentoring some folks on learning to code this past summer and have found a set of tutorials I think are really great for beginners to get started. These tutorials are mainly aimed at getting someone ready to be a modern web developer. They focus on things like Javascript, HTML/CSS, mySQL, React, GraphQL, and NodeJS. So if you are interested in learning to building mobile native apps (for iOS and Android) or backends in Ruby or Python or GoLang or a dozen other options, this set of tutorials is likely not the best.

Learning the basics

The first place to start is Code Academy, which has an incredible set of online learning materials for how to code. Many of the materials are free, but a couple require paying for Pro membership. It's not too expensive and totally worth it, so I'd recommend getting it. Here are the links to the courses to do (in roughly this order):

HTML Basics: HTML gives you the building blocks of a web page. Use it to make sections, images, buttons, and so on.

CSS: This is the web decorator--making your HTML objects look the way you want them to look.

Javascript Part 1: Want to make your website interactive? That's what Javascript helps you do!

Javascript Part 2: Learn more about making your website interactive.

Javascript Part 3: Learn EVEN more about making your website interactive.

React Part 1: The modern way of building websites is using Javascript to create HTML objects on the fly. Confusing? Yes. But once you get a hang of it, it's amazing.

React Part 2: More React, more awesome.

NodeJS Part 1: Javascript started out as code you have run in the browser to make a website more interactive. The server part of the website was written in other languages. But then NodeJS came out: Javascript that runs on the server. So now you could make your entire app using just one language. Awesome!

NodeJS Part 2: More server side javascript.

SQL: You probably will need to use a database to save your app's data (e.g., user details, orders, events, etc). Most likely you will use a database that uses SQL as the language to write data and get data.

SQL (but more fun!): This SQL tutorial isn't Code Academy, but it's really funny and quirky. Highly recommended.

Git: One of the coolest tools developers use is Git, which manages different versions of your code. As you build and collaborate, Git will keep everyone in sync and allow you to roll back changes with ease.

Getting your computer ready for coding

Now that you've gone through the browser-based tutorials from above, it's time to start coding on your computer! There's a few things you need to install:

VSCode: When you write code, you will use some kind of text editor. VSCode is the most popular one out there right now--and the most awesome.

NodeJS: To run javascript on your laptop, you will need to install NodeJS locally.

GitKraken: Awesome, free Git client.

MySQL Workbench: You will likely run a mySQL server. Use the Workbench to connect to the database from your computer.

Learn Apollo graphQL

We are going to do two tasks next: (a) Help you build your very first app on your computer and (b) learn Apollo GraphQL. Apollo GraphQL is what all the cool kids are now using to handle the conversation between their front end and backend.

The Apollo team has made an extensive tutorial that walks you through the steps of building out a new React app with NodeJS and Apollo. You can find it here: https://www.apollographql.com/docs/tutorial/introduction

Learn Serverless (Google Cloud + Firebase)

Now it's time to build an app that you can deploy to the world. The friendliest tools I have found are Google Cloud's Firebase. You can find all the tooling here: https://firebase.google.com/docs/web/setup

What is missing is a step-by-step tutorial on how to make a Firebase app with GraphQL. Stay tuned for future blog posts for that!