C++ for the self-taught: Introduction

I’ve decided to take a little time to make use of those 20000+ hours of C++ I have under my belt and make life a bit easier on those of you that are learning C++. In order to do that, I have created a new category called “C++ for the self-taught” that will basically show you how to program in C++.
I will touch on managed C++ (C++/CLI) as well as standard C++, but the focus will be on standard C++. The approach will be one through which you will learn C++ directly as a programming language in and of itself – not as a beefed-up derivative of C or as a predecessor of Java. We will dive directly into the C++ programming language and forgo the usual detour of “learning C before you learn C++”.

We will rely heavily on free software: you will be expected to have either Cygwin on Windows, or some Linux distribution. Example code will have been compiled on Cygwin and Debian Lenny, with G++ version 3.4 and 4.4.

Vlinder Software is footing the bill for hosting my blog, and will also foot the bill for hosting the podcast and a new E-mail address for C++ questions: cppquestions@vlinder.ca. What I say in the podcast will be exactly what I write on the blog, so you choose to either listen to me reading it, or read it yourself (or both). Of course, I won’t spell out the examples in the podcast.

These posts will also be heavily based on examples, some of which, in turn, will use free software. Some of the free software used will be software provided by Vlinder Software, but not all of it.

Here are some of the notions I intend to touch upon, in no particular order:

threads

XML

object-oriented design

RAII

secure programming in C++

templates

design patterns

networking

but we’ll start out with the basics: syntax, grammar and “Hello, world!”.

If you have any questions, feel free to ask by either sending a message to the address above, or leaving a comment here.

About rlc

Software Analyst in embedded systems and C++, C and VHDL developer, I specialize in security, communications protocols and time synchronization, and am interested in concurrency, generic meta-programming and functional programming and their practical applications.
I take a pragmatic approach to project management, focusing on the management of risk and scope.
I have over two decades of experience as a software professional and a background in science.