summaryrefslogtreecommitdiff
path: root/where_to_learn_cxx.html
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2024-08-29 16:07:36 +0200
committerAki <please@ignore.pl>2024-08-29 16:07:36 +0200
commit67c3771a2bf27214d481c63115cd64db768cfbfb (patch)
treeb515ef703da68c581f624ad8ab77c7dd24b0dfbd /where_to_learn_cxx.html
parent9f8d20c919922f6fdcc12621b0bb44122fe01f11 (diff)
downloadignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.zip
ignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.tar.gz
ignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.tar.bz2
Tweaked C++ list
- Merged last two entries together - Added more conferences - Removed the other standard reference page
Diffstat (limited to 'where_to_learn_cxx.html')
-rw-r--r--where_to_learn_cxx.html76
1 files changed, 45 insertions, 31 deletions
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...
<li><a class="always-fresh" href="#core-guidelines">Core Guidelines</a>
<li><a class="always-fresh" href="#code-style-guidelines">Code Style Guidelines</a>
<li><a class="always-fresh" href="#interactive-exploration">Interactive Exploration</a>
-<li><a class="always-fresh" href="#classes-courses-and-tutorials">Classes, Courses and Tutorials</a>
-<li><a class="always-fresh" href="#stack-overflow-and-llms">Stack Overflow and LLMs</a>
+<li><a class="always-fresh" href="#other">Other</a>
</ol>
@@ -58,23 +57,20 @@ and to solidify your foundations.
<h2 id="standard-references">Standard References</h2>
-<p>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.
+<p>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:
<ul>
<li><a href="https://en.cppreference.com/w/">cppreference.com</a>
-<li><a href="https://cplusplus.com/reference/">cplusplus.com</a>
</ul>
-<p>You are likely to use them the most compared to any other entry in this list. This is the case for me.
-<p>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.
+<p>You are likely to use it the most compared to any other entry in this list. This is the case for me.
<h2 id="proposals">Proposals</h2>
-<p>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.
+<p>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.
<p>You can find them at <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/">C++ Standards Committee
Papers</a> index.
<p>Alternatively, if you are looking for proposal regarding a particular feature, you can:
@@ -93,9 +89,9 @@ Papers</a> index.
<h2 id="the-standard">The Standard</h2>
<p>Also known as <strong>ISO/IEC 14882</strong>.</p>
<img src="where_to_learn_cxx-2.png" alt="c++ logo">
-<p>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.
+<p><strong>This is the primary source</strong>. 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.
<p>You can buy the actual standard revisions at the ISO Store.
<p>Draft is available at <a href="https://eel.is/c++draft/">eel.is/c++draft</a>.
<p>Standard C++ has a homepage at <a href="https://isocpp.org/">isocpp.org</a> with a good amount of useful resources,
@@ -132,7 +128,22 @@ behaviour or details, options, recommendations.
<li><code>/usr/include</code>
</ol>
<p>Of course, depending on your compiler, library provider and targets these will vary. Consult your compiler
-documentation.
+documentation. With GCC you can provide a <code>-v</code> flag to command and find the applicable paths, for example:
+<pre>
+$ c++ -v example.cpp -o example
+Using built-in specs.
+...
+#include "..." search starts here:
+#include &lt;...&gt; 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.
+</pre>
<p>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
<p>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. <b>Isocpp.org</b> maintains <a href="https://isocpp.org/wiki/faq/conferences-worldwide">a list of worldwide
conferences</a>.
-<p><a href="https://www.youtube.com/@CppCon">CppCon YouTube channel</a> 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.
+<p>Here are channels with recordings from C++ or around C++ conferences:
+<ul>
+<li><a href="https://www.youtube.com/@CppCon">CppCon</a> (YouTube)
+<li><a href="https://www.youtube.com/@ACCUConf">ACCU Conference</a> (YouTube)
+<li><a href="https://www.youtube.com/@BoostCon">C++Now</a> (YouTube)
+</ul>
<h2 id="core-guidelines">Core Guidelines</h2>
@@ -200,17 +215,16 @@ In general, building minimal examples to see certain behaviours is a decent debu
debuggers are also an option for exploration.
-<h2 id="classes-courses-and-tutorials">Classes, Courses and Tutorials</h2>
-<p>I do not have any specific recommendations here at the moment.
-<p>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.
-
-
-<h2 id="stack-overflow-and-llms">Stack Overflow and LLMs</h2>
-<p>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.
+<h2 id="other">Other</h2>
+<p>I don't have much to say about these. They listed here only to avoid questions about them.
+<ul>
+<li>Classes
+<li>Courses
+<li>Tutorials
+<li>Stack Overflow
+<li>LLMs
+</ul>
+<p>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.
</article>
<script src="https://stats.ignore.pl/track.js"></script>