{"id":3629,"date":"2011-04-04T01:14:27","date_gmt":"2011-04-04T06:14:27","guid":{"rendered":"http:\/\/mightyohm.com\/blog\/?p=3629"},"modified":"2015-09-26T11:11:00","modified_gmt":"2015-09-26T18:11:00","slug":"best-book-to-learn-c","status":"publish","type":"post","link":"https:\/\/mightyohm.com\/blog\/2011\/04\/best-book-to-learn-c\/","title":{"rendered":"Best book to learn C?"},"content":{"rendered":"<p>If you could recommend one book to a total beginner who wants to learn how to program in <a href=\"http:\/\/en.wikipedia.org\/wiki\/C_(programming_language)\">C<\/a>, what would it be?<\/p>\n<p>It shouldn&#8217;t be microcontroller-specific (more general is better), but it does need to make sense to someone with <strong>zero <\/strong>programming experience (in any language).<\/p>\n<p>(Myself, I started with <a href=\"http:\/\/www.amazon.com\/gp\/product\/0131103628\/ref=as_li_ss_tl?ie=UTF8&amp;tag=mightyohm-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0131103628\">K&amp;R<\/a><img loading=\"lazy\" decoding=\"async\" style=\"border: none !important; margin: 0px !important;\" src=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=&amp;l=as2&amp;o=1&amp;a=0131103628\" border=\"0\" alt=\"\" width=\"1\" height=\"1\" \/>, although I had some experience with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Commodore_BASIC\">BASIC<\/a> (on the C64 and Apple II), <a href=\"http:\/\/en.wikipedia.org\/wiki\/Logo_(programming_language)\">Logo<\/a>, and shell programming before that.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you could recommend one book to a total beginner who wants to learn how to program in C, what would it be? It shouldn&#8217;t be microcontroller-specific (more general is better), but it does need to make sense to someone with zero programming experience (in any language). (Myself, I started with K&amp;R, although I had &hellip; <a href=\"https:\/\/mightyohm.com\/blog\/2011\/04\/best-book-to-learn-c\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Best book to learn C?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[40,10],"tags":[359,119,120],"class_list":["post-3629","post","type-post","status-publish","format-standard","hentry","category-books-and-resources","category-microcontrollers","tag-avrbook","tag-c","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pioCd-Wx","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":723,"url":"https:\/\/mightyohm.com\/blog\/2008\/12\/programming-and-customizing-picmicro-microcontrollers-by-myke-predko\/","url_meta":{"origin":3629,"position":0},"title":"Programming and Customizing PICmicro Microcontrollers, by Myke Predko","author":"Jeff","date":"December 24, 2008","format":false,"excerpt":"Programming & Customizing PICmicro Microcontrollers, by Myke Predko, is probably the best book out there for someone who is starting out with the PIC series of microcontrollers from Microchip.\u00a0 I used Myke's book as both a tutorial and reference when I created my PIC RGB Video Display.\u00a0 Since then, I\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"","src":"http:\/\/www.assoc-amazon.com\/e\/ir?t=mightyohm-20&l=as2&o=1&a=0071361723","width":350,"height":200},"classes":[]},{"id":294,"url":"https:\/\/mightyohm.com\/blog\/2008\/09\/arduino-based-avr-high-voltage-programmer\/","url_meta":{"origin":3629,"position":1},"title":"Arduino-based AVR High Voltage Programmer","author":"Jeff","date":"September 24, 2008","format":false,"excerpt":"Update 01\/02\/09: A PCB version of this circuit is in the design stages - some preliminary information is here. Update 03\/11\/09: Kits based on this design are now for sale! Update 12\/14\/10: The original AVR HV Rescue Shield kit has been replaced by the new and improved HV Rescue Shield\u2026","rel":"","context":"In &quot;Kits&quot;","block_context":{"text":"Kits","link":"https:\/\/mightyohm.com\/blog\/category\/kits\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/hvfuse_fixed.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/hvfuse_fixed.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/hvfuse_fixed.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/hvfuse_fixed.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/hvfuse_fixed.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":148,"url":"https:\/\/mightyohm.com\/blog\/2008\/08\/code-by-charles-petzold\/","url_meta":{"origin":3629,"position":2},"title":"Code, by Charles Petzold","author":"Jeff","date":"August 28, 2008","format":false,"excerpt":"Andrew Milmoe of Make:SF recommended Charles Petzold's book Code to me several months ago to help me refresh my knowledge of computer architecture as I dive into embedded systems development.\u00a0 I finally finished reading it this week and thoroughly enjoyed it.\u00a0 Code is both a history of the computer as\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"","src":"http:\/\/www.assoc-amazon.com\/e\/ir?t=mightyohm-20&l=as2&o=1&a=0735611319","width":350,"height":200},"classes":[]},{"id":287,"url":"https:\/\/mightyohm.com\/blog\/2008\/09\/i-programmed-the-rstdisbl-fuse\/","url_meta":{"origin":3629,"position":3},"title":"I programmed the RSTDISBL fuse.","author":"Jeff","date":"September 23, 2008","format":false,"excerpt":"AVR microcontrollers use \"fuse bits\" to set various operational parameters of the device, such as the speed of the internal oscillator or the watchdog timer settings. Most fuse bits can be set or reset without worry, that is, they can be flashed into one state and then flashed back again\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":822,"url":"https:\/\/mightyohm.com\/blog\/2008\/12\/building-a-wifi-radio-part-7-building-an-lcd-display\/","url_meta":{"origin":3629,"position":4},"title":"Building a Wifi Radio &#8211; Part 7, Building an LCD Display","author":"Jeff","date":"December 18, 2008","format":false,"excerpt":"This is the seventh part of an ongoing series about building a low cost, open source streaming internet radio.\u00a0 If you haven\u2019t already, check out the previous parts (see the links at the end of this article) for some background about the project. In part six, we used OpenWrt's UNIX-style\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"http:\/\/www.lduhtrp.net\/image-3238164-10440897","width":350,"height":200},"classes":[]},{"id":1419,"url":"https:\/\/mightyohm.com\/blog\/2009\/03\/introducing-the-avr-hv-rescue-shield\/","url_meta":{"origin":3629,"position":5},"title":"Introducing the AVR HV Rescue Shield","author":"Jeff","date":"March 11, 2009","format":false,"excerpt":"This all started last year, when I was playing with an ATmega168 microcontroller and did something silly.\u00a0 I programmed the RSTDISBL fuse bit, which effectively makes it impossible to reflash the chip using an ordinary (serial) programmer. Instead of giving up and throwing out the \"dead\" chip,\u00a0 I decided to\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"AVR HV Rescue Shield with ATmega168 target ","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2009\/03\/rescue-shield-with-atmega2_scaled-500x375.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/3629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/comments?post=3629"}],"version-history":[{"count":4,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/3629\/revisions"}],"predecessor-version":[{"id":7791,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/3629\/revisions\/7791"}],"wp:attachment":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/media?parent=3629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/categories?post=3629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/tags?post=3629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}