What topics (basics or foundations or fundamentals or what) to learn/study before studying K&R's "The C Programming Language"?
Question: I don't know programming, I don't know any programming language (only some
HTML if it can be called programming language). I only studied Petzold's
"CODE" so far just to learn basics.

I decided to learn basics and (at least) some C first (even if some suggest
JS, Python or other languages first).

To learn C, people often suggest studying K&R's book "The C Programming
Language" after learning basics of programming. (Even in the book they say
that the book is not for beginners)

People often sat "it's important to learn basics/fundamental/foundations
first" and stress about basics and foundations without telling what they are.

**Basics basics basics. . . foundations foundations foundations. . . what
topics, concepts, etc. do the basics (or foundations or fundamemtals or what
they call it) involve?**

NOTE: I don't ask for book or course recommendation, but I ask for what
topics/concepts to learn to get a foundation.


Answer: Hell, raw theory is boring and that's not what programming is!

I'm not expecting _anyone_ who's learning to program to study _raw and crude_
theory first. The best way you can learn is by trail-and-return-non-zero,
trail-and-SIGSEGV, and some day, trail-and-return-zero.

Anyway, if you already have some knowledge of algebra, electronics, or even
some computer science, that'll definitely help you, **But** , if you don't
know something like that, _don't_ learn it just for the sake of preparation.

It's pretty debatable whether HTML is a programming language, but anyway,
you'll enter in another world/dimension/universe/existence by learning C.

The C language is, IMHO, a very neat language. May it not be as flexible (and
thus, dirty) as C++, but it's neat and elegant. It's simple. Once you know C,
and can read/write it fluently, you could even (more or less) understand parts
of the [Linux kernel](https://en.wikipedia.org/wiki/Linux_kernel) for example.

You mentioned both Javascript and Python. I wouldn't go with Javascript unless
you're of those impure people who want to learn programming just for a job,
and not for entertainment/fun, _which is the real magic and beatifulness
behind it!_ Python would be something I would recommend, but you already know
C is somewhat harder, and you want to go that way, so go that way!

I'm not sure how much to recommend to you K&R. It was never updated after ANSI
C (a standard from _1988-90_!). That makes it pretty outdated (the latest C
standard is from 2011, and the previous one was from 1999 (without C99 you'll
experiment hell sooner or later)). Many (and I mean _too much_) people has
though of _The C Programming Language_ as "being the authoritative reference
for C", because it was (in part) written by [Dennis MacAlistair Ritchie
(1941-2011)](https://en.wikipedia.org/wiki/Dennis_Ritchie), or in other words,
the Messiah and Creator of C, who came to save us from
[Fortran](https://en.wikipedia.org/wiki/Fortran).

Although some other answer may better answer you which books may be
recommended (I can't, because I wasn't taught by books, but by Google), I hope
this answer will give some light on what you should do. Happy programming :)!

