This is a wrong statement on so many levels: "By learning C, you can learn how computers work". I am glad you did write an article but honestly you did not have to go to this length to explain your case. Anyone who says that learning C is a prereq. for understanding Computer architecture then my friend the advice is not coming from a right place. One reason I can think of is why author got confused is because a lot of freshman courses use C programming language in order to explain the computer architecture.
This course starts with assembly language and then use C as the first programming language in order to understand computer architecture. C is the de-facto language when it comes to teaching embedded systems (think limited HW resources like memory etc).
A similar textbook[0] is used at UIUC in the Computer Engineering curriculum. I've read both books and I think this one is better, but its not free and its priced like a textbook[1].
e.g. http://www.ece.utexas.edu/undergraduate/courses/306 use this textbook: https://www.amazon.com/Introduction-Computing-Systems-Gates-...
This course starts with assembly language and then use C as the first programming language in order to understand computer architecture. C is the de-facto language when it comes to teaching embedded systems (think limited HW resources like memory etc).
Learn Assembly to learn how computer works!