I’m looking forward to your interview with Bjarne Stroustrup. I have a few questions that you might consider asking. (But feel free to modify them, incorporate them into your own conversation, or just don’t ask them.)
- When I learned C++ more than 20 years ago there were only books and in-person trainings. I learned from “The C++ Programming Language” and later from Scott Meyers “Effective C++” books. Nowadays there are lots of C++ books, tons of text and video tutorials (on Youtube, Udemy, Learning Path, …), conferences and recorded conference talks, spaces on social media (e.g. Reddit, Twitter, and Discord), Q&A websites like StackOverflow, etc. How has that changed the way people learn C++? Where are the deficits? (I’d guess bad sources and outdated patterns and practices).
- Do you have some general advice how somebody who already knows one or two programming languages can learn C++? Should they start with a book, should they move quickly to implementing a toy project, can websites like Exercism help? How important are code reviews and advice from experienced programmers?
- Oracle offers certificates for Java programmers. As far as I know nothing similar exists in the C++ world, right? Do you think it might be useful if some larger organization would offer certifications and tests, or is that mostly useless?
- In the past few years a lot of new programming languages got love and attention. Some of them have features that are absent in C++, e.g. Go’s builtin goroutines, Rust’s borrow checker, Nim’s compile time macros that modify the AST… Do you think some of those things might make it into the C++ world?
- Do you thing C++'s committee-driven approach with its 3-year cycle, its many stakeholders, rather tedious proposal process, and strong backwards compatibility can still compete with new languages that can move a lot faster?
- Would you recommend C++ as a first programming language? If yes, what would be a good second complimentary programming language? If not, what could be a good first choice for beginners?