Fluent C++ Is 1 Year Old

So it’s been a year!

It’s been a year since I decided to take up the project of running a blog. A year during which I met an incredible number of incredible people, where I wrote like a madman, where I discovered a part of myself that could actually hold that virtual pen and carry the word out to the world.

A first year birthday is one of those meta-moments that offer an opportunity to take a step back from the crazy week over week schedule, and reflect over what happened and what we want for the future, and to thank the people that helped me make it thus far (this sentence is therefore a meta-meta-moment, and this parenthesis a meta^3 one, then?).

Well, that works for the first year birthday of a blog, I guess, as I’m sure I didn’t do any meta-reflection when I actually turned one.

The highlights of the first year

Since day one, the publishing schedule has been 2 posts a weeks, on Tuesdays and Fridays. This led to a rapidly growing collection of articles (so a little over 100 now), plus posts that are scheduled and not published yet.

At the time of this writing, this collection of articles includes 2 guest posts, one from Raoul Borges on smart pointers and covariance, and one from Tim Scott on how to make unit tests express the intention of our code.

The theme of Fluent C++ is writing expressive code in C++, and this includes a large variety of sub-topics. Here are some of the themes that we explored this year:

Technical articles

Strong typing helps stating and enforcing our intentions by using the type system. It consists in using types with meaningful names to stand for lower level types with more generic meaning. In parallel of the blog articles, I’ve developed the NamedType library, an implementation of strong typing in C++.

A great way to write expressive and robust code is to learn how to use the STL. The deeper your knowledge on the STL, the more proficient you get at writing or refactoring code that manipulates collections. And you can get VERY proficient.

To work in that direction, you’ll find the STL Learning Resource available at fluentcpp.com/STL, to help learn the STL algorithms and understand the various aspects of using the STL.

To get your code rid of memory management worries, smart pointers are a great and idiomatic technique in C++. Here is a series of articles called Smart developers use smart pointers, that starts from the most basic notions of smart pointers and grows in difficulty, to cover some of their most advanced aspects.

There are some patterns that just won’t stick in my head until I truly understood what value they can bring to code. I’ve tried to use this approach to explain what the CRTP can do for us, which turned into a quite popular series of posts.

Behavioural articles

You’ll also find a couple of articles on how to keep your motivation up even when facing code that is not expressive! Indeed, there is some difficult code out there and we can’t fix everything at once. Some of you expressed that those posts had helped them in their day-to-day work so you may want to have a look at them, for instance the right attitude to deal with legacy code.

Now what is knowledge worth if you can’t pass it on? The concept of Daily C++ is designed to work in that direction. It is a training format that lets software developers learn a lot, in a little amount of time.

Oh and, just before the summer, I shared my 7 ways of getting better at C++ during the holidays, which probably became the most popular post ever on the blog. And there isn’t a single line of code in it. Which makes me wonder if I shouldn’t rather specialize on topics such as how to get fit while coding, how C++ can get help you get a pretty girlfriend or why learning the STL algorithms intensifies your spiritual link with nature. But I’d need to figure that out first.

To see all the topics we’ve explored on the blog this year, you can have a look at the complete list of posts.

I’m grateful to You

Yes, you. You, who reads those lines.

I’m writing those articles for you to read them, in the hope that you’ll find some contents interesting, that you’ll respond to ideas you don’t agree with, that some contents will help you in your daily work as a software developer.

So a big thank you if you’ve put a comment on one of the articles, or if you shared a post of Fluent C++ on social networks such as Twitter, or if you reached out to me by email to chat about something in particular. And a big big thank you for reading.

There are a couple of people I’d like to thank personally for their contribution.

First of course my wife, Elisabeth. Can you imagine how much time and focus it takes to maintain an active blog? Writing posts (I write more than I publish, to be on the safe side), interacting with people, promoting contents on social networks, taking care of the various emergencies that can happen on a website, and so on… And all this happens on the side of a full time developer job. So the work occurs during evenings and weekends, and I’m very grateful to my wife for giving me the amplitude to express my passion in a demanding project.

Then my team and my other colleagues at Murex, with which we have very stimulating conversations. In particular Aadam for his curiosity and Patrice for being such an inspiring manager. But let’s not forget HO for his wiseness, Jonathan for his comments and support, Mathieu, Raoul, Sébastien, Kévin, Michaël, Francois, Vincent, Gabriel, Elom, Romain, and all the others! You guys totally rock.

In the C++ community, I’d to thank Patrice Roy for his encouragements and advice, Stephan T. Lavavej for reviewing my posts and giving insightful advice, Sean Parent for discussing STL algorithms, Herb Sutter for reviewing my summary of metaclasses, Arthur O’Dwyer for his advice on templates, Rob Irving and Jason Turner for regularly commenting on the articles on CppCast and having me on CppCast, Daniel Houck for his regular feedback, and also Bartek for the various things we’ve collaborated on including the C++17 challenge, Arne Mertz for letting me write a guest post on Simplify C++ and Jonathan Müller for tweeting about my work at the beginning of my blogging adventure.

The plans for this new year

It’s pleasant to linger over what happened and the lovely people who helped make it happen, but the second year of the blog, very much like winter, is coming!

Here are the projects planned for the next few months:

The next big project is the Fluent C++ Youtube video channel. It has just started this week so there is only one video available right now, but the videos are planned to take a growing proportion of the contents coming out on Fluent C++, until they reach a 1-1 parity with the written contents. The goal is to have one video and one written article published every week. The videos would still be on the theme of expressive code in C++.

There is one thing I’d like to ask of you about those videos: tell me what you don’t like in them, please! I’m just starting out doing videos and I want to improve to make them good for you, so your feedback is really welcome.

Also, I’d like to give more space to guest writers. It brings fresh points of view, and guest blogging is a great option if you want to bring in more traffic to your website, or just to get what you know out there to make people hear your ideas. If you have a topic you’d like to write on Fluent C++, get in touch!

I’m also preparing talks to submit to conferences and meetups. Right now I’m preparing a talk to effectively learn the STL algorithms, and a talk to compare the various approaches to performing operations on collections (STL algorithms, range libraries, smart output iterators, etc.).

Writing the articles over the past 12 months have helped me dig deep into the theme of writing expressive code in C++. And I’m planning to write a post that explains my understanding of what expressive code is, which will give a global view of what I’ve taken away from the various sides of that theme that I’ve explored so far.

But I’d also love to hear what YOU would find useful to have on the blog!

I’m really excited to start this new year with you on Fluent C++. If you have any piece of feedback I’m happy to hear it, and in particular let me know what you’d like to see on Fluent C++ in year 2!

Happy birthday, Fluent C++!

Share this post! Don't want to miss out ?