
Teach Yourself C begins with the fundamentals, covers all the essentials, and concludes with a look at some of C's most advanced features. Along the way are plenty of practical examples, self-evaluation skill checks, and exercises. Answers to all exercises at the back of the book, so you can easily check your progress. Best of all, you'll learn with Schildt's proven "mastery" method: the highly effective yet versatile approach that has helped millions become skilled programmers. This approach lets you work at your own pace, in your own way. Even if you have found C confusing in the past, Schildt's clear, paced presentation will make even advanced topics easy to understand.
But the bulk of it, IMO, was just reading books (Teach Yourself C by Herbert Schildt was were it all really started for me) and working through the exercises. So hours and hours and hours of firing up Turbo C++ and going through the exercises in that book, and then later others. I majored in Computer Science at UNC-W (but dropped out before graduating) and that is where I was exposed to the Deitel & Deitel books, and after that I spent a lot of time reading and doing exercises in C:How to Program, C++:How to Program, and Java:How to Program by Deitel & Deitel.
There was more formal schooling that came after that era, but I look at the bulk of my programming education as being all that reading and coding I did back in the late 90's and very early 2000's.
That said, I'm still learning even now, so the story hasn't been fully told just yet. Maybe we get one of those Matrix style direct neural interface things, so I can "jack in" and experience a "Prolog? I'm going to learn Prolog??" moment before it's all said and done.
As history would have it, that's pretty close to what I did. I bought a 386DX/40 motherboard and CPU, a whopping 1 megabyte of RAM, and a few other bits, as I pieced together my first PC. Then a guy I went to school with offered to sell me a dead 286 box that had a good power supply, videocard, floppy drives, etc., that I needed, so I bought that, and cobbled together this Frankenstein's PC of a computer. Got myself a 28.8 modem and start exploring BBS's, Tymnet and Telenet networks, reading Phrack magazine, got into phone phreaking and other sordid activities...
Then somehow I got hold of a shareware C compiler, and a copy of Herbert Schildt's book Teach Yourself C. That started an addiction that led to Borland Turbo C++ for DOS, and the need to upgrade my computer to an absurd 4 megabytes of RAM.. and eventually to Borland C++ (the full suite), a whole shelf full of C/C++ books, and my earliest forays into this strange world of something called "linux" and "open source". Then came the Internet, Slashdot, Kuro5hin, Freshmeat, BOFH, Sluggy Freelance, User Friendly, Dilbert, etc...
Years later - who knew that this is where it would all lead? wistful sigh
Call me a sentimental old fart, but Computer Shopper will always hold a special place in my heart. :-)
Other than that, I can recall being influenced by a number of the X: How To Program[1] books by Deitel and Deitel. I might also mention Rapid Development and Code Complete by Steve McConnell. And The Pragmatic Programmer had some influence.
[1]: including "C: How to Program", "C++: How to Program" and "Java: How to Program".
Fast forward to 1993 or so, I was at Brunswick Community College, and took an "Intro to programming logic" class and some other "Intro to Programming" class. I also built my first real PC (a 386DX/40 system with 1MB of RAM, which I later upgraded to a WHOPPING 4MB so I could run Borland C++). Anyway, I bought a copy of Herbert Schildt's book Teach Yourself C, downloaded a C compiler from some BBS (I didn't have Internet access yet at this time) and started learning to code in C. I consider this the real beginning of my programming education.
Fast forward to 1995 and I'm at UNC-W and taking another introductory level programming class, and it's about the first or second week of class and the instructor (Dr. Adhar) gives us some lab assignment to code in C. I code it up and wait as he's coming around checking on people. He gets to me, looks at my code, and in this awesome sing-song / rolling accent of his (I think he was from Pakistan or something like that) he goes "Aaaah, I see you be using techniques I no teach yet. Very good. Carry on." And it's been a continual process of learning more and more ever since.
I went from C, to C++, to Java, to Groovy, and mixed in splashes of Python, R, Octave, Kotlin, Prolog, LISP, etc. over the years. These days if I'm writing code it's usually either in Java, Python, or Groovy.
Fast forward a couple years, and I'm in my first semester in college. I had some advisor (no recollection whatsoever who it was) recommend that I avoid declaring a major for a semester and just take a few courses in a variety of my interests. What a life saver.
I bought my first Java book and started digging into it. It was a lot more approachable than the C book (sorry Herb!). I attended the first class and realized I'd already read past the end of what the class covered. That started a 15+ year journey (so far) on a path I thought I'd turned away from.
I still play and enjoy the guitar. But I know I'll never be better as a musician than I am as a technologist.
The appeal for me was to give, as you wrote, a simple interface to programming. The Apple RAM II I had was not as easily accessible for programming at my single digit age. QBasic was available on the 486 SX based MS-DOS OS we had, and it opened my eyes. Within a year or two I was reading Herb Schildt' "Teach Yourself C" and using Borland C for the first time. But at a young age you need that first step to be accessible!
Nice one...
