My favorite things and stuff from 2018 (shamelessly ripped off from Fogus' blog post with the same title) and plans for 2019.
Fav Technical Books:
Designing Data Intensive Applications
Hands down, easily one of the best software books I've ever encountered. Read it.
Domain Modeling Made Functional
I love this book. Scott Wlaschin has one of the best programming blogs on the internet. I should have read this book much earlier. It entirely changed the way I thought about the role of types in programming.
The Joy of Clojure + Clojure for the Brave and True
I got super into Clojure in 2018. I built a Bitcoin miner, this blog, and numerous little Clojurescript utilities. The Joy of Clojure and Clojure for the Brave and True were my main books while learning the language. Joy of Clojure is like drinking from the fire hose. It's a fast-paced tour through the language and its philosophy. When my feeble mind couldn't handle the terseness, Brave Clojure was usually there with more hand-hold-y explanations and detailed walk-throughs. both excellent and very different books.
This is overall one of the more unique programming books I've ever read. It's entirely about how to approach building idiomatic software within the language, rather than just the mechanics of how the language works. It was invaluable in getting my out of the early learning rut of constantly trying to figure out how to actually write Clojure rather than just bending Clojure to fit whatever language patterns I naturally fall back on.
Functional Programming in Java
Because I've lost control of my life, I am currently making my living writing Java. This has become my go-to book suggestion for easing Java devs into the ideas of functional programming. It does a solid job of explaining the 'why' behind a lot of the approaches taken in functional programming.
It has a bit of a wonky middle section – I'm talking 3 chapters on implementing trees for some reason, but if you ignore that, the rest of the book is quite nice. The references are top notch, too. Lots of great follow up reading.
Non-Fav Technical Books
This book is "Isolate things that change independently of each other" spread out over 34 long chapters. I'd recommend the Blog Post rather than the book. Read that and you've got the basic idea.
Fav Non-Technical Books Read:
Perfectly Reasonable Deviations from the Beaten Path - a collection of Richard Feynman's letters.
An incredibly personal look into Feynman's life. It makes me a bit sad that we no longer write long form letters to each other. The bulk of my emails/chats begin with "sup fam" and descend further into chaos from there.
A favorite part: a letter to Feynman from a general attempting to get him to come work on the next generation of atomic weapons. explaining that the biggest problem with the current generation of atomic weapons is that they're no more powerful than conventional ordinance. We need bombs that exceed ALL of the power of all the conventional bombs ever exploded! Then we'll be cooking. Until we have those bombs, we're not safe.
Stories of Your Life and Others - Ted Chiang
Basically, everything/anything written by Ted Chiang*. So many fantastic stories.
* with the exception of "Liking What You See" which didn't really like at all :(
Fav Films Watched:
- Annihilation - the third act of this movie left me gobsmacked. The soundtrack left me gobsmacked. The whole thing: gobsmacked.
- The Florida Project - having grown up in Florida and spent some of my 20s in Orlando, this movie was quite nostalgic. Really captures the hellscape that is the outskirts of Disney.
- The VVitch - Like if Paul Thomas Anderson directed a horror film. Absolutely dripping in atmosphere. I recommend not watching this, as you'll then go looking for more good horror films, and constantly let down realizing that the genre is a wasteland.
Fav Games Played:
I generally have a grumpy "NO EARLY ACCESS" rule. I don't want to pay money to test other people's software.
Anyways, so I'm like 1000 hours into it.
My first play though was in 2017 and was a straight min/max approach. I maintained an excel sheet with prices of crops, grow times, expected yields, etc.. and retired a lonely rich bajillionair.
My 2018 play throughs calmed down a little and embraced the laid back, relaxing wholesomeness of the game. Also: mods. The Quality of Life mods are essential on repeated play throughs.
Kerbal Space Program
I'll probably be applying to NASA soon.
Clojure. 2018 was the year of Clojure for me. I was going down the Haskell path, when a chance encounter with Brian Beckman pointed me towards Clojure as a language for actually Getting Things Done. Learning it has changed the way I think about writing software.
I finished an exhausting, long moonlight on intelliquestmedia.com. I thought it'd take around 6 months of chipping away at it on the weekends, it ended up taking about 3 years.
It came with a lot of painful lessons learned about managing all sides of a software project (it's harder than just writing code), negotiating (I'm bad at it), dealing with feature creep (avoid at all costs), and the price of over work (extremely high).
- Firefox Quantum
- Safari Online - I finally bought a Safari online subscription. Worth every penny.
Languages used professionally:
Plans for 2019:
- Now that I'm free from contracting obligations, put in some much needed work on [Gooey]!
- Blog more. Write 4 technical blog entries
- Test out at least 2 product ideas with Google Adwords, rather than just thinking about testing ideas (which I've been doing for years)
- learn TLA+
- Make a game
- Learn more (some) math