DEV Community

Felipe Vogel
Felipe Vogel

Posted on • Updated on • Originally published at

Ruby and computer science: a self-learning curriculum

Table of Contents

It's been exactly one year since I started studying part-time to get into software development, and I thought it would be useful to write out my curriculum. I am learning Ruby, Rails, and a healthy dose of computer science. I'm also putting this on GitHub where I will continue to update it, but below is my progress as of now.


Why Ruby?? Isn't JavaScript the obvious choice for web development? Ruby is a good first language to master because its ecosystem is stable, the community is more experienced, and for me Ruby is more enjoyable to write. Not convinced? Read this or watch this.

OK, but why so many books and courses?? Isn't practice more important than reading? Yes, you should be spending more time coding than reading, but starting a project and getting into a coding routine is easy, whereas knowing what to read is not at all obvious at the beginning. Hence the larger space devoted to books and courses here. Besides the obvious reasons to undertake serious study (to learn from the masters, and to spice up my resume), I also simply enjoy knowing how things work under the hood.


  • If you've never written a line of code in your life, you may want to start with the free Learn to Program. I studied some computer science in high school, so I had a bit of a head start.
  • If you are a working adult, make sure your day job is conducive to part-time studying. Last year I was a first-year schoolteacher. That meant hours of grading in the evenings and on weekends, which would have made studying impossible. For this and other reasons I switched to a remote tech support job, which freed up my evenings and weekends (and early mornings, with no commute).
  • Find a system for keeping organized notes, code snippets, and articles/videos saved for later. I use a simple text file (similar to this), which is more effortless than any knowledge base app that I've tried.
  • It's worth dipping into the Ruby and wider programming communities. Here are my favorites:
  • Last but not least, take care of yourself! Studying (especially while working) can easily be overdone. Exercise and get plenty of sleep. If you develop wrist pain from computer use, act swiftly: get an ergonomic mouse and keyboard, do daily RSI stretches, and start using a break app such as Workrave.

So without further ado, here are my recommendations from what I studied. Resources that are free of charge are marked with a star (⭐). If you need more free resources, see the links to other lists at the bottom. You may be able to find the books for free (from your local library or more dubious sources) but be sure to buy them when you can, to support the authors. 🙂

Frontend basics


Meanwhile, computer science

Other programming/CS resource lists

EDIT July 2: updated the links to my blog posts to point to my new blog. ✨ But see this list on GitHub, where I often make additions and update my progress.

Top comments (4)

topofocus profile image
Hartmut B.

Hi Felipe, nice composition.
However, the most usefull indroduction/learing-side is missing

fpsvogel profile image
Felipe Vogel

Thanks! I actually worked through RubyMonk, but it didn't help me as much as The Well Grounded Rubyist + Exercism. But YMMV. I included only my favorites here to avoid an overly long list.

sturpin profile image
Sergio Turpín

Interesting post, thanks for sharing 😉

filatovv profile image
Yuri Filatov

very useful and interesting article, thank you very much!