Tiffany Recommends...

This page is an ongoing curated list of resources that I think are really, really good. The list is targeted towards intermediate level programmers who want to level up. I'm going to assume that you already know your way around 1 or 2 programming languages and understand the basics of web application development. If that's not the case and you're brand new to all this, please start here. Otherwise, let's go ahead and get to the juicy stuff.

Resources

Books

  • POODR by Sandi Metz
    • This book was revelatory for me. It will introduce you to the problem of writing production-ready code that's easily changeable and maintainable. Suffice it to say that this is easier said than done, especially when you're dealing with massive codebases and changing specifications!
    • Highlight: Chapter 8 on Object Composition offers a compelling argument for why we should favor object composition over traditional inheritance.
  • A Common Sense Guide to Data Structures and Algorithms by Jay Wengrow
    • I had really high hopes for this book, and I'm glad to say I wasn't disappointed. This is the perfect introduction to data structures and algorithms for folks who don't come from a traditional CS background.
    • Highlight: Big O notation really is explained in the most "common-sense" way imaginable. Jay Wengrow introduces a simplified version of it in the beginning, and keeps refining the concept throughout the book. By the end, you'll be able to compare the Big O implications of competing algorithms and feel like you've been doing it your entire life.

Videos

  • LearnCode.academy
    • Will is a great teacher, and he really dives deep into the inner workings of Node.js and more. You'll learn tons from watching him code.
    • Highlight: Will's series on React and Redux will help you understand how data flow works in the React paradigm.
  • DevTips
    • Travis Neilson is an interaction designer at Google, and he's amazing at css. Watching his videos offers incredible insight into his workflow and process. Travis also talks a lot about the human side of working in tech, and his insights are spot on.
    • Highlight: If you need a refresher on some css fundamentals, Travis has you covered.
  • Fun Fun Function
    • Wow. Just wow. Excellent production values + great teaching. Mathias was a software engineer at Spotify, and actually quit his job in order to work on this show full-time. He has elevated "edutainment" to an art form.
    • Highlight: Mathias dives deep into prototypal inheritance in Javascript in this series. This is mandatory viewing if you've ever been confused by the difference between prototype and __proto__.

Podcasts

  • CodeNewbie
    • Saran is awesome. Period. She interviews self-taught programmers from all different walks of life. It's also obvious that she strives to be diverse and inclusive in her choice of interviewees, which is so refreshing to see in this field.
    • Highlight: None, because all the episodes are amazing. Just start listening, and you can't go wrong.
  • The Changelog
    • This podcast is a great way to stay up-to-date with what's going on in the wonderful world of open source.
    • Highlight: The interview with Matz, the creator of Ruby, is so so cool.