This week, I spent an hour talking to a C++ veteran – someone who has been coding since the 90’s and works as a full-time software engineer. I asked him what he thought it would take to develop from a college graduate to a very good engineer. I thought I would share some of his recommendations.

The first recommendation he had was to join a coding study group. This is a place where professionals can meet to share information, questions, and best practices without the pressure of the deadlines associated with our 9-5 work. I had a chance to join this engineer’s C++ study group and was really impressed by how many topics they explored in an hour – coding conventions, data structures, learning resources, pedagogical approaches (and of course lots of C++). Hearing these professional developers reflect on their relationship to the code they write was very illuminating.

The next recommendation was to comment the intention of your code. This engineer shared some of his code, and at first, I thought his comments were quite verbose. He raised the point that in a long-term code base, code is expected to be used for years, and that high-quality comments keep the code accessible. He also emphasized that comments should not explain what the code is doing (e.g. don’t explain that x++ “increments x”; instead, explain that this “moves the cursor right” or whatever it is x is doing.)

One of the recommendations we talked about a lot was reading well-written books on coding. Specifically, he shared “The Definitive C++ Book Guide and List” posted on Stack Overflow (more on Stack Overflow in a minute.) Looking at this list, it’s easy to see why he recommended it. Authors include Bjarne Stroustrup (the founder of C++), Herb Sutter (widely-cited C++ expert) and Andrei Alexandrescu (one of the developers of D). I started in on the list this week and am looking forwards to several months of learning from this list.

We talked for a while about coding conventions, copying code, and Stack Overflow. This engineer expressed that as soon as an answer to a coding question becomes highly ranked on SO, that code (or some version of it) will inevitably find its way into professional code bases. This engineer did not suggest that copying code is the right move, but rather that if you are contributing information about coding publicly, you have a responsibility to ensure your answer is well-informed. He implied not all information that is widely shared is following current best practices or is good engineering.

We talked more about D, Rust, the future of C++, the growing number of professional programmers, Matt Godbolt, the C++ committee, networking, internal culture clashes, and the pros and cons of siloed organizations. Overall, this was one of the most informative conversations I’ve had in the last 2 years and got me excited at the prospect of engaging with other engineers.

Print Friendly, PDF & Email

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required