The more I learn about an eco-system, the more I understand how little I know about it.
I’m a master of nothing. There’s always something new to know, and the list only grows.
This time around it’s C++ that haunts me.
I recently “binge-watched” a few CPPCon talks:
- Modernizing Legacy C++ Code
- Writing Good C++14
- Inheritance Is The Base Class of Evil
- extern c: Talking to C Programmers about C++
- Object Oriented Programming without Inheritance
They were awesome, but one talk really got my attention - C++ Seasoning by Sean Parent.
I have this “I don’t know anything about programming” feeling every time I watch a Rich Hickey talk.
Sean’s C++ Seasoning (then Programming Converstaions #1 & #2) made me feel the same.
His talk reminded me, again, that I have a lot to learn.
One of the key points of his talk is that developers need to be familiar with the algorithm library,
and be able to extend it. During his talk, He magically transformed a few-dozen-lines of complex code into two, using <algorithm>.
I’m used to seeing python code refactoring that turn huge pieces of code into a few, which are easy to read and reason about. But in C++? wow.
Anyway, one of my takeaways is that I don’t use <algorithm> enough. It’s time to change that.
The <algorithm> series
I’ll go through every algorithm in [ C++’s stl, Adobe’s asl, Google’s abseil & Boost ] and will provide examples for each. I might even throw in some Introduction to Algorithms references.
This is a big project which will take a very (very) long time to finish, but it’s worth it.
Stay tuned.