{"id":40059,"date":"2021-06-19T07:52:00","date_gmt":"2021-06-19T11:52:00","guid":{"rendered":"https:\/\/www.shortform.com\/blog\/?p=40059"},"modified":"2021-06-26T14:09:59","modified_gmt":"2021-06-26T18:09:59","slug":"the-clean-coder-book","status":"publish","type":"post","link":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/","title":{"rendered":"The Clean Coder: Book on Coding Defines Top Skills"},"content":{"rendered":"\n<p>What is Robert C. Martin&#8217;s <em>The Clean Coder<\/em> about? What qualities, according to the author, distinguish a professional developer?<\/p>\n\n\n\n<p>In his book, <em>The Clean Coder<\/em>, expert developer Robert C. Martin explains how to be a programming professional\u2014an honorable, reliable employee who produces <a href=\"https:\/\/www.shortform.com\/blog\/obsess-over-quality\/\">quality work<\/a> (or takes responsibility for the rare times she doesn\u2019t). A professional&#8217;s most important responsibility is to meet their employer\u2019s needs.<\/p>\n\n\n\n<p>Below is a brief overview of <em>The Clean Coder: A Code of Conduct for Professional Programmers<\/em> by Robert C. Martin.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><em>The Clean Coder: A Code of Conduct for Professional Programmers<\/em><\/h2>\n\n\n\n<p>People (including developers) don\u2019t consider developers professionals, and this is partly because developers don\u2019t act like professionals. Martin certainly didn\u2019t, when he started his career\u2014he missed deadlines, didn\u2019t test code before releasing it, and was such a <a href=\"https:\/\/www.shortform.com\/blog\/weak-leaders\/\">bad leader<\/a> he got two people working under him fired. In this book, he shares the lessons learned the hard way, in the hopes that he can help you avoid making some of the same mistakes.<\/p>\n\n\n\n<p>In his 2011 book The Clean Coder: A Code of Conduct for Professional Programmers, you will learn about the six qualities and skills of a professional programmer and how to develop them:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Commitment to professional development<\/li><li>Discipline<\/li><li>Honesty (around estimates and deadlines)<\/li><li>Communication (via testing)<\/li><li>Time management<\/li><li>Collaboration<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #1: Commit to Your Professional Development<\/strong><\/h3>\n\n\n\n<p><strong>The first quality of a professional is a commitment to professional development. <\/strong>The hours you put into your day job rarely contribute to your professional development because at work, you often perform tasks and skills you already know how to do. Therefore, to be a professional, <strong>you should spend 20 hours per week of personal time on improving your programming skills and learning new ones.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(Shortform example: If you\u2019re a front-end web developer by day, you won\u2019t have any opportunity at work to practice working the back end, so you\u2019ll need to learn those skills on your own time.)<\/li><\/ul>\n\n\n\n<p>Use these hours to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Improve your existing skills. <\/strong>Contribute pro bono to open source projects and do coding exercises like kata, ping-pong, or randori. Aim to get the unconscious part of your mind to recognize a problem and your body to instinctively react to it (for example, by hitting a particular combination of keys). This leaves the rest of your mind free to focus on strategy and problem-solving.<\/li><li><strong>Learn new skills. <\/strong>Learn about the industry\u2019s history, new developments, and your customer or employer\u2019s field. Additionally, develop your error sense (becoming aware of mistakes as you make them) and humility (accept you\u2019ll make mistakes, and don\u2019t attack others for theirs).<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #2: Practice Discipline<\/strong><\/h3>\n\n\n\n<p>Professional quality #2 is discipline\u2014a collection of rules and standards around the act of coding. Everyone\u2019s discipline is personal and unique, and in this section, Martin shares his rules as inspiration.<\/p>\n\n\n\n<p><strong>Rule #1: Avoid doing damage, or when you can\u2019t, <a href=\"https:\/\/www.shortform.com\/blog\/accepting-responsibility\/\">take responsibility<\/a>. <\/strong>To avoid doing damage:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Personally and regularly test <\/strong><strong><em>all <\/em><\/strong><strong>of your code.<\/strong> Before you release your code to anyone, including Quality Assurance, make sure you know that it works.&nbsp;<\/li><li><strong>Learn from bugs<\/strong> so you can avoid making the same mistake in the future.<\/li><li><strong>Clean up bad code. <\/strong>When you come across something you know how to improve, refactor it.<\/li><\/ul>\n\n\n\n<p><strong>Rule #2: Don\u2019t code while you\u2019re tired or worried.<\/strong> if you\u2019re not in a mental space in which you can concentrate, you\u2019re going to make mistakes and have to throw out most of your work. If you\u2019re tired or worried:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Disengage and recharge.<\/strong> Once you\u2019ve used up all your focus, you need to recharge by disengaging and spending at least an hour doing something that doesn\u2019t require focus. For example, you might go for a drive, exercise, or take a nap.&nbsp;<\/li><li><strong>Boost your focus reserves and use them wisely.<\/strong> Get enough sleep, use caffeine only in moderation, and pace yourself. When you have focus, code, when you don\u2019t, do other work that\u2019s less mentally taxing.<\/li><li><strong>Address distractions.<\/strong> If you\u2019re worried about something, part of your brain will be occupied with the worry instead of thinking about your code. Devote some time (often an hour) to addressing the worry\u2014making some progress can reduce your anxiety enough to let you work.<\/li><\/ul>\n\n\n\n<p><strong>Rule #3: Don\u2019t wallow in writer\u2019s block.<\/strong> When you\u2019re <a href=\"https:\/\/www.shortform.com\/blog\/stuck-in-life\/\">feeling stuck<\/a>, try the following techniques to get past the block:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Increase your <a href=\"https:\/\/www.shortform.com\/blog\/media-consumption\/\">content consumption<\/a>. <\/strong>Consuming creative content (like reading sci-fi novels) will help you output creativity\u2014inspired by someone else\u2019s work, you\u2019ll want to create your own.<\/li><li><strong>Pair program. <\/strong>Working with someone else will nearly always refresh you. Martin feels a physiological change when pair programming.<\/li><\/ul>\n\n\n\n<p><strong>Rule #4: Avoid or minimize time pressure<\/strong>. The best way to deal with pressure is to avoid it. To do this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Adhere to your rules.<\/strong> You\u2019ll be most efficient if you don\u2019t break things, don\u2019t get stuck behind writer\u2019s block, and so on.<\/li><li><strong>Use your crisis behaviors all the time.<\/strong> In a crisis, you\u2019ll use the most effective and efficient method of doing something. If you use your crisis methods all the time, you\u2019ll be as efficient as you are in emergencies all the time.<\/li><li><strong>Say no to unreasonable deadlines<\/strong>. See Quality #3 for more on this.<\/li><li><strong>Watch out for manipulative client behaviors. <\/strong>If a client describes the project as simple and easy, fails to discuss all required features, or pushes deadlines, you might want to avoid working with them.<\/li><\/ul>\n\n\n\n<p><strong>Rule #5: Avoid the \u201czone\u201d when you\u2019re working. <\/strong>The \u201czone\u201d is a state of mind that makes you <em>feel <\/em>focused, productive, and invincible. In reality, you\u2019re not being more productive\u2014the zone is just a <a href=\"https:\/\/www.shortform.com\/blog\/meditation-states\/\">meditative state<\/a> in which parts of your brain shut off. You\u2019ll write more code, but because you\u2019ve got tunnel vision, you\u2019ll probably have to revise what you\u2019ve written so it fits into the larger structures. If you feel the zone approach, arrest its onset by taking a break or pair programming (you can\u2019t get hyper-focused on your code if you have to talk to someone.)<\/p>\n\n\n\n<p><strong>Rule #6: Be careful with music. <\/strong>Some people find music helps them concentrate; for others, it pushes them into the zone or distracts them.<\/p>\n\n\n\n<p><strong>Rule #7: Finish properly. <\/strong>Completely finish all tasks before declaring them \u201cdone\u201d and define \u201cdone\u201d as \u201cpassed all tests\u201d (for more on tests, see Quality #4). Don\u2019t accept partial completion for any reason, including if you\u2019re short on time.<\/p>\n\n\n\n<p><strong>Rule #8: Give and accept help.<\/strong> Programming is so hard it requires more than one brain. When people ask you for help, always give it, and if someone appears to be struggling, offer to pair program with her even if she doesn\u2019t ask. Similarly, always accept help when it\u2019s offered and ask for it when you\u2019re stuck. It\u2019s unprofessional to waste paid time staring at a screen when help is available.<\/p>\n\n\n\n<p><strong>Rule #9: Deal with interruptions efficiently and gracefully.<\/strong> You\u2019ll inevitably be interrupted while coding. Here are some strategies to quickly refocus on your work after an interruption:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Pair program.<\/strong> When you get interrupted, your partner can keep track of your place and thought process.<\/li><li><strong>Use a workflow that holds your place for you. <\/strong>For example, in test-driven development (more in Quality #4), you alternate writing short tests and short pieces of code. Because these steps are in such a strict order, you can quickly <a href=\"https:\/\/www.shortform.com\/blog\/find-your-place-in-the-world\/\">find your place<\/a> when you return.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #3: Be Honest About Deadlines<\/strong><\/h3>\n\n\n\n<p>The third professional quality is honesty, especially in the face of estimates and deadlines. Whenever you\u2019re programming something for someone, they always want to know when it will be done.<strong> Most of the time, you won\u2019t know exactly how long something will take, so you\u2019ll provide an estimate instead of a guaranteed commitment<\/strong>. Estimates aren\u2019t promises, so missing them isn\u2019t unprofessional, but professionals <em>do <\/em>make their estimates as accurate as possible.<\/p>\n\n\n\n<p><strong>To that end, estimates aren\u2019t single numbers\u2014they\u2019re probability distributions. <\/strong>They factor in the following <em>three <\/em>numbers:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Best-case.<\/strong> If <em>everything <\/em>goes right, you\u2019ll be finished in this amount of time. This number should be <em>very<\/em> optimistic\u2014there\u2019s only a 1% chance that you\u2019ll make this number.<\/li><li><strong>Nominal. <\/strong>This is the amount of time you think is most likely.<\/li><li><strong>Worst-case.<\/strong> If <em>everything <\/em>goes wrong, you\u2019ll be finished in this amount of time. This number should be <em>very<\/em> pessimistic\u2014there\u2019s only a 1% chance that this is how long the task will take you.<\/li><\/ul>\n\n\n\n<p>When giving estimations, you should mention all three numbers.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #4: Communicate via Testing<\/strong><\/h3>\n\n\n\n<p>The fourth professional quality is communication, which is best done via testing. Tests ensure that a system works, but that\u2019s a happy bonus, not their main purpose. The most important purpose of a test is to communicate, specify, and document how a system is supposed to work and how it actually works. The best way to do that is via acceptance testing.<\/p>\n\n\n\n<p><strong>Acceptance tests are automatic tests that determine if the system behaves the way the business wants it to<\/strong>\u2014in other words, these tests specify what the system is supposed to do. Therefore, acceptance tests are the most unambiguous way to communicate about system requirements\u2014there\u2019s no possibility of misunderstandings or inaccurate assumptions.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if a client requires that an operation completes in under two seconds so a user doesn\u2019t experience a delay, the test checks if the operation completes fast enough.<\/li><\/ul>\n\n\n\n<p><strong>Acceptance tests are co-written by clients and testers or QA (Quality Assurance)<\/strong>. The client will usually come up with the happy-path test and QA will write the unhappy-path tests that cover unusual scenarios. Then, it\u2019s the developers\u2019 job to add the tests to the system and build something that passes them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #5: Manage Your Time Well<\/strong><\/h3>\n\n\n\n<p>The fifth quality of professionals is that they manage their time well. There are three techniques professionals use for time management:<\/p>\n\n\n\n<p><strong>Technique #1: Attend meetings strategically. <\/strong>Meetings take up a lot of time and are expensive\u2014they require renting a location and paying for the time of the attendees. Therefore, professionals strive to make the best use of meetings by:<\/p>\n\n\n\n<p><strong>1. Avoiding time-wasting meetings.<\/strong> Only go to meetings if you\u2019ll gain information that\u2019s important to your current project, your presence will help someone, the meeting is about something interesting and you have time, and\/or the meeting has an agenda, schedule, and goal. If the meeting stops meeting these criteria partway through, ask to get back on topic or leave.<\/p>\n\n\n\n<p><strong>2. Running meetings efficiently.<\/strong> Many of the meetings you attend will be structured based on the Agile canon. (Shortform note: Agile is a collection of software development practices.) Here\u2019s how to run the three types efficiently:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Stand-up meetings.<\/strong> All participants must stand during the meeting, and everyone gets only 20 seconds to respond to each of the following questions:<ul><li>What did you work on yesterday?<\/li><li>What are you going to work on today?<\/li><li>What\u2019s preventing you from doing what you\u2019re going to do today?<\/li><\/ul><\/li><li><strong>Iteration planning meetings.<\/strong> The goal of these meetings is to choose which backlog tasks to include as part of the following iteration. The discussion of each task should only take five to 10 minutes because estimates, business values, and acceptance tests for tasks should be established before the meeting.<\/li><li><strong>Iteration review. <\/strong>Hold these meetings at the end of every iteration. The goal is to talk about what went right and wrong (maximum of 20 minutes) and to demo the results of the iteration to stakeholders (maximum of 25 minutes).<\/li><\/ul>\n\n\n\n<p><strong>3. Keeping a handle on arguments.<\/strong> If an argument breaks out during a meeting and it lasts more than five to 30 minutes, further discussion isn\u2019t productive. You can settle the argument either by gathering more data (likely no one can win because no one has convincing evidence) or asking meeting participants to voice.<\/p>\n\n\n\n<p><strong>Technique #2: Use the <a href=\"https:\/\/www.shortform.com\/blog\/infographic-pomodoro-technique\/\">Pomodoro technique<\/a>.<\/strong> Pomodoro is a way of reserving chunks of time for uninterrupted (and therefore productive) work. It works like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Start a timer for 25 minutes. Focus on your work for 25 minutes and don\u2019t let anyone interrupt you. When the timer goes off, stop working.<\/li><li>Address any interruptions you ignored during your 25 minutes.<\/li><li>Take a five-minute break.<\/li><li>Do another 25 minutes of work.<\/li><li>After four 25-minute sets, take a half-hour break.<\/li><\/ul>\n\n\n\n<p><strong>Technique #3: Avoid priority inversion.<\/strong> Priority inversion is when you avoid unpleasant work (work that\u2019s dull, frightening, or uncomfortable) by doing a lower-priority task instead (and often invent some justification). Do your tasks in the real priority order.<\/p>\n\n\n\n<p><strong>Technique #4: Avoid and abandon dead ends and messes.<\/strong> Abandon a course of action <em>as soon<\/em> <em>as<\/em> you realize it\u2019s going nowhere and try something else. Don\u2019t get mired in a mess before you officially hit the dead end\u2014turn back as soon as possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Quality #6: Collaborate<\/strong><\/h3>\n\n\n\n<p>The final quality of professionals is the ability to work with others. We\u2019ll cover two elements of collaboration:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Element #1: Teamwork<\/strong><\/h4>\n\n\n\n<p><strong>Professionalism involves doing whatever produces the best possible work, and the majority of the time, the best work is achieved via collaboration.<\/strong> The best way to collaborate is to put together a permanent team that works on multiple projects together (versus making a new team for every new project) because:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>It takes time for a team to become effective.<\/strong> It can take six months to a year for a group of people to gel (learn how to work together by leveraging strengths and weaknesses, supporting each other, and so on).&nbsp;<\/li><li><strong>Teams that work on multiple projects can better allocate strengths and weaknesses. <\/strong>(Shortform example: People who are good at debugging can work on the debugging aspects of all the projects.)<\/li><li><strong>The team can quickly adjust priorities.<\/strong> If one of the team\u2019s projects goes into crisis, the team can pause on their other projects and focus on that one.&nbsp;<\/li><\/ul>\n\n\n\n<p>Once a team is assembled, here are some techniques for <a href=\"https:\/\/www.shortform.com\/blog\/effective-collaboration\/\">effective collaboration<\/a>:<\/p>\n\n\n\n<p><strong>1. Share code. <\/strong>Anyone should be able to make improvements to any part of the code. That way, people can work with each other and learn from each other.<\/p>\n\n\n\n<p><strong>2. Pair program.<\/strong> Not only is pair programming efficient, but it also allows people to share knowledge about both the system and the business, and familiarity with other people\u2019s work allows team members to take over for each other in emergencies. Additionally, pair programming is the most efficient way to review code.<\/p>\n\n\n\n<p><strong>3. Work physically close to each other.<\/strong> Face each other when you\u2019re sitting around a table, and be close enough to talk and read <a href=\"https:\/\/www.shortform.com\/blog\/body-language-crucial-conversations\/\">body language<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Element #2: Mentoring<\/strong><\/h4>\n\n\n\n<p><strong>In addition to teamwork, collaborate by mentoring. It\u2019s the professional and ethical duty of experienced programmers to mentor newbies, and it\u2019s newbies\u2019 duty to ask for mentorship.<\/strong> This is because inexperienced coders can cost a company a lot of money and do a lot of damage.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, software controls some high-stakes systems such as banking systems.<\/li><\/ul>\n\n\n\n<p>Mentoring teaches technical skills and professionalism, and instills craftsmanship\u2014the mindset of attitudes, techniques, values, and disciplines required for coding. <strong>Mentoring is the only way to learn many of these skills\u2014school and courses can teach theory but not practice.&nbsp;<\/strong><\/p>\n\n\n\n<p>Martin\u2019s ideal mentoring system includes the following roles and responsibilities.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Masters <\/strong>have over 10 years of experience with various systems and languages, have led at least one important project, and are skilled coders, architects, and designers. Masters mentor journeypeople.<\/li><li><strong>Journeymen and women<\/strong> have around five years of experience with one system and language. They mentor less experienced people.<\/li><li><strong>Apprentices<\/strong> have less than a year of experience. They don\u2019t have their own tasks\u2014they help journeymen and women and regularly participate in pair programming.<\/li><\/ul>\n\n\n\n<p><strong>The level of mentorship required depends on experience.<\/strong> The less experienced an apprentice or journeywoman, the more supervision is required. Apprentices should have no autonomy, and experienced journeywomen should be peer-reviewed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Robert C. Martin&#8217;s The Clean Coder about? What qualities, according to the author, distinguish a professional developer? In his book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional\u2014an honorable, reliable employee who produces quality work (or takes responsibility for the rare times she doesn\u2019t). A professional&#8217;s most important responsibility is to meet their employer\u2019s needs. Below is a brief overview of The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin.<\/p>\n","protected":false},"author":7,"featured_media":12572,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[40,29,30],"tags":[397],"class_list":["post-40059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-books","category-career","category-work","tag-the-clean-coder","","tg-column-two"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.3 (Yoast SEO v24.3) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Clean Coder: Book on Coding Defines Top Skills - Shortform Books<\/title>\n<meta name=\"description\" content=\"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Clean Coder: Book on Coding Defines Top Skills\" \/>\n<meta property=\"og:description\" content=\"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\" \/>\n<meta property=\"og:site_name\" content=\"Shortform Books\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-19T11:52:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-26T18:09:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/s3.amazonaws.com\/wordpress.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Darya Sinusoid\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Darya Sinusoid\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\"},\"author\":{\"name\":\"Darya Sinusoid\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46\"},\"headline\":\"The Clean Coder: Book on Coding Defines Top Skills\",\"datePublished\":\"2021-06-19T11:52:00+00:00\",\"dateModified\":\"2021-06-26T18:09:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\"},\"wordCount\":2672,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg\",\"keywords\":[\"The Clean Coder\"],\"articleSection\":[\"Books\",\"Career\",\"Work\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\",\"name\":\"The Clean Coder: Book on Coding Defines Top Skills - Shortform Books\",\"isPartOf\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg\",\"datePublished\":\"2021-06-19T11:52:00+00:00\",\"dateModified\":\"2021-06-26T18:09:59+00:00\",\"description\":\"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.shortform.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Clean Coder: Book on Coding Defines Top Skills\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#website\",\"url\":\"https:\/\/www.shortform.com\/blog\/\",\"name\":\"Shortform Books\",\"description\":\"The World&#039;s Best Book Summaries\",\"publisher\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.shortform.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\",\"name\":\"Shortform Books\",\"url\":\"https:\/\/www.shortform.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png\",\"width\":500,\"height\":74,\"caption\":\"Shortform Books\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46\",\"name\":\"Darya Sinusoid\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png\",\"caption\":\"Darya Sinusoid\"},\"description\":\"Darya\u2019s love for reading started with fantasy novels (The LOTR trilogy is still her all-time-favorite). Growing up, however, she found herself transitioning to non-fiction, psychological, and self-help books. She has a degree in Psychology and a deep passion for the subject. She likes reading research-informed books that distill the workings of the human brain\/mind\/consciousness and thinking of ways to apply the insights to her own life. Some of her favorites include Thinking, Fast and Slow, How We Decide, and The Wisdom of the Enneagram.\",\"url\":\"https:\/\/www.shortform.com\/blog\/author\/darya\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Clean Coder: Book on Coding Defines Top Skills - Shortform Books","description":"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.","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:\/\/www.shortform.com\/blog\/the-clean-coder-book\/","og_locale":"en_US","og_type":"article","og_title":"The Clean Coder: Book on Coding Defines Top Skills","og_description":"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.","og_url":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/","og_site_name":"Shortform Books","article_published_time":"2021-06-19T11:52:00+00:00","article_modified_time":"2021-06-26T18:09:59+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/s3.amazonaws.com\/wordpress.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","type":"image\/jpeg"}],"author":"Darya Sinusoid","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Darya Sinusoid","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#article","isPartOf":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/"},"author":{"name":"Darya Sinusoid","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46"},"headline":"The Clean Coder: Book on Coding Defines Top Skills","datePublished":"2021-06-19T11:52:00+00:00","dateModified":"2021-06-26T18:09:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/"},"wordCount":2672,"commentCount":0,"publisher":{"@id":"https:\/\/www.shortform.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage"},"thumbnailUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","keywords":["The Clean Coder"],"articleSection":["Books","Career","Work"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/","url":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/","name":"The Clean Coder: Book on Coding Defines Top Skills - Shortform Books","isPartOf":{"@id":"https:\/\/www.shortform.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage"},"thumbnailUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","datePublished":"2021-06-19T11:52:00+00:00","dateModified":"2021-06-26T18:09:59+00:00","description":"In his 2011 book, The Clean Coder, expert developer Robert C. Martin explains how to be a programming professional. Here is a brief overview.","breadcrumb":{"@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#primaryimage","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/www.shortform.com\/blog\/the-clean-coder-book\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.shortform.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Clean Coder: Book on Coding Defines Top Skills"}]},{"@type":"WebSite","@id":"https:\/\/www.shortform.com\/blog\/#website","url":"https:\/\/www.shortform.com\/blog\/","name":"Shortform Books","description":"The World&#039;s Best Book Summaries","publisher":{"@id":"https:\/\/www.shortform.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.shortform.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.shortform.com\/blog\/#organization","name":"Shortform Books","url":"https:\/\/www.shortform.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png","width":500,"height":74,"caption":"Shortform Books"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46","name":"Darya Sinusoid","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png","caption":"Darya Sinusoid"},"description":"Darya\u2019s love for reading started with fantasy novels (The LOTR trilogy is still her all-time-favorite). Growing up, however, she found herself transitioning to non-fiction, psychological, and self-help books. She has a degree in Psychology and a deep passion for the subject. She likes reading research-informed books that distill the workings of the human brain\/mind\/consciousness and thinking of ways to apply the insights to her own life. Some of her favorites include Thinking, Fast and Slow, How We Decide, and The Wisdom of the Enneagram.","url":"https:\/\/www.shortform.com\/blog\/author\/darya\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2020\/08\/permanent-record-what-did-snowden-do-scaled.jpg","_links":{"self":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/comments?post=40059"}],"version-history":[{"count":4,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40059\/revisions"}],"predecessor-version":[{"id":40454,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40059\/revisions\/40454"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/media\/12572"}],"wp:attachment":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/media?parent=40059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/categories?post=40059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/tags?post=40059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}