Reddit Coding Experiment
Reddit Coding Experiment is my effort at helping people who were in a position similar to the one I was in about ten years ago. 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 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).
Below is a list of the videos/posts that relate to this effort. Click here to see the past videos.
Tenets
I have a few guiding principles that I’m consulting. The assumption is that I can most effectively help people who are similar to me. Since I’m familiar with what I needed in the past and how hard it was to actually find it, I’m starting with the following goals.
- Provide a place for people to ask questions and argue - I can’t learn passively. I need to be able to work through what is true and what isn’t about a given topic and verify my assumptions.
- Expose people to new ideas and technologies - Learning how to learn was my big takeaway from my undergraduate experience and this is a great excuse to do that. Also, the tools I was exposed to by mentors still inform my technical choices today.
- Create useful things - This was mobile apps for me. Having something that people can use instills you with a sense of pride that creates a lot of momentum.
I had a friend and a mentor in college who fulfilled these things for me, but it was dumb luck that we even met. I was actually in an Exercise Science program when I first got to the University of Maine and I just happened to stumble upon someone programming. Without that chance encounter I literally wouldn’t be a programmer. Assuming I’m not especially unique, it must be the case that there are people out there who don’t realize programming is an option either.
How does it work?
I have an idea for a structure that will probably evolve.
- One stream a week for 1–2 hours that I’ll announce as far in advance as I can, along with a worksheet for the next topic.
- No mandatory prerequisites or education.
I do offer a Linux Virtualbox image (Ubuntu 18.04 based) that I use on stream as well. If you already have a dev environment that you’re used to then feel free to go ahead. If you’re a beginner and you don’t know where to start then I recommending at least using it at the beginning. I have setup instructions for it here. This should give you everything you need to just start coding.
The tentative agenda for each stream is as follows.
- House Keeping (5–10 minutes) - Go over scheduling and miscellaneous stuff, answer general questions.
- Review - (15 minutes) Go over what we did last time and any follow ups/independent work, answer questions.
- Main Topic (1–2 hours) - Do some coding and answer any questions that come up.
- Wrap Up (TBD) - Summarize everything that we did and answer any questions.
I’m definitely hoping to make it very question driven. I’ll also create a summary page of each stream after it ends with links to the recording, the whiteboard, the terminal commands, and whatever else is linkable. This is an example.
Resources and links
Here are all of the applicable links for social media stuff, subreddits, stream channels, etc. I’ve been using the twitter account for announcements.
- YouTube channel - Should be able to get reminders for the next stream and watch previous ones.
- Twitter account - Used for announcing stream times and sending out links.
- Why am I doing this? - Original summary post.
- Subreddit for help and questions - Any questions off-stream can go here and I’ll do my best to answer them.
- Github account for the stream code - I’ll post all of the code to this repo.
- Topic suggestions - If you have something that you’re interested in learning then use this form to suggest it. The reddit works too. Anything is fair game.