From 67c3771a2bf27214d481c63115cd64db768cfbfb Mon Sep 17 00:00:00 2001 From: Aki Date: Thu, 29 Aug 2024 16:07:36 +0200 Subject: Tweaked C++ list - Merged last two entries together - Added more conferences - Removed the other standard reference page --- where_to_learn_cxx.html | 76 +++++++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 31 deletions(-) (limited to 'where_to_learn_cxx.html') diff --git a/where_to_learn_cxx.html b/where_to_learn_cxx.html index d299444..4fd9263 100644 --- a/where_to_learn_cxx.html +++ b/where_to_learn_cxx.html @@ -37,8 +37,7 @@ for each entry...
  • Core Guidelines
  • Code Style Guidelines
  • Interactive Exploration -
  • Classes, Courses and Tutorials -
  • Stack Overflow and LLMs +
  • Other @@ -58,23 +57,20 @@ and to solidify your foundations.

    Standard References

    -

    These references explain C++ standard so that it can be consumed easier by language and library users. They may or -may not reference implementation-specific details. +

    The intent is to translate the legal language from the standard to a more programmer friendly language complemented +with examples, compatibility matrices, and a good number of other useful resources. Currently there is only one +worthwhile community-driven page:

    -

    You are likely to use them the most compared to any other entry in this list. This is the case for me. -

    Both of these sites are also designed to act as an index for other resources, including but not limited to, standard -compiler support matrices, tutorials, technical specifications, proposal or experimental references. If you never did, I -encourage you to grab something to drink and explore one of them a bit. +

    You are likely to use it the most compared to any other entry in this list. This is the case for me.

    Proposals

    -

    Proposals are my favourites. They are C++ standard committee papers that propose changes to the language or standard -library. Their goals are to present an idea in understandable way and reason it. Make it look like a good idea. This -part of their nature makes them often better to read than the actual C++ standard. This is especially evident when they -are coming from the outside of usual working group and/or compiler circles. +

    Proposals are my favourites for filling the "would you like to know more" gap. They are C++ standard committee papers +that propose changes to the language or standard library. Their goals are to present an idea in understandable way, +reason it, and make it look good. This part of their nature makes them often better to read than the actual C++ +standard. This is especially evident when they are coming from the outside of the working group and/or compiler circles.

    You can find them at C++ Standards Committee Papers index.

    Alternatively, if you are looking for proposal regarding a particular feature, you can: @@ -93,9 +89,9 @@ Papers index.

    The Standard

    Also known as ISO/IEC 14882.

    c++ logo -

    This is the primary source. Or rather the working draft of the primary source. Standard is intended to define -requirements for compiler and library implementations. It is not necessarily intended as your day-to-day reference -document. Nonetheless, it is useful because it can provide you with an authoritative answer. +

    This is the primary source. Or rather the working draft of the primary source. Standard is intended +to define requirements for compiler and library implementations. It is not necessarily intended as your day-to-day +reference document. Nonetheless, it is useful because it can provide you with an authoritative answer.

    You can buy the actual standard revisions at the ISO Store.

    Draft is available at eel.is/c++draft.

    Standard C++ has a homepage at isocpp.org with a good amount of useful resources, @@ -132,7 +128,22 @@ behaviour or details, options, recommendations.

  • /usr/include

    Of course, depending on your compiler, library provider and targets these will vary. Consult your compiler -documentation. +documentation. With GCC you can provide a -v flag to command and find the applicable paths, for example: +

    +$ c++ -v example.cpp -o example
    +Using built-in specs.
    +...
    +#include "..." search starts here:
    +#include <...> search starts here:
    + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1
    + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu
    + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward
    + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
    + /usr/local/include
    + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed
    + /usr/include
    +End of search list.
    +

    They may feel hit-or-miss. It gets especially bad when dealing with multi-target back-compatible headers as they quickly devolve into macro madness. Yet, they are your exact specification of what you are dealing with. @@ -164,8 +175,12 @@ recommendations. Even if you don't plan using Boost, it may provide you with sol

    I'm socially awkward but I do like to listen to knowledgeable people. Even better if I'm interested in the topic they talk about. Isocpp.org maintains a list of worldwide conferences. -

    CppCon YouTube channel is probably the best place to start if you are -looking for talks. They have a large variety of them: deep dives, lightning talks, back to basics, etc. +

    Here are channels with recordings from C++ or around C++ conferences: +

    Core Guidelines

    @@ -200,17 +215,16 @@ In general, building minimal examples to see certain behaviours is a decent debu debuggers are also an option for exploration. -

    Classes, Courses and Tutorials

    -

    I do not have any specific recommendations here at the moment. -

    Prefer university-driven courses if available. Next in line are any free online tutorials. Always complement with a -book or technical documentation. Lastly, paid private "schools", online classes and bootcamps. I heard mixed opinions -about them in general, so research your options. - - -

    Stack Overflow and LLMs

    -

    This is an equivalent to learning how to disarm explosives on a minefield with no tools whatsoever. Use these if you -don't know how to bite a certain problem, if you look for a very specific recommendation, or if you have forgotten -something trivial. You may find good answers. Always look or ask for answers with references to documentation or find -relevant sources yourself. On Stack Overflow you may even find authoritative answers. +

    Other

    +

    I don't have much to say about these. They listed here only to avoid questions about them. +

    +

    Older revision of this article had some additional notes, but even at the time of writing I was struggling to see any +good points in my comments. -- cgit v1.1