October 25, 2016

The Problem with Computer Programming Books

Filed under: Main — admin @ 12:01 am

Recently, I took it upon myself to learn another computer programming language. I enjoy C and have coded in it longer than any other language. I support my books on c-for-dummies.com. But newer languages offer better tools and so I set out to learn a few.

I’m not going to say which languages I plucked from the electronic ether because I’m going to be hyper critical of a few book. Specifically, these a programming books, many of which are in the For Dummies line.

And these books are just awful.

The problem isn’t the author’s knowledge, which is always good. Unlike the old days, publishers aren’t going to choose just any old piker to write a book. The authors I’ve read obviously know their stuff. Good.

The problem isn’t with the writing. Each author does a fine job putting together coherent thoughts, following-up on ideas, and explaining the topic. Some of the real world examples are silly, but the point comes across.

No, the weakness I speak of, for which I’m not mentioning any specific authors or titles, is in the examples. For both the programming languages I decided to learn, each book is dreadfully weak on examples.

One book in particular covers the topic of object-oriented programming. The author does so in depth and the writing is good. The problem? For three chapters in a row, not a single practice program is presented.

The author provides code illustrations, for sure. But these are just snippets of code; incomplete programs that illustrate a point or two, but which I cannot compile. To really help drive home the point, the author must provide code that I can type in and play with. It’s my opinion that the best way to learn programming is to do so.

Not only that, but so many of the examples (in pretty much every book I’ve read, and I bought a lot of books!) work perfectly. Yes, you would expect them to, but learning to program also involves trial and error. So the author will write, “Don’t do this because,” which it’s better to learn by typing in some non-working code, seeing the error, and then have the author explain why the program screwed up. That way you learn by doing, which I believe is the best way to learn.

In my C programming books, you’ll find plenty of examples. Each concept has several programs related to it, many of which build upon the other. And the programs may not run properly the first time, just so I can drive home a point. I wish more writers would do that.

Surprisingly, the best resource I’ve found is at Lynda/LinkedIn with online training. The teachers of the various programming courses provided many examples and offer code you can quickly type in and use. They also show what happens when you screw up, which is great. If only more people wrote books that way.

4 Comments

  1. “But these are just snippets of code; incomplete programs that illustrate a point or two, but which I cannot compile.”
    That is why I liked ‘C For Dummies’ it always gave a fully working program which you could mess with, also having to type everything yourself meant you got a feeling for what was right quicker & you practiced typing accurately (which in itself is immportant!)…

    Comment by glennp — October 30, 2016 @ 1:33 am

  2. Thank you.

    I learned to program from the early TRS-80 BASIC guides, pioneered by David Lien. He used short, illustrative programs and encouraged you to modify them. He also deliberately inserted mistakes. These books were tremendously popular, yet no one else seems to use that same style, which I find puzzling.

    Comment by admin — October 30, 2016 @ 8:53 am

  3. Dan- Cant you at least tell use which programming languages you are learning? I hope its one of the newer compiled languages like Go, Swift or Rust.

    Remember 20 years ago how many programming languages were in common use? There was C, C++, Delphi, Perl and Visual Basic. Thats it. We have lots of really good languages to choose from now.

    Also I still recommend your book C for Dummies All-In-One Desk Reference. It is the best and in my opinion only choice to learn C for a total noob. I cant believe how many people get trolled into trying to learn C from K&R.

    Comment by BradC — November 3, 2016 @ 8:24 pm

  4. Thanks for the compliment, BradC.

    I took a stab at learning Swift, which seems really neat. I dropped it and tried Java again and got pretty far, but the books lacked examples. The online course (LinkedIn Learning) was good, but moved too fast. Right now, I’m studying OpenGL, which is more of a library than a programming language.

    Comment by admin — November 4, 2016 @ 2:08 pm

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.


Powered by WordPress