fbpx logo-new mail facebook Dribble Social Icon Linkedin Social Icon Twitter Social Icon Github Social Icon Instagram Social Icon Arrow_element diagonal-decor rectangle-decor search arrow circle-flat
Development

Essential Reading for Software Engineers

Tandem

At Tandem, one of our core values is Continuously Improve. Our software engineers learn and teach every day! Here are some of our team’s favorite books, articles, and other texts that have helped them learn over the course of their coding careers.


Kate: Learn Ruby the Hard Way by Zed Shaw

Learn Ruby the Hard Way was pretty foundational for me. I was so frustrated early in my career because a lot of popular tutorial sites would have you copy and paste code without really explaining what it did. Learn Ruby the Hard Way doesn’t give you any shortcuts, so you really understand the language. It’s very much focused on figuring out the means rather than just the end product. It’s also available online for free!

 

Gwen: Design Patterns in Ruby by Russ Olsen

Reading this book allowed me to start reading (and writing) Ruby code bases like a coherent text, rather than a collection of related sentences. It’s the first book I recommend to any Rubyist who wants to move beyond copy-and-paste understanding of their craft.

ANSI Common Lisp by Paul Graham

Only after reading this book and doing the exercises did I really get recursion/functional programming.

 

Sasha: Learn to Program by Chris Pine

Learn to Program was required reading for DevBootcamp and it was the first programming book I ever read. To me, it feels like the Winnie the Pooh of programming books: it is made for beginners but has lots of core concepts one can go back to for fun and reference.

 

Mina: Practical Object-Oriented Design In Ruby by Sandi Metz

I quote from it almost monthly in discussions about our rails server design; the most used being to be careful about abstracting too much and optimizing too much for unknown future requirements.

The Ruby On Rails Tutorial
The Ruby on Rails Tutorial was fundamental for me when I was teaching myself to code. I would go through the book chapter by chapter, following the code example in the book and then trying to apply whatever concept/feature that it just tried to teach me on my own learning project. I would say it was a breakthrough moment of my learning to graduate from beginner online tutorials.

 

Aji: React as a UI Runtime by Dan Abramov

This article by one of the core React team members isn’t a basic 101 level for people who are looking to learn React, but for folks with React experience looking to get into the weeds about how it works. It’s a great first step if you’re looking to understand the internals and work more closely with the framework instead of merely on the surface of it.

 

Stephanie: Being Glue by Tanya Reilly

I love this blog post/talk slides about “glue” work — which the author defines as non-coding technical work — that helped me better understand how to advocate for myself and my work and navigate the industry as a woman in tech.

 

Cain: Seven Languages in Seven Weeks by Bruce Tate

Seven Languages in Seven Weeks enlightened me to the similarities and differences in programming languages, why some languages are the way they are, and the use cases for them.

The Little Schemer by Matthias Felleisen and Daniel P. Friedman

I recently bought this with my learning budget and I absolutely love the way it goes about teaching recursion and overall functional programming.

 

Chris: The Object-Oriented Thought Process by Matt Weisfeld

When I first read this in my earlier years of programming it really helped to drive home various OO concepts.

Debugging Teams: Better Productivity through Collaboration by Brian Fitzpatrick and Ben Collins-Sussman

It’s a short read, but presents some interesting insights around collaboration.

 


Do you want to work with a team of software consultants who help you learn every day? Check out our Careers page to see our open positions!

Let’s do something great together

We do our best work in close collaboration with our clients. Let’s find some time for you to chat with a member of our team.

Say Hi