Hi,
Is there any page about didactics of the “concepts” pages associated to a programming language?
I’m trying to answer these questions:
-
What sets such pages apart from a book on the same language?
-
What sets it apart from just a documentation page?
-
How much should it teach a language by teaching its syntax and semantics?
-
How much should it teach through problems-and-solutions?
I’m trying to understand this because I don’t find the C++ (I’m not comparing to other tracks, because I’ haven’t looked at others) track particularly useful to empower a newbie to make use of C++ with awareness of the language. In this respect, I’d like to contribute to improve the experience, but clearly I want to understand first if my idea of “helping” is in line with what Exercism considers good.
Below are a few examples of why I consider the C++ material insufficient/inaccurate/misleading:
-
no concept exists to pinpoint that C++ is a compiled language,
-
no concept exists to explain templates, that are at the basis of C++
-
no cencept exists about the standard library in general
-
the concept “references” (References in C++ on Exercism) mentions en passant that references are to be used “depending on the size of your type”, which is in reality probably the least of the concerns, and furthermore it uses an example where an int is taken by reference by a function, implying that a function returning void and not copying an int is some good practice.
-
the concept “auto” (Auto in C++ on Exercism) depends on “pointers”, how’s that possible? Furthremore, there’s no page on templates.,
-
the concept “headers” (Headers in C++ on Exercism) defines the effect of an
#includeusing the word “include”, which is a tautology, and doesn’t even mention that it is just fundamentally a recursive operation of copy-and-paste. This could have been dealt with another conept (with no prerequisites) about “#includean other#-things”
These are just a few examples of what I think needs reviewing/fix, and as I said, I’d like to contribute. But again, I’m not even sure anymore whether my view is sufficiently inline with Exercism.
To give an example of what I had in mind as “improvement”, see How about adding one or more exercises on type erasure? - #6 by Aster89; it’s not a topic for which a concept exists already, and it is actually a fairly advanced topic, but in the linked message I’ve shown how I’d structure an exercise to accompaign the hypothetical concept page.
Also tagging @vaeng , who’s authored the existing pages.