The purpose of this guide is to teach programming and Javascript to some friends and comrades in the quickest way we can. I'm a self-taught developer who learned in about 3 months of study. After teaching myself programming, and a short work period doing QA (software testing), I was able to get full-time web development clients and learn even more as I worked. I've now worked with 4 or 5 start-ups, have 1 large open source project and several large side projects I'm proud of (hopefuly launching soon).
Our goal is to begin making revolutionary apps as quickly as possible, and keeping things from getting boring. We'll skip most of the "low-level" and get right to "high-level". Low-level means 1's and 0's, the core math behind how computers work. High-level means using easier programming languages and tools to make things work easily without heavy lifting.
You need to look at a lot of example code when you learn to program, which is only possible when you know how to read it. We'll simply learn how to spot a "function", "string" or "array" here. Nothing fancy. The goal is we can loosely understand the code we read, even if we can't write it yet. Then we'll meet JSON (JavaScript Object Notation ;)).
In 2017, apps or games that don't have some online component are lonely experiences. Most programming courses develop offline apps, like calculators or to-do lists, with no online component. Lets learn how to talk to other apps on the Internet right now. We'll see our friend JSON here too.
Funny story, when my friend finished their 4-year university Computer Science degree, they did not know how to use Git. Git lets us save our work so we don't lose it after mistakes, but also collaborate on code together. Nearly every software project uses this.
React.js is simply the hottest thing in web development right now. It's enorously in-demand, and enormously powerful and fun to use. We'll make a very simple app that connects using REST to get data, then we'll push our first app to GitHub (via Git). Don't worry, we'll use a starter-kit and some great tools istead of starting from scratch.
Now that we can make websites that connect to APIs to get data, we'll make an API of our own.
React Native is the React your know and love (from above), but it runs on iPhone and Android. "Natively". That means it's super fast and feels (and literally is) just like regular apps. Our React Javscript code transforms into regular iPhone and Android code automatically. So by learning React we can makes apps on at least 3 platforms (with a few changes of course).
We'll learn to deploy our front-end (React) and back-end (Node) apps to web servers for cheap (or free!). This process used to involve lots of terminal (command-line) knowledge, but not so much any more.