Programming Languages

Depending on your situation, you may or may not have the luxury to take a structured approach to learning a new language. There are a few great books that introduce you to the basics and teach your programming in general. The books I list below go beyond the very basics, although they may include some important fundamentals.

  • Effective Modern C++ by Scott Meyers is arguably the most useful book on programming I have ever read. I studied it while learning C++ basics, and could absolutely see the quality of my code improving. Conversations quickly moved from "how to somehow get the job done" to "how to get the job done properly", without wasting any time.
  • Effective Java by Joshua Bloch serves a very similar purpose for Java as Effective Modern C++ does for C++. I love that the book contains lots of puzzles that will undoubtedly cost you many nights of sleep. I cannot overstate the effect the "Concurrency" chapter has had on my thought process when developing concurrent applications, regardless of the language.
  • I highly recommend Python Tricks by Dan Bader if you're looking to take your Python to the next level.