Reddit Coding Experiment
Reddit Coding Experiment
This post will be the raw notes for the initial setup of this reddit coding experiment. For some background, here is the original post that I made on Reddit.
I’ve been a dev at Amazon for ~6 years now and I’d like to start paying it forward a bit. I’m trying to reach people that are more or less in the position I was in about 10 years ago — playing way too much video games, not having a clue about where I’d be in the future, and never having been exposed to programming.
I recently stumbled upon some good advice that boils down to helping people who want to be where you are. Would there be any interest here (or perhaps, somewhere else) in learning to code via something like Twitch/YouTube live? My current thought is to do something around front end development (React in particular). For me, I needed to be able to speak and argue with people when learning so I’d like to try and provide that for others and doing this via stream seems like it would be the most accessible to people (and the recordings could help more people as well).
The Plan
The north star here is going to be “helping people like me 10 years ago”. I can’t say I’m an expert in teaching and I don’t know what schools are offering, but I do know what I have to do every day as a Software Development Engineer at Amazon and I know what I needed to help me get to this point. I needed a few things:
- Someone to argue with and ask questions to.
- Some sort of structure to make sure there was always a “next thing” to learn.
- Someone to expose me to new tools and technologies.
I don’t think the goal should be a bucket list of curriculum either. Given my experience over the decade, I think learning how to teach yourself is the only goal that makes sense. I didn’t learn anything that I do on a day to day basis in college, but I had a mentor who emphasized the process of teaching yourself and that paid off really well.
I’m going to start with a front end focus. I’m thinking it will be a project based on React and TypeScript and I’ll be recommending a Virtualbox Ubuntu instance with Chrome and VSCode. Something simple like a todo application seems like a good first stab. I’m picking this for a few reasons.
These are the tools I’m picking for this project at least at the start.
- Linux/Virtualbox - I love Linux and I have no idea how people develop on Windows. I would be out of my element trying to troubleshoot issues there.
- React - This is the most popular front end library today and one of my favorites.
- Git - This is used on every single project that you’ll ever do until someone dethrones it.
- TypeScript - I love types and TypeScript has been excellent in my experience. I think it really makes a big difference when working with JavaScript.
- VSCode - Microsoft has done a great job with this IDE and its the best experience for TypeScript.
Here is some of my reasoning.
- I enjoy front end development the most.
- I use Linux and I have no idea how people develop on Windows.
- I’m more familiar with front end development than any other area at the moment.
- I’m anticipating a lot of bumps in the beginning of this process.
I also suspect that people will have a lot of practical questions about day to day life as a programmer, making the interview, salary, self teaching, and more. I’m proposing a rough agenda for each session.
- (~10 minutes) Introduction and setup - explain what we’re doing.
- (~1–2 hours) Main project - do the thing I said we’re doing a minute ago.
- (?) Parking Lot - answer any miscellaneous questions.
The Future
Nothing is off the table. I’m not sure exactly how this will evolve but here are some of the things that were really helpful to me, in the order that they were helpful in.
- Linux (installing, playing with, configuring, etc.)
- Mobile development (Android in particular)
- Data Structures and Algorithms
- Functional Programming
Setup Details
- Install Virtualbox.
- Download and install the VM.
- Open Virtualbox
- File -> Import Appliance, select the downloaded .ova file.
- The password is
coder55
.
- Make an account on Github.
- Follow this account to find out about stream times.
- Bookmark this page for a list of all the posts related to this code teaching experiment.
If you know what a sha256 is you can verify the download. If you don’t know what this is then don’t worry for now.
d1562b89f37412b21b7b09d62e6b86ff698f75a7922d56a56bebbc988da7f6c3
Here is the worksheet for the first session. Nice and simple.
Troubleshooting
Here are some issues that people have been running into.
Not in a hypervisor partition (HVP=0) (VERR_NEM_NOT_AVAILABLE)
Looks like it’s related to not having enough RAM. I set the VM to use 4 gigs of memory so if you only have 4 then you might run into this. Fortunately, you can easily adjust this setting. Here is a screenshot using Virtualbox 6.