For the reboot of my blog, I thought I'd do a quick recap some of my professional learnings of the last year.
The last time I used C++ on the regular was 2007. Well, a lot has changed since then. C++0x became C++11, marking the beginning of the “Modern C++” era. I picked up a copy of A Tour of C++ to reacquaint myself with the language. I also subscribed to the CppCast and cpp.chat podcasts.
Why subject myself to C++ in a world with true modern languages like Rust and Swift? C++ and C are the only tried and true ways to create compact, performant, library-level code that can run on both iOS and Android. Rust and Kotlin-Native are promising but not there yet. I have a lot more thoughts on this topic. Stay tuned.
Most modern C++ projects use CMake as the build system. I had been exposed to CMake before, but I didn't really “get” it. I would just google and stackoverflow and swear my way through minor edits. This year, I decided I wanted to actually try to learn it. I came across a great interview with Craig Scott on CppCast which led me to his book on CMake. That, along with online guides such as Effective Modern CMake has been immensely helpful.
Flutter is a cross-platform mobile (and web and desktop) framework from Google. We used it to develop some sales tools at work. My experience was… mixed.
Full disclosure, I have not written a line of Dart myself yet. Rather, I was responsible for a team that was writing Dart and the CI/CD pipeline for the project. I was hoping to see much faster iteration than we experienced with separate native iOS and Android codebases. This didn't really pan out, but I'm not sure we gave it a fair shot either.
First, we integrated Flutter into existing iOS and Android projects, instead of letting Flutter “own” the project. This broke a lot of the advantages of Flutter, like hot-code reloading. Kind of the worst of both worlds. Also we had to integrate heavily with our own native framework, which is a often a weak point of cross-platform tools.
However, I hope to learn to try Flutter again in a more standard way. Hopefully my experience will be better.
var). However, ECMAScript 6 (aka EMCMAScript 2015, aka ES6) has fixed that with the addition of
For frameworks, React seems like it's here to stay. I've been using it a bit at work and it's productive and enjoyable so far. I'm also curious React Native, but mostly as a opportunity to play with ClojureScript.
These are the tech, management and leadership books I added to by brain last year. I didn't necessarily read them all cover to cover – most of them are not that kind of book.
- Clean Architecture by Robert C. Martin 📖
- Domain Specific Languages by Martin Fowler 📖
- A Tour of C++ by Bjarne Stroustrup 📖
- Professional CMake: A Practical Guide by Craig Scott 📖
- It's the Manager by by Jim Clifton, Jim Harter 📖
- The Manager's Path by Camille Fournier 📖
- It Doesn't Have to Be Crazy at Work by Jason Fried, David Heinemeier Hansson 🎧
- Mindset by Carol S. Dweck 🎧
- Turn the Ship Around by L. David Marquet 📖 🎧
📖 = Physical or eBook, 🎧= Audiobook
They say always say that starting is the hardest part. I'm happy to be writing again and I hope to have a lot more to share with you in the year to come.