[Swlug] C Programming Book Recommendations

Dave Cridland dave at cridland.net
Wed Oct 23 21:44:15 UTC 2024


The obvious "modern" replacement for C is Go, which was essentially
designed as a "C for bad programmers" - that's not really as bad as it
sounds, as you do need to be an astonishingly careful programmer to write C
that's both safe and good. Go has quite a lot more to it than C, but it is
at heart a Structured Programming language - the paradigm that most modern
C is written in - and its general "feel" is much the same.

Rust is more of a replacement for C++, but it lacks so much of C++'s power
that it's really quite the tradeoff. There's finally the beginnings of a
serious movement to bring a lot of the core Rust concepts to C++ - if this
happens, then it'll be very good news for C++ (where you still can end up
with a null pointer dereference, or a buffer overrun, or a dangling
reference).

Pascal died out really because of C; though as a teaching language, Python
has taken it over.

JavaScript - and TypeScript ("JavaScript but it looks a bit like.NET") -
are pretty weird languages. It's generally best not to look too closely at
them, as they turn out to be a pile of weird behaviours and strange hacks
layered unevenly on each other.

Dave.

On Wed, 23 Oct 2024 at 20:15, Alan Gray via Swlug <swlug at mailman.lug.org.uk>
wrote:

> Hello Huw
>
> Nicely said. I started on 6809 then 6502. Like you, it helped
> understanding pointers.
>
> Wasn't Erlang developed for use in telephone exchanges?
>
> Computer languages are tools. As always it is best to select the right
> tool for the job. Without knowing the job it's all speculation.
>
> As a first serious language I am reminded that years ago in college I was
> taught 'C' and Pascal. They had quite different characteristics and were
> considered complementary. Probably Python would replace Pascal, but I am
> not so sure about 'C'. Maybe Rust, but there are others that could be
> considered.
>
> Regards
> Alan Gray
>
>
> On 23 October 2024 18:52:53 BST, "Huw Ford (ConceptPC) via Swlug" <
> swlug at mailman.lug.org.uk> wrote:
>
>> Hi,
>>
>> I agree that C might not be the ideal 'first' serious programming
>> language, but after 40 years of programming, I’m still not entirely sure
>> which one would be.
>>
>> I started with assembler on the 6502 CPU, then moved on to the 68000.
>> From there, I learned K&R C (Kernighan and Ritchie). My background in
>> assembler, especially with memory addressing, helped me make sense of C’s
>> pointers. Later, I transitioned to ANSI C.
>>
>> After that came C++. Once I got my head around object-oriented
>> programming (OOP), I really fell in love with it.
>>
>> Eventually, I got into PHP and JavaScript, both of which are
>> syntactically similar to C in many ways.
>>
>> But the language that really expanded my thinking was Erlang. It was so
>> different from anything else I’d ever used. That said, I wouldn’t recommend
>> Erlang unless you had a specific use case for it.
>>
>> I’ve worked with people who recommend Java as a good first language—it’s
>> quite similar to C but without the headaches of manual memory management.
>> However, I haven’t had any first-hand experience with it myself.
>>
>> Hope this helps.
>>
>> Huw
>>
>>
>> On 23/10/2024 10:16, Neil Greenwood via Swlug wrote:
>>
>> On Wed, 23 Oct 2024, 10:04 Morgan Green via Swlug, <
>> swlug at mailman.lug.org.uk> wrote:
>>
>>> Hi,
>>>
>>> I am very new to programming, but I want to start out on C to grasp the
>>> fundamentals of all programming languages. Can anyone recommend me any
>>> paperbooks on C programming that is suitable for complete beginners?
>>>
>>> Kind regards,
>>> Morgan Green
>>>
>>
>> Hi Morgan,
>>
>> I'm not sure C is the best language for a beginner. You have a lot of
>> extra work to do managing memory - my first C program (after I had 8 years
>> experience with 2-3 other languages) just segfaulted, and I never fixed it!
>>
>> If you are just starting out, my recommendation is to look at Python -
>> apart from the strict indentation requirement, it's much more friendly.
>> This will give you a good understanding of the fundamentals that are
>> present in most languages.
>>
>> If you want dead-tree books, Pragmatic Press make a good series of
>> introductory titles for both C and Python, as well as a wife range of other
>> languages.
>>
>> Hope this helps,
>> Neil
>>
>>>
>>> Sent from Outlook for Android <https://aka.ms/AAb9ysg>
>>> --
>>> Swlug mailing list
>>> Swlug at mailman.lug.org.uk
>>> https://mailman.lug.org.uk/mailman/listinfo/swlug
>>>
>>
>> --
> Swlug mailing list
> Swlug at mailman.lug.org.uk
> https://mailman.lug.org.uk/mailman/listinfo/swlug
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.lug.org.uk/pipermail/swlug/attachments/20241023/de4c05b5/attachment-0001.htm>


More information about the Swlug mailing list