<story><title>Ask HN: Learn C in 2023?</title><text>Hello,&lt;p&gt;I always have the itch to learn C, juts because it was such an influental language and when you are digging around a lot in GNU&amp;#x2F;linux you will have contact with it one way or another.&lt;p&gt;What is the way you would suggest learning C in 2023? I am already familiar with other languages (rust..) but would like to have an introduction to the C basics and program some hands-on projects in C, so I can learn the pecularities of the language.</text></story><parent_chain><item><author>suprjami</author><text>&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.learn-c.org&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.learn-c.org&amp;#x2F;&lt;/a&gt;&lt;p&gt;If you have lots of time: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&lt;/a&gt;&lt;p&gt;If you can&amp;#x27;t be bothered reading a whole book: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;matt.sh&amp;#x2F;howto-c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;matt.sh&amp;#x2F;howto-c&lt;/a&gt;&lt;p&gt;Exercises: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.codestepbystep.com&amp;#x2F;problem&amp;#x2F;list&amp;#x2F;c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.codestepbystep.com&amp;#x2F;problem&amp;#x2F;list&amp;#x2F;c&lt;/a&gt; and &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;exercism.org&amp;#x2F;tracks&amp;#x2F;c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;exercism.org&amp;#x2F;tracks&amp;#x2F;c&lt;/a&gt;&lt;p&gt;Once you have syntax and basic algorithms down well, watch this, the only 2 hour YouTube video I&amp;#x27;ll ever recommend: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;m.youtube.com&amp;#x2F;watch?v=443UNeGrFoM&quot;&gt;https:&amp;#x2F;&amp;#x2F;m.youtube.com&amp;#x2F;watch?v=443UNeGrFoM&lt;/a&gt;&lt;p&gt;Both r&amp;#x2F;cprogramming and r&amp;#x2F;C_programming are active, also full of lazy students trying to get people to do their homework. If you come by, describe your problem well with code. Say you&amp;#x27;re learning for yourself, not for school.&lt;p&gt;Together C &amp;amp; C++ is a good Discord if you prefer live chat: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;discord.gg&amp;#x2F;tccpp&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;discord.gg&amp;#x2F;tccpp&lt;/a&gt;</text></item></parent_chain><comment><author>flohofwoe</author><text>From the learn-c link:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    &amp;#x2F;* draws a point at 10, 5 *&amp;#x2F;
    struct point p;
    p.x = 10;
    p.y = 5;
    draw(p);
&lt;/code&gt;&lt;/pre&gt;
I wish that would be a bit more &amp;#x27;modern&amp;#x27;, for instance:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    struct point p = {
        .x = 10,
        .y = 5
    };
    draw(p);
&lt;/code&gt;&lt;/pre&gt;
...or even:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    draw((struct point){ .x = 10, .y = 5 });
&lt;/code&gt;&lt;/pre&gt;
...main reason being that this avoids any accidents with unitialized data if the struct grows (the compound literal initialization makes sure that any struct members that are not mentioned are set to zero, while with the &amp;#x27;old school&amp;#x27; approach you might end up with random junk in the struct).</text></comment>
<story><title>Ask HN: Learn C in 2023?</title><text>Hello,&lt;p&gt;I always have the itch to learn C, juts because it was such an influental language and when you are digging around a lot in GNU&amp;#x2F;linux you will have contact with it one way or another.&lt;p&gt;What is the way you would suggest learning C in 2023? I am already familiar with other languages (rust..) but would like to have an introduction to the C basics and program some hands-on projects in C, so I can learn the pecularities of the language.</text></story><parent_chain><item><author>suprjami</author><text>&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.learn-c.org&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.learn-c.org&amp;#x2F;&lt;/a&gt;&lt;p&gt;If you have lots of time: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&lt;/a&gt;&lt;p&gt;If you can&amp;#x27;t be bothered reading a whole book: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;matt.sh&amp;#x2F;howto-c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;matt.sh&amp;#x2F;howto-c&lt;/a&gt;&lt;p&gt;Exercises: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.codestepbystep.com&amp;#x2F;problem&amp;#x2F;list&amp;#x2F;c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.codestepbystep.com&amp;#x2F;problem&amp;#x2F;list&amp;#x2F;c&lt;/a&gt; and &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;exercism.org&amp;#x2F;tracks&amp;#x2F;c&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;exercism.org&amp;#x2F;tracks&amp;#x2F;c&lt;/a&gt;&lt;p&gt;Once you have syntax and basic algorithms down well, watch this, the only 2 hour YouTube video I&amp;#x27;ll ever recommend: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;m.youtube.com&amp;#x2F;watch?v=443UNeGrFoM&quot;&gt;https:&amp;#x2F;&amp;#x2F;m.youtube.com&amp;#x2F;watch?v=443UNeGrFoM&lt;/a&gt;&lt;p&gt;Both r&amp;#x2F;cprogramming and r&amp;#x2F;C_programming are active, also full of lazy students trying to get people to do their homework. If you come by, describe your problem well with code. Say you&amp;#x27;re learning for yourself, not for school.&lt;p&gt;Together C &amp;amp; C++ is a good Discord if you prefer live chat: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;discord.gg&amp;#x2F;tccpp&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;discord.gg&amp;#x2F;tccpp&lt;/a&gt;</text></item></parent_chain><comment><author>voidhorse</author><text>+1 to &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;hal.inria.fr&amp;#x2F;hal-02383654&lt;/a&gt;. It covers the language in extreme depth, and you likely won&amp;#x27;t remember it all on a first read but you&amp;#x27;ll walk away with a pretty good general understanding of the language. Plus, the author is an active contributor to the language.&lt;p&gt;I love C. As dangerous and as tedious it can be for large projects, I think it&amp;#x27;s my top choice for solo endeavors that don&amp;#x27;t require too many string manipulations. I don&amp;#x27;t think any language has come close to achieving the same balance of elegance and simplicity--maybe scheme? (zig comes close but has a substantial number of features that move it away from simplicity (e.g. payload capture))</text></comment>