resources
I’ve taken a lot of courses over the past few years as I’ve worked my way into the software engineering world. Some learning materials are a lot better than others. Though most importantly, I’ve found that the best material is the material that I need right now. For example, there may be a brilliant course on Node.js, but if I haven’t grasped the basics of Javascript, that’s not a good course for me, right now. All of that said, this is a list of some of my favorite materials and why I loved them. I started with Ruby, so you’ll see most of my resources are Ruby-centric. The languages/frameworks appear in no particular order. If you’re a beginner and don’t know where to start, this may help you to decide.
Ruby
CodeQuizzes – by Matthew Powers
Format: online worksheets
This is, hands-down, my favorite resource for beginner Ruby. It takes you step-by-step through the basics you need to understand Ruby and gives you a lot of reps as you practice. If you need to get strong in arrays, hashes, and basic OOP, this site just may be your best friend.
Try Ruby for Beginners
Format: short course
Start tinkering with Ruby right away in the browser. No need to set up your computer to do anything fancy for you. Just start to get a feel of how to do some basic exercises in Ruby.
Learn Ruby for Beginners – on CodeAcademy
Format: course
CodeAcademy steps you through the basics of programming in Ruby. This course focuses on data types (like string
vs array
) and how those pieces interact with each other to make meaningful code.
Rails
HTML, CSS, and Ruby for total Beginners – by RailsBridge
Format: tutorial documents
RailsBridge is an organization that pushes for all kinds of diversity in tech: gender, race, sexual orientation, ability, and class. They’ve built a nice curriculum and hold workshops to help you get started. I’m directing you to these two parts of their curriculum just to get you pointed in a direction. Follow the links on the left side of these pages to get through all of the content.
- If making webpages look good excites you, start with HTML and CSS.
- If you’re excited about building the code that powers the site, start with ruby.
Rails I & Rails II – by Pragmatic Studio
Format: video & written course
I came to these courses after completing a fly-by-the-seat-of-your-pants 8-week full-stack web development bootcamp. I was a n00b and quite green in my skills. These courses were excellent for me because they broke down the common processes in Rails into easy-to-understand pieces. They also brought home the learning with repetition of doing the videos, doing the homework, and doing the bonus work. Plus, they have a TDD option. They’re great foundational courses and I can’t recommend them enough for beginners to web development.
Hotwire – by Alexandre Ruban of Hotrails
Format: long-format written turorial
This is a long one, but it is very thorough and really goes step-by step through development of a Hotwire Rails app from scratch. It outlines all of the config you need to do.
Hotwire for Rails Developers – by Pragmatic Studio
Format: video & written course
I appreciate how this course gives you a functioning Rails app (saving you time b/c you already know how to do this) and then steps you through converting it over to using Howtire.
RailsDiff
Format: tool
RailsDiff is an awesome tool to help you with your Rails version upgrades. It lets you enter the Rails versions your upgrading from and to and then shows you the difference between a rails new
of those 2 versions.
Javascript
Javascript and the DOM – on Udacity
Format: course
This course is great if you’re about to embark on learning front end engineering and don’t know anything about selecting elements or extracting values from DOM elements. It uses plain old Javascript selectors and really doubles down on teaching the basics of DOM anatomy. Take this before jumping into any front end framework like React.
Modern JavaScript From The Beginning – on Udemy, by Brad Traversy
Format: course
You want to learn Javascript? This is my favorite course. The instructor is thorough and engaging (which is a tough balance to strike). He covers older JS syntax and ES6, all while explaining how the language works and what you can do with it. I give this course so much credit for leveling-up my Javascript skills.
JS Design Patterns – on Udacity
Format: course
This course is not as thorough as Modern JavaScript From The Beginning is, but it is a nice follow-up that focuses specifically on design patterns. If you’re past the basic “how do I make the javascripts” phase, get better at it with this course.
React
React for Beginners – by Wes Bos
Format: course
I love love love this course. To be honest, I just kind of love Wes Bos, and this course is responsible for my wesboslove. React is a chaotic place for me. Information is stored in so many places and flows around like crazy. Witnessing Wes Bos handle this crazy topic is like watching an Olympic skater land a triple toe loop and make it look effortless. He’s engaging, playful, and knows his stuff. If you already generally know how web development works and know some Javascript, this course will take you from “I’ve heard of React” to “I can work my way through an existing codebase and create some new components.”
The Free React on Rails 5 course – on Learnetto, by Hrishi Mittal
Format: course
This is a great free course to get you started on React with Rails. I had a few bumps along the way with some things not working as expected, but considering that the course is free and otherwise excellent in content, it doesn’t concern me. I work primarily in Rails, so after taking the Wes Bos course above, I liked taking this one to put it in the context of Rails. Also, Hrishi’s a really nice person. He’s working hard to build useful tools for devs. Go say hello to him when you have the chance.
Simple Rails CRUD app with React Frontend, using ‘react-rails’ gem – on Medium, by Lucya Koroleva
Format: blog post
There are a couple of ways to implement React with Rails. This post does an excellent job of walking you though how to do it with the react-rails
gem. If you have a grip on the basics of Rails and React, this is a nice capstone to give yourself some perspective on the gem implementation.
React the Complete Guide including Redux – by Maximilian Schwarzmuller
Format: very long course
Vue
Vue CLI – by Mike & Nicole of Pragmatic Studio
Format: course
This is great for dipping your toe into Vue before doing further reading or courses. It’s a nice overview where you get to see some basic components take shape. It won’t take you from 0 to expert – not by a long shot. But it will take you from “I know kind of how React works” to “ah, Vue is a lot like React but has some subtle differences”.
A Single-Page App with Vue.js and Rails – by Mike & Nicole of Pragmatic Studio
Format: course
This course is fast-paced and designed for people who 1) already know how Rails works and 2) have a concept of how a front-end framework works. In the course, they weave together a Vue front end with a Rails API, walking us through how the pieces all talk to each other. I picked up this course since I just started working in Vue at work and it has paid off immediately.
ML & AI
ChatGPT Prompt Engineering for Developers – DeepLearningAI
Format: video tutorial
Good for experienced developers following along in Python (or in your language of choice).
Generative AI vs Traditional AI – linkedin learning
Format: video lecture with quizzes
Nice primer for AI and LLM terminology and concepts. No coding skills necessary.
Git (Version Control)
GitHub for Non-technical Roles
Format: blog post
Though you’re going to need to learn how to use version control (and most likely, git), getting a gentle explanation before trying to get through a tutorial sure doesn’t hurt. This is also great to share with Designers and Product folks.
Learn Git Branching
Format: interactive tutorial
This is a great tutorial where you step through exercises using git version control, learning one little concept at a time.
git - the simple guide
Format: blog post
I like this resource because it steps you through each basic concept one at a time.
Git Cheat Sheet
Format: cheat sheet
Database
SQLBolt
Format: tutorial
Lots of great SQL examples and exercises here. If you’re working in Rails’ Active Record and think you don’t need to know straight SQL, think again. Getting your SQL basics (and not-so-basics) will make you a better designer and make your queries less expensive.
Mode’s Sql Tutorial
Format: tutorial
Lots of great stuff here, complete with explanations and access to a database to practice your queries.
SQLZoo
More SQL exercises
SQL Murder Mystery – by knight lab
Format: interactive tutorial
Solve a murder-mystery whodunnit by querying a database to see who was where and when.
Select Star SQL
Format: interactive tutorial
An interactive book which aims to be the best place on the internet for learning SQL. It is free and helps you learn by running queries against a real-world dataset to complete projects of consequence.
Intro to Elasticsearch & Searchkick
Format: blog post
If you’re new to Searchkick and would love to see an explanation of what in the heck it actually does, this post does a great job of breaking down Searchkick, Elasticsearch, how indexing works, and a basic comparison (with drawings!) of relational dbs vs document dbs.
CSS
CSS Grid Layout Crash Course – by Brad Traversy
Format: video
This walks you through 3 different ways to use CSS grid.
A Complete Guide to Flexbox
Format: reference guide
Flexbox Froggy
Format: short interactive tutorial
Testing
Intro to Rails Testing – by Scott Maslar
Format: tech talk
When I first started learning about testing, I didn’t really get it. It seemed redundant and weird. I wish I had heard this talk back then. I really like how Scott gives examples of each type of test and explains what the goal of the test is and what tools we can use to accomplish it.
RSpec Cheat Sheets
Format: cheatsheet
Deeper Learning in OOP
The rest of the resources in this section are better for people who have moved out of the total beginner phase and are seeking a deeper understanding of Ruby.
Nothing is Something – by Sandi Metz
Format: tech talk
I watched this talk after about 2 years of working in Ruby. At the time, I had been going back to my old apps and refactoring them with Rubocop suggestions. I bumped into a problem where Rubocop was complaining about some syntax which ultimately illuminated a design problem. This talk was my first foray into design patterns and I revisit it frequently to remind myself about seeing problems in a different way.
Practical Object Oriented Design in Ruby – by Sandi Metz
Format: book
I read this book after working in Ruby for a year. It was challenging at points, but overall I felt like it boosted my understanding of Ruby and object composition 100-fold. The content was very accessible to me and I recommend it to anyone who wants to get a better idea of how to write Ruby in an intentional way.
Design Patterns in Ruby – by Russ Olsen
Format: book
I came to this books after about 3 years of working in Ruby. I just started (and haven’t finished) it yet, but yowza, so far so good. I’ve already picked up some new ideas on how to build cleaner apps. (Shout out to Ariel V and Erica L for the recommendation)
Confident Ruby – by Avdi Grimm
Format: book
Similar to the one above, I came to this books after about 3 years of working in Ruby, and I just started (haven’t finished) reading it yet, but so far the ideas are really inspiring. (Shout out to Leslie K for the recommendation)
Career
SkillsEngine Career Mapper and Interview Question Prep
Format: online tool
SkillsEngine uses a robust proprietary skill library and AI to build surprisingly useful(!) tools that can help you plan your career and ace your next interview.
STAR method
Format: blog post
Using the STAR method to answer interview questions and to help you craft your resume and cover letters.
25 Behavioral Interview Questions
Format: blog post
It’s best to not be caught off-guard by questions at an interview. While it feels impossible to prepare answers for every question out there, getting comfortable with these 25 will rocket you ahead of the pack.
If You're a Beginner
Yay! How exciting! There are so many ways to start. I recommend starting with the one thing that excites you the most and staying focused on that until you understand it just well enough to move on (no need to be an expert yet). I find it is useful to start a side project. It doesn’t have to be a grand plan. Just something that solves a particular situation for you personally. Want to make a map with all of your neighborhood cats on it? Do it. Want to make an app that notifies you when new sci fi movies are playing at your local theater? Do it. If your local drama club really needs to have an inventory for sets and costumes, build one! Feeling silly because you kind of want to build a “Today I Learned” app everyone builds one app? Who cares! Do it anyway because it excites you! Think about a problem you want to solve and what approach you’re drawn to first.
- if you get excited about making a user experience (UX) better on a website, start with HTML, CSS, and Javascript (Tip: Javascript and Java are not the same)
- if you like to build the foundation of a smart, well-designed website (maybe it is or consumes an API or scrapes data from the web) and let other people make them pretty, start with a programming language like Ruby (and the Rails web framework) or Python (and the Django web framework)
- if you obsess over data and what could be rendered with it, start with SQL and NoSQL database design
- if mobile app development excites you, start with Golang (i.e. Go)
You absolutely don’t need to “go big or go home”! Start small. Do the smallest thing you can and then high-five yourself. Every app is built of hundreds of small things. You’ll get there.
And remember you don’t have to do it alone! (most people don’t, btw 😉) Find a local tech meetup, slack team, or discord server and start connecting with other people. You’ll find that lots of folks generally like helping people. I’ve enjoyed a lot of support and camaraderie from my time spent with my tech groups.
Back to top