There’s plenty of resources on individual frameworks, and whilst it’s not necessarily trivial to learn an individual frameworks (ask anyone who’s done a deep dive in to C), programming as a skill extends beyond that to learning how to approach problems. The following is a list of resources that are focused on thinking rather any any one technical skill.

  • Pragmatic Programmer - I have a habit of hitting juniors around the head with this book. An excellent primer to sensible thinking, there’s very little in here that’s not common sense, but really does need laying out in a book. Will revisit, and occasionally hit myself around the head.
  • Beautiful Code - This book is a collection of essays on different viewpoints of “beautiful code”. This is not for those starting out, but for those who have their feet already wet. It challenges preconceptions, especially if you’re used to thinking from the viewpoint of a single framework and single ideology.
  • Seven Languages In Seven Weeks - Melt your brain. Learn how to learn. This hurt more than I would like to admit. This is an excellent book on learning to be adaptable. There are other books in a similar vein “seven databases in seven weeks”, “seven web frameworks”, the idea is to get used to getting your feet wet often and taking on board new ideas and new viewpoints. Some languages were familiar, some were very much not. This is an excellent way to gain a crash course in how to critically learn new languages, and how to discover new programming paradigms.
  • Don’t Make Me Think - At some point, your code will have to interface with people. Don’t fall in to the trap of declaring “I’m a programmer, UX is someone else’s program”, understand the basics of UX and how to look at usability problems. This covers web and (oh, an update) mobile, but the principles are sound.

A few tools are universal. Learn them once and they stick with you, irrespective of what you’re doing.

  • Modern Vim/Learning the Vi and Vim Editors - I was a a happy Vi person for a long time. I’ve now mostly switched over to Visual Studio Code (with Vi extensions), but the premise still holds, get to know an editor intimately, you’ll live inside it. IDEs come and go, but editors are (almost) for life.
  • Pro Git - Learn git properly. Ideally from the command line so you can get underneath its skin when things go a little pear shaped. Which will happen.
  • LEARN SOME SHELL. Powershell, Bash, whatever suits the OS you’re living in. Learn the glue.

Anything below here is general interest - sometimes it’s just nice to know your history.

  • Fire In The Valley - Well written history of personal computing from the 1970s to the 1990s.
  • Digital Retro - Pretty pictures and history of early computers.


Podcasts exist in two groups here - culture/thinking and technology specific. Both are useful, and sometimes they’ll blur the line. I don’t particularly get on with rambling podcasts, I tend to consume podcasts either in the car or whilst running, so prefer there to be a sharp focus to the content.

Culture/Technology Agnostic

  • Hansleminutes - Possibly the best produced current developer podcast available. Interview and topic led each week, content is delivered in a way that’s accessible to a range of audiences. This is general interest, there’s usually something here to suit everyone.
  • This Developer’s Life - The best produced developer podcast. Unfortunately, currently inactive, but their archive is a goldmine. You’ll find an exploration of developer culture in here, looking at what drives developers.
  • Weekly Dev Tips - Short (5 minute) tip podcast. Direct, often features guests. Little bit sized snippets of pragmatic advice, delivered in a friendly and accessible way.

.NET Specific

  • .NET Core Podcast - Interview led, project focused. Strong look at culture, architecture, uses, integrations of projects. Excellent work. Often come away googling the podcast projects.

Posts In This Category