{"id":8596,"date":"2016-10-25T00:01:20","date_gmt":"2016-10-25T07:01:20","guid":{"rendered":"http:\/\/www.wambooli.com\/blog\/?p=8596"},"modified":"2016-10-08T18:12:56","modified_gmt":"2016-10-09T01:12:56","slug":"the-problem-with-computer-programming-books","status":"publish","type":"post","link":"https:\/\/www.wambooli.com\/blog\/?p=8596","title":{"rendered":"The Problem with Computer Programming Books"},"content":{"rendered":"<p>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 <a href=\"http:\/\/c-for-dummies.com\/\" target=\"_blank\">c-for-dummies.com<\/a>. But newer languages offer better tools and so I set out to learn a few.<br \/>\n<!--more--><br \/>\nI&#8217;m not going to say which languages I plucked from the electronic ether because I&#8217;m going to be hyper critical of a few book. Specifically, these a programming books, many of which are in the <em>For Dummies<\/em> line.<\/p>\n<p>And these books are just awful.<\/p>\n<p>The problem isn&#8217;t the author&#8217;s knowledge, which is always good. Unlike the old days, publishers aren&#8217;t going to choose just any old piker to write a book. The authors I&#8217;ve read obviously know their stuff. Good.<\/p>\n<p>The problem isn&#8217;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.<\/p>\n<p>No, the weakness I speak of, for which I&#8217;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.<\/p>\n<p>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.<\/p>\n<p>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&#8217;s my opinion that the best way to learn programming is to do so.<\/p>\n<p>Not only that, but so many of the examples (in pretty much every book I&#8217;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, &#8220;Don&#8217;t do this because,&#8221; which it&#8217;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.<\/p>\n<p>In my C programming books, you&#8217;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.<\/p>\n<p>Surprisingly, the best resource I&#8217;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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fortunately, learning from a book isn&#8217;t your only option these days.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-8596","post","type-post","status-publish","format-standard","hentry","category-main"],"_links":{"self":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8596"}],"version-history":[{"count":1,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8596\/revisions"}],"predecessor-version":[{"id":8597,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8596\/revisions\/8597"}],"wp:attachment":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}