I learned about C with a book called "Head First C" about two years ago and it was amazing. It was kind of like a game, written in order to be fun. I learned so much in that book, about system calls, signals, file descriptors, processes, pipes etc.. it was amazing.
I also used the AWK Programming Language about a year ago and it was amazing too.
It was definitely a challenge to keep reading the book because i think I've become so used to instant gratification but books require multiple reading sessions... I have pretty strong ADHD so i actually feel really accomplished just by finishing and working through a (seemingly simple) book. :)
I've definitely heard of some games that teach programming skills getting popular. For example, https://flexboxfroggy.com/ http://www.flexboxdefense.com/ for teaching css layout.
https://www.freecodecamp.org/ isn't marketed as a game, but absolutely feels like one when you are going through the program.
https://www.hackthebox.com/ is another great example.
As to reading books, I used a lot of resources to become a programmer, but books weren't one of them. I'd wager hardly anybody uses books today.