Required Reading: Toby Matejovsky

By

image

Name: Toby Matejovsky (@tobym)
Class Taught: Intro to Scala

Toby started programming in high school by teaching himself how to make a website and taking a class in C++ (which he used to write programs to help with his calculus homework). Prior to working at an incredibly talented ad-tech startup, Toby wrote some interesting command-and-control software in C++ with a big defense contractor, and later built and scaled a job search website in Rails with a small startup. He currently uses Scala to create a blazing fast real-time advertising system that handles billions of requests per day.

Here are Toby’s top resources for learning and using Scala:

  • Code Complete, Second Edition by Steve McConnell – An ageless tome of practical software development tips. This was one of the first programming books I read that helped me become a better software engineer, not just a better developer.
  • Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman – Freely available online, this book will teach you about a wealth of information about programming before you even realize what happened. You will learn how programs actually work at a low level while simultaneously practicing high-level concepts. Re-reading this material after some experience with a variety of programming languages provides a surprising number of “ah ha!” moments.
  • Matt Might’s Blog – A number of articles that usually cover topics like programming language design and compiler implementation. You may feel your brain melt, but it’s worth it afterwards.
  • Oleg Kiselyov’s website – A large collection of articles, papers, and code that spans a wide range of computer science topics from data structures to meta-programming to operating systems.
  • Programming in Scala, Second Edition by Martin Odersky, Lex Spoon, and Bill Venners – The definitive book on Scala. It covers the language in a comprehensive and well-organized way, while also explaining choices that were made in the development of the language itself.
  • The Glossary from Programming in Scala – This provides pleasantly clear definitions for generic and Scala-specific terms that might otherwise be confusing when learning the language.