{"id":495,"date":"2016-05-10T16:02:22","date_gmt":"2016-05-10T22:02:22","guid":{"rendered":"http:\/\/www.managerjs.com\/blog\/?p=495"},"modified":"2016-05-10T16:02:22","modified_gmt":"2016-05-10T22:02:22","slug":"learning-a-codebase","status":"publish","type":"post","link":"https:\/\/www.managerjs.com\/blog\/2016\/05\/learning-a-codebase\/","title":{"rendered":"Learning A Codebase"},"content":{"rendered":"<p>Responding to my post on internships a student asked me:<\/p>\n<h1 id=\"q.readingcode\">Q. Reading Code<\/h1>\n<p>What\u2019s the best way to learn a new codebase?<\/p>\n<h1 id=\"a.readwithpurpose\">A. Read With Purpose<\/h1>\n<p>Good question.<\/p>\n<p>Identify\u00a0a simple modification you would like to make. Learn enough to make that modification.<\/p>\n<p>If you can\u2019t make the modification after an hour of reading code, stop. Come up with something simpler based on what you have learned so far. Repeat this process until you successfully make a predictable change in the system.<\/p>\n<p>Now that you have a grip on the code base start leveling up. Identify a slightly larger change. Give yourself a small deadline for achieving it. No longer than one hour. Keep leveling up the modification you are making until it gets to a level that is useful.<\/p>\n<p>Remember:<\/p>\n<ul>\n<li>Don\u2019t start with a small <em>useful<\/em> modification &#8212; just a small <em>observable<\/em> modification.<\/li>\n<li>Keep yourself on a tight leash. If you miss your short deadlines, make smaller tasks with shorter deadlines. Simplify until you gain purchase.<\/li>\n<\/ul>\n<p>Above all, reading code is like any other skill. Do it more and you get better at it. Stop doing it and your skill erodes.<\/p>\n<p>I hope that helps you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Responding to my post on internships a student asked me: Q. Reading Code What\u2019s the best way to learn a new codebase? A. Read With Purpose Good question. Identify\u00a0a simple modification you would like to make. Learn enough to make that modification. If you can\u2019t make the modification after an hour of reading code, stop.&hellip; <a class=\"more-link\" href=\"https:\/\/www.managerjs.com\/blog\/2016\/05\/learning-a-codebase\/\">Continue reading <span class=\"screen-reader-text\">Learning A Codebase<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[160],"class_list":["post-495","post","type-post","status-publish","format-standard","hentry","category-developing","tag-question-and-answer","wow fadeInUp","entry"],"_links":{"self":[{"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/posts\/495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/comments?post=495"}],"version-history":[{"count":3,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":498,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/posts\/495\/revisions\/498"}],"wp:attachment":[{"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.managerjs.com\/blog\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}