{"id":1042,"date":"2010-08-10T06:51:09","date_gmt":"2010-08-10T13:51:09","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=1042"},"modified":"2020-12-30T22:57:06","modified_gmt":"2020-12-31T03:57:06","slug":"book-review-the-pragmatic-programmer","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/","title":{"rendered":"Book Review: The Pragmatic Programmer"},"content":{"rendered":"<p>I recently completed reading <a href=\"http:\/\/www.amazon.com\/gp\/product\/020161622X\/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=020161622X&amp;linkCode=as2&amp;tag=makithecompsi-20\" target=\"_blank\" rel=\"noopener\">The Pragmatic Programmer<\/a> by <a href=\"http:\/\/www.amazon.com\/Andrew-Hunt\/e\/B001HMRWA6\/?_encoding=UTF8&amp;camp=1789&amp;creative=390957&amp;linkCode=ur2&amp;tag=makithecompsi-20\" target=\"_blank\" rel=\"noopener\">Andrew Hunt<\/a> and David Thomas.\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border: 0px;\" title=\"pragmatic\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic_thumb.jpg\" alt=\"the pragmatic programmer\" width=\"382\" height=\"382\" border=\"0\" \/><\/a>\\n\\nI wish I could take a time machine back to the year 2000 and read it then.\\n\\nSo much of the information in the book seems to be concepts that many software developers understand and take for granted as general knowledge now, that wasn\u2019t at the time of its writing.\\n\\nThe book is very much a collection of knowledge from years of practical experience writing code.\u00a0 It is very specific in stating what kind of specific coding practices should be carried out and which ones should be avoided.\\n\\nThe content of the book lays somewhere between the low level software construction in a book like <a href=\"http:\/\/www.amazon.com\/gp\/product\/0735619670\/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735619670&amp;linkCode=as2&amp;tag=makithecompsi-20\" target=\"_blank\" rel=\"noopener\">Code Complete<\/a> and a book targeting a higher level methodology or project management.\\n\\n<strong>Good:<\/strong>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>Years of experience packed into a small package.<\/li>\n<p>\\n    <\/p>\n<li>Most of the advice in this book is timeless.<\/li>\n<p>\\n    <\/p>\n<li>Practical real world truth instead of theoretical talk.<\/li>\n<p>\\n    <\/p>\n<li>Excellent focus on automation for everything you can automate.<\/li>\n<p>\\n    <\/p>\n<li>Technology independent advice.<\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<strong>Bad:<\/strong>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>There were definitely some dated pieces of advice that I wouldn\u2019t recommend following today.<\/li>\n<p>\\n    <\/p>\n<li>If you are already familiar with many of the software craftsmanship or general agile principles, much of this book will echo what you already know.\u00a0 (Can\u2019t fault the authors for that since this book is probably the origin of much of that information getting out, yet if you haven\u2019t read the book, you should know what to expect.)<\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<strong>What I learned:<\/strong>\\n\\nI really liked the section of the book that talked about using \u201ctracer bullets\u201d in software development.\u00a0 Basically the idea is that you can either prototype the software or build what you know and then adjust your aim to reach the user\u2019s real requirements instead of trying to specify up front.\\n\\nI think many times in development we get hung up on knowing all the details, but sometimes we need to fire \u201ctracer bullets\u201d first to see if we are hitting the target.\\n\\nI also realized that I am guilty often of programming by coincidence.\u00a0 Sometimes I will have put a magic incantation into the code and not really understood why it worked.\u00a0 It is very important to understand why something works, not just make it work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently completed reading The Pragmatic Programmer by Andrew Hunt and David Thomas.\\n\\n\\n\\nI wish I could take a time machine back to the year 2000 and read it then.\\n\\nSo much of the information in the book seems to be concepts that many software developers understand and take for granted as general knowledge now, that wasn\u2019t&#8230;<\/p>\n","protected":false},"author":2,"featured_media":1040,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7215,14560,264,5895],"tags":[],"class_list":["post-1042","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-book-review","category-career","category-learning","category-self-improvement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Book Review: The Pragmatic Programmer | Simple Programmer<\/title>\n<meta name=\"description\" content=\"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book&#039;s strengths.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Book Review: The Pragmatic Programmer | Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book&#039;s strengths.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2010-08-10T13:51:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-31T03:57:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"John Sonmez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Sonmez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Book Review: The Pragmatic Programmer\",\"datePublished\":\"2010-08-10T13:51:09+00:00\",\"dateModified\":\"2020-12-31T03:57:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/\"},\"wordCount\":406,\"commentCount\":4,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/08\\\/pragmatic.jpg\",\"articleSection\":[\"Book Review\",\"Career\",\"Learning\",\"Self Improvement\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/\",\"name\":\"Book Review: The Pragmatic Programmer | Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/08\\\/pragmatic.jpg\",\"datePublished\":\"2010-08-10T13:51:09+00:00\",\"dateModified\":\"2020-12-31T03:57:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"description\":\"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book's strengths.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/08\\\/pragmatic.jpg\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/08\\\/pragmatic.jpg\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/book-review-the-pragmatic-programmer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Book Review: The Pragmatic Programmer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\",\"name\":\"John Sonmez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"caption\":\"John Sonmez\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/jsonmez\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Book Review: The Pragmatic Programmer | Simple Programmer","description":"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book's strengths.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/","og_locale":"en_US","og_type":"article","og_title":"Book Review: The Pragmatic Programmer | Simple Programmer","og_description":"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book's strengths.","og_url":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/","og_site_name":"Simple Programmer","article_published_time":"2010-08-10T13:51:09+00:00","article_modified_time":"2020-12-31T03:57:06+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg","type":"image\/jpeg"}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Book Review: The Pragmatic Programmer","datePublished":"2010-08-10T13:51:09+00:00","dateModified":"2020-12-31T03:57:06+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/"},"wordCount":406,"commentCount":4,"image":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg","articleSection":["Book Review","Career","Learning","Self Improvement"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/","url":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/","name":"Book Review: The Pragmatic Programmer | Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg","datePublished":"2010-08-10T13:51:09+00:00","dateModified":"2020-12-31T03:57:06+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"description":"A book review of The Pragmatic Programmer by Andrew Hunt and David Thomas. Explains what the reader should expect in the book and the book's strengths.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/08\/pragmatic.jpg","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/book-review-the-pragmatic-programmer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Book Review: The Pragmatic Programmer"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67","name":"John Sonmez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","caption":"John Sonmez"},"url":"https:\/\/simpleprogrammer.com\/author\/jsonmez\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/1042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=1042"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/1042\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/1040"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=1042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=1042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=1042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}