A code blog


Roadmap Index


Environment Setup

The first step on your journey is going to be setting up your environment. Normally I hold my students hand all the way through this process. One thing I've noticed so far is that small issues always pop up. It's easy for students to get massively derailed by things that I take for granted on a day to day basis. Just know that you have my empathy. If you are already beyond this point in your journey then that is wonderful, but so far a number of my students have started close to ground zero.

The Unix Elephant

I talked about this in the considerations entry, but I want to expand upon that here. I have all of my students use unix for their development tasks and projects. The lucky ones have a mac of some kind already and can just use that. The nerdy ones install linux and do their own thing. The most unfortunate of the bunch have to use windows and go through the pain of installing WSL and a linux distribution. I say unfortunate not because I'm hating on windows. Every single student that has had to do this without already knowing linux has found it to be a frustrating and error prone process.

You may question why I then have my students go through the trouble when they could just use node and VS Code on windows and focus on app building. The short answer is that every single company I've worked for has handed me a macbook on day one. I want my students to be ready for that type of experience and not be confused/intimidated by unix. Yes, there is some pain at the beginning. Once you get past this however, every command you type in the terminal becomes compound interest. By the time you finish your second project you will be comfortable with the tools. Eventually it will be a secondary concern, and when you get that first job and someone hands you a macbook, you will be better off.

During this process you learn all about unix commands and how environments work. You have to learn about bash, profiles, the PATH, package managers, etc. It's honestly and legitimately overwhelming. You should keep this in mind when deciding whether or not to listen to me. My students have the benefit of my direct and full attention, so they can have me hold their hand through all of this pain. You don't have that luxury here, and if you are doing this all alone, it may be frustrating for you. I definitely recommend that you do whatever you need to in order to make progress. If that means you don't use unix, then don't use unix.

Actual Stuff

Okay, now to the actual stuff. Here's a quick checklist of the things you need to have ready to go for this journey.

Pretty short list all things considered. Using just these things you can build any application your heart desires, and deploy it to every single platform in existence (okay, that's probably a stretch). I'm not going to hold your hand on installing these things, but I will do you a solid and recommend a good option for different operating systems, as well as some alternatives to look into for the tryhards out there.


Worth Considering

Ask me questions on twitter or email me at ty@tytr.dev