Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 
avatar of Pepijn Kramer

Pepijn Kramer

Pepijn Kramer has asked 1 questions and find answers to 8 problems.

Stats

157
EtPoint
40
Vote count
1
questions
8
answers

About

Hello all, Here on stack overflow I'm mostly involved in helping with C++.

I've been coding C++ since 1995. (When C++ was just a front end for a 'c' compiler) I might not know the official C++ standard wording (though I do look into it every now and then), but I know my way around.

I don't really like the way C++ is taught and how most books still approach it. The first thing people learn is what they end up using most, so start with those things that people will have to do in professional development most : reuse tested software.

For me the order in which things should be taught are:

  • output text (using , never show <stdio.h> stuff
  • branching (if/then/else
  • constness
  • references (NOT pointers, they come later much later)
  • basic looping (while, do while AND range based fors)
  • aggregation and inheritance (oo != inheritance lesson, code reuse != inheritance)
  • interfaces (abstract baseclasses) and dependency injection
  • test driven c++ development (how to make a static lib, link it with exe and with tests)
  • introduction to (using) templates and simple class/function templates
  • lambda functions
  • constructor types, including move semantics!
  • (re)using the standardlibrary (containers (array!, vector), algorithm, numeric etc..)
  • dynamic memory managment using std::unique_ptr, std::shared_ptr

Then advanced course for library developers.

  • template class implementation + meta template programming
  • dynamic memory managment using new/delete
  • "c" style arrays

https://www.linkedin.com/in/pepijn-kramer-7451222/