Technical writing can be broadly categorised three ways – introductory, reference and developmental. Introductory writing is about introducing the reader to a new subject, hand holding them through the initial steps, and generally taking some of the pressure off learning a new skill. Reference writing is an in-depth look on a particular subject, usually packed full of detail after detail, and can be somewhat dry. Developmental writing is about challenging the reader’s understanding, asking them to work outside of their comfort zone to gain a deeper understanding on a given subject or skill.
7 languages in 7 weeks firmly falls in to the third category. This is designed as a time-pressured tour of seven quite-different languages over a short period of one per week. This is not about building a “hello world” application, nor is it about spending a significant amount of time studying a given language’s string formatting parameters. It’s about being able to grasp new ideas quickly, adapt to new syntaxes and new approaches, and them apply them to take advantage of complex problems, such as the four colour map or solving sudoku.
In short, it’s a mind f**k. Expect at some point to be rocking in the corner, crying softly and asking for your mommy. My personal breakdown point was the last day of Haskell.
Seven languages over seven weeks is a tough call, but you don’t need to maintain this kind of pace. I’ve had this book on and off my go pile for the past year – in a quiet period I would go back and do the next week’s language. It worked for me.
Personal highlights were playing with Prolog and Erlang, two languages radically different to those I’ve used before. Prolog has stuck with me as something that could be genuinely useful in day to day work, there are implementations designed to be used alongside procedural and oo-languages and I can visualise quite a few use cases already. Haskell I was already familiar with from my uni days, although the approach taken in this book was more aggressive and enlightening than the approach given at uni. I feel as if we covered a whole terms worth of work in the three day period.
In some ways, the strong points were also the weak points. There are times when the author really does leave you floundering like a fish, with a little too little direction to get back on track. However, this title has been around for a while now, and several other people have publicly written about their experiences with the book and shared their code. My unfinished attempts are available on GitHub. Pragmatic Bookshelf also have a forum for the book, although the last post was December 2013.
This is one of the most enlightening books I’ve have the privilege to read (The Pragmatic Programmer also ranks up there) and work through. I know several people who have copies of this book, but haven’t got around to starting on it. Do so. Just find a few hours to kick-start, and then keep revisiting it every so often. If time is a luxury, you don’t need to rush it. It’s still a worthwhile experience.