Blog Posts
With this being a blog, I happened to write a few blog posts over the year. I've reduced my frequency of posting in the last couple years, and over the course of 2018 I maintained a rate of one post every three weeks, totaling 18 posts over the year. I won't list them all here, just some of the highlights.
I finished up the last half of my series on Simple Game Algorithms With Color Walk with seven more posts, and I was pretty happy with how that series turned out. I wrote six Book Face-Off reviews of six pairs of books, with the most-viewed review post being on the two Seven Programming Languages in Seven Weeks books that I thoroughly enjoyed working through. I really enjoy writing that style of review because I always want to know how books compare to each other instead of judging them in isolation, and I often find that lacking in other reviews. Finally, I wrote five posts about various other topics, including one about a simple retirement savings model in Python that garnered the most views of all of last year's posts.
I'm expecting to keep up the same rate of posting for the next year, so I should end up with another 18 posts by the end of 2019. I would also expect most of those posts to be face-off reviews for reasons you'll see in a minute, but I've got an idea for a rather fun series that I might start up near the end of the year. All in all, I enjoy writing and continue to see benefits to keeping up this blog in spite of blogs being mostly dead in the age of social media. I'll keep writing down my thoughts, if only for my own sake as much as anything else.
I finished up the last half of my series on Simple Game Algorithms With Color Walk with seven more posts, and I was pretty happy with how that series turned out. I wrote six Book Face-Off reviews of six pairs of books, with the most-viewed review post being on the two Seven Programming Languages in Seven Weeks books that I thoroughly enjoyed working through. I really enjoy writing that style of review because I always want to know how books compare to each other instead of judging them in isolation, and I often find that lacking in other reviews. Finally, I wrote five posts about various other topics, including one about a simple retirement savings model in Python that garnered the most views of all of last year's posts.
I'm expecting to keep up the same rate of posting for the next year, so I should end up with another 18 posts by the end of 2019. I would also expect most of those posts to be face-off reviews for reasons you'll see in a minute, but I've got an idea for a rather fun series that I might start up near the end of the year. All in all, I enjoy writing and continue to see benefits to keeping up this blog in spite of blogs being mostly dead in the age of social media. I'll keep writing down my thoughts, if only for my own sake as much as anything else.
Technical Books
Looking back, I read a lot of books last year, including one doozy of an undertaking, Introduction to Algorithms, that took me six months to get through! In total it ended up being 18 books, (coincidentally the same as the number of posts I did) and I'll group them here into the good, the bad, and the tedious with a little summary and links to reviews for the ones that have been posted. The rest are still pending.
The Good
Out of the 18 books, 11 of them were good to excellent, so on the whole, I would count that as a success. I'm hoping to be still more selective in the coming year, and at the same time bump up the number of tech books I read. My goal is 22, and I'm really looking forward to all of them. I think I've got some great ones on the list. While it seems like I'll be cramming four more books into the year, I won't be working through a 1200 page monster or a math book rife with errors. Those two books took way too much time without the corresponding benefit. I'm looking to change that with a better selection of books geared towards more enjoyment while helping to round out my development as a programmer. Hey, I'm doing this during my leisure time. I don't need to suffer.
The Good
- Seven Programming Languages in Seven Weeks - An excellent whirlwind tour of seven instructive and very different programming languages. This book was mind-opening and mind-blowing.
- Seven More Programming Languages in Seven Weeks - Like its predecessor, but focusing on seven relatively new languages. I had twice the fun by reading about twice the languages.
- The Seasoned Schemer - A whimsical romp through Scheme and the theory of computation that builds on The Little Schemer. It uses a Socratic dialog format to teach in an eccentric and engaging way.
- The Reasoned Schemer - Same format as The Seasoned Schemer, but not quite as zany. This book develops a logic programming language that later appeared in the wild as miniKanren built on top of Clojure.
- Confident Ruby - Learn how to write clear Ruby code with purpose, and do it with an easy, enjoyable read.
- Breaking Windows - Remember when Microsoft was king and the Justice Department decided that wasn't a great thing, but in the mean time Microsoft nearly missed the Internet and completely whiffed on mobile, making the whole argument irrelevant? I had fun reliving that whole saga with this book.
- Showstopper! - It's the story of how Windows NT was made. After reading it, I certainly wouldn't have wanted to participate in such an endeavor, but it was a wild story.
- CoffeeScript - This is a quick, no-nonsense guide to CoffeeScript, a nice, possibly obsolete enhancement to JavaScript. The online documentation is sufficient, but it's nice to have it all laid out in a book like this.
- The Hidden Reality - I love reading popular physics books every once in a while. This one is about all the different ways parallel universes could exist. Very well written and accessible to anyone with some rudimentary physics knowledge.
- Parallel Worlds - Like The Hidden Reality, this is another popular physics book about parallel universes. It's hard to decide which one is better. I enjoyed them both.
- Python Data Science Handbook - A solid introductory book on using Python with pandas and scikit-learn to do data munging and analysis. I preferred it to the one I paired it with in an upcoming Tech Book Face-Off, Python for Data Analysis.
- Simplifying JavaScript - I felt like I was being talked down to through this whole book. Simple things were discussed ad nauseum and more complex things were glossed over. I didn't find it useful.
- Python for Data Analysis - This is primarily a pandas reference, and the online documentation is much better than slogging through this book.
- Metaprogramming Ruby 2 - I found the style and tone of this book to be quite annoying, and the content is certainly available in other, much better books.
- Patterns of Software - Supposedly about software development insights, this book is full of irrelevant fluff, inane diatribes, and tiresome career stories. I should have passed after the first chapter.
- Introduction to Algorithms - One of the classic algorithms texts, but unless you're going into a career in Computer Science, it's probably not worth sweating through this tome. If I ever pick up another algorithms text, it will be one geared more towards implementation than theory.
- Linear Algebra and Differential Equations - It would have been good if it wasn't riddled with typos, bad definitions, and outright errors. I was constantly needing to correct what I was reading, but I suppose finding all of those errors gave me confidence that I understood the material.
- The New Turing Omnibus - More of a collection of introductory blog posts than a cohesive book on computer science topics. This was probably the worst book I read last year—both bad and tedious.
Out of the 18 books, 11 of them were good to excellent, so on the whole, I would count that as a success. I'm hoping to be still more selective in the coming year, and at the same time bump up the number of tech books I read. My goal is 22, and I'm really looking forward to all of them. I think I've got some great ones on the list. While it seems like I'll be cramming four more books into the year, I won't be working through a 1200 page monster or a math book rife with errors. Those two books took way too much time without the corresponding benefit. I'm looking to change that with a better selection of books geared towards more enjoyment while helping to round out my development as a programmer. Hey, I'm doing this during my leisure time. I don't need to suffer.
Novels
Even with all of the technical books I read, I still found time to read quite a few novels for pure pleasure. The secret to fitting these in to busy days is listening to audiobooks during the daily commute. While I prefer curling up on the couch and reading a novel for hours, there's not always time for that, but I always have 20-30 minutes in the car twice a day. That adds up to a fair number of books over the year, and I've listed the ones I got through below, ranked in order of how much I liked them.
- Seveneves - An excellent book by the great Sci-Fi writer, Neal Stephenson about what the human race does to survive the aftermath of the Moon exploding into seven pieces.
- Insomnia - Stephen King does an incredible job painting the scenes of this book in the reader's mind. As the title says, it's about insomnia, but of course it's more than that.
- The Talisman - Another great fantasy thriller by Stephen King, this time teaming up with Peter Straub. It was a fascinating journey through the vivid world of the Territories that they created.
- The Defenders of Magic Trilogy - I've always loved the Dragonlance series, but I haven't read anything from the series in many years. This trilogy by Mary Kirchoff was an enjoyable return to the fantasy world of Krynn, full of magic and dragons and other fantastical creatures.
- Foundation, Foundation and Empire, The Second Foundation - The first three books of the classic Sci-Fi series by Isaac Asimov, this series took me a while to get into because I didn't like the contrived feeling of the first book. Things got much more interesting when the Mule entered the picture in the second book, though, and I was really getting interested by the third book. I'll have to finish off this series soon.
- A Wrinkle in Time - This is a fun, whimsical children's fantasy book by Madeleine L'Engle about an eccentric group of kids that go off in search of their lost father. I had never read this as a kid, and I was amazed at the vocabulary level for a children's book.
- American Gods - Neil Gaiman has an absolutely astounding imagination, and boy can he write. I've liked everything I've read of his, although I would rank this book near the bottom of the list. It was still good, but it didn't move me to want to keep reading like his other works.
- The Dhamon Saga Trilogy - I enjoyed the return to the Dragonlance series so much with The Defenders of Magic that I tried for another trip with this trilogy by Jean Rabe. Unfortunately, it was not nearly as good. The characters started out as completely unlikable jerks that pretty much ended up the same way by the end. The only character I wanted to see survive was the draconian.
- The Bourne Supremacy - I didn't particularly enjoy The Bourne Identity by Robert Ludlum, but I was hoping it would improve with this second book in the trilogy. Unfortunately, it didn't. I could never decide if it was trying to be a romance or a spy thriller, and it was poorly written in either case.
- The Bourne Ultimatum - By now I just wanted to see what would happen by the end of the story, so I resigned to listening to one more installment of this bad romance/thriller. I shouldn't have bothered. The movies were quite different than the books, and much better.
Video Games & Movies
Regardless of how it may seem, I don't spend all of my leisure time reading and writing. I did manage to spend some time playing video games and watching movies. The movies are primarily for date nights with my wife, so they're too numerous to list here. I'll just say that Thor: Ragnarok and Deadpool 2 are pretty much tied for the best movie we saw last year.
I love playing LEGO games with my kids on the weekends, and find it's a great way to relax, solve some puzzles, and laugh at movie spoofs with them. We've at least started a number of new-ish LEGO games, including The LEGO Movie, Marvel Super Heroes, Jurassic World, LEGO City, The Hobbit, and Batman 3: Beyond Gotham. Every game has its unique mechanics and challenges, and I can always depend on them to be child-appropriate. I'm sure we'll play plenty of new ones this year, as there's a half-dozen more we haven't started, and they're always coming out with more.
I also squeaked in one game for myself with Final Fantasy XIII-2. (I know it's over 5 years old now, but I'm way behind on my game backlog. Give me a break!) I've always been a fan of the Final Fantasy franchise, partly because every story is completely unique, and partly because I'm fascinated by the new RPG mechanics in each game. In XIII-2 the complexity of the mechanics center around taming the different monsters in the game, and how best to upgrade and infuse the growing collection of monsters with their vast array of special abilities. I enjoy trying to figure out the shortest way to get to the most powerful party of monsters and then wipe the floor with the rest of the enemies in the game.
I'm hoping to have a bit more time this year to play more than one game. It's a great way to relax, and I've got so many options to choose from.
The Year Ahead
Looking back at this list, it's amazing what I got done last year, mostly within a couple hours a night. Looking at the year ahead, I want to stick to another 18 blog posts to keep up with my writing practice. I'm hoping to bump up my technical reading a bit to 22 books, although they'll be easier and shorter than some of the ones I tackled last year so I'm expecting to have a bit more time for other things as well. I'll likely read a few more novels with that extra time, maybe play an extra video game, and I'd like to pick up the guitar again.
I feel like the coming year will be somewhat of a wrapping up of the intense studying of a wide range of programming topics I've been pursuing. There will definitely be other books beyond those, but I'm finally reaching the point where I'll have read most of the major technical books that I intended to work through. If you know where you've been, it's easier to know where you want to go. That clarity provides the feeling of control and mental focus to keep making progress towards your goals instead of drifting from one day to the next. I'm looking forward to those accomplishments, and I'm interested to see what new subjects will come into view throughout the year.
I feel like the coming year will be somewhat of a wrapping up of the intense studying of a wide range of programming topics I've been pursuing. There will definitely be other books beyond those, but I'm finally reaching the point where I'll have read most of the major technical books that I intended to work through. If you know where you've been, it's easier to know where you want to go. That clarity provides the feeling of control and mental focus to keep making progress towards your goals instead of drifting from one day to the next. I'm looking forward to those accomplishments, and I'm interested to see what new subjects will come into view throughout the year.