If you are thinking about learning C outside the context of Arduino, you need a way to compile and run C code on your platform. If you have Linux, all you need to do is install GCC - see below. It may actually already be installed. Then you need a command line editor and while you could use 'vi' or 'nano', I think you'll like 'gedit' better. Install it and you're ready to go. Run gedit in one command window and the command line for the compiler/output in another.
sudo apt-get install gedit
There are a lot of example codes segments in the book I linked above.
When it comes to writing command line code (no GUI interface), there isn't anything better than Linux. And this from a user who primarily runs Win 10.
Under Win 10, you have a couple of choices. You can activate WSL and install Ubuntu which is a decent way to go but getting there is a hassle. You can install Microsoft Visual Studio to build Command Line programs. This works well.
In terms of complications, I think a Windows install of Arduino is the easiest. Just download and install the IDE and you're off to the races.
The Arduino IDE runs under Linux, get it with
sudo apt-get install arduino
You can get C and C++ if you don't already have them
sudo apt-get install gcc
sudo apt-get install g++
To get permissions to access to the /dev/ttyACM0 port for board programmng
sudo chmod a+rw /dev/ttyACM0 -- extra spaces added to make the command a little more clear.
A fun way to play with Arduino is the use a Raspberry Pi 4 as the development machine. If you have a spare monitor, keyboard and mouse, you are good to go. I just installed Arduino on mine and it's working properly after I did the 'chmod' command above.
My setup:
https://www.amazon.com/gp/product/B07V5JTMV9https://www.amazon.com/gp/product/B07TXSQ47Lhttps://www.amazon.com/gp/product/B07V5JTMV9I have only had Arduino running on Linux for about 5 minutes, I haven't had time to find the warts but it looks good!
It is worth the time to write the code for the examples in the book. Simply reading a book doesn't do anything for me. I have to actually type the code and run it. Even copy/paste doesn't work for me if I want to understand what is going on.