{"id":2570,"date":"2012-09-09T11:58:12","date_gmt":"2012-09-09T18:58:12","guid":{"rendered":"https:\/\/www.scotthyoung.com\/blog\/?p=2570"},"modified":"2018-04-03T08:44:22","modified_gmt":"2018-04-03T15:44:22","slug":"learn-to-program","status":"publish","type":"post","link":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/","title":{"rendered":"The Beginner&#8217;s Guide to Learning to Program"},"content":{"rendered":"<p>One of the most frequent questions I get asked in emails is what\u2019s the best way to learn how to program. In the past I\u2019ve shied away from this question, since the internet is populated by much better programmers than myself.<\/p>\n<p>However, while there are many guides to learning a specific programming languages or tool, I\u2019ve seen relatively few dealing with managing the learning process itself. After writing code for ten years and learning over a dozen of languages to various levels of sophistication, I\u2019ve seen it\u2019s this process that matters more than anything else.<\/p>\n<p>Even if you\u2019re not interested in programming, I think it forms an interesting case study for learning any technical skill, so much of what I\u2019ll say will be applicable to non-programmers as well.<\/p>\n<p>I\u2019m also hoping there\u2019s a chance I can convince a few people to give coding a try. It\u2019s an incredibly fun hobby, and the fact that many people do it for a living shouldn\u2019t detract from that.<\/p>\n<h2>Don\u2019t Be Afraid of Syntax<\/h2>\n<p>A major reason many people are scared off from trying to learn to code is well\u2026 all that code. Like reading a paragraph in a foreign language, you can sometimes make out a few words, but the rest looks like gibberish. How can someone possibly read and understand it?<\/p>\n<p>Luckily syntax is the easy part! Although each language has its own quirks, the basic concepts of computer programming don\u2019t change much from language to language, so syntax is merely a shorthand for those basic ideas.<\/p>\n<p>As an example, a common idea in programming is a loop. The idea is that you want to repeat some section of instructions until some stopping criteria is reached. Once you understand the basic idea of a loop, figuring out how to do it in your language of choice is as simple as googling, \u201cHow do I use a loop in&#8230;\u201d and you\u2019ll get thousands of examples.<\/p>\n<p>Loops are a very simple idea, but this applies for less common and more difficult programming techniques as well. When I had to learn C++ to build a graphics <a href=\"http:\/\/en.wikipedia.org\/wiki\/Ray_tracing\">ray-tracing<\/a> program, I wanted to create multiple shading routines separate from the rendering, so I quickly googled, \u201cC++ function pointers\u201d and got the exact syntax.<\/p>\n<p>Syntax, just like mathematical symbols and formulas, are often the reason people without a self-professed love of nerdy things avoid learning the subject. But once you realize this is simply a short-hand for other concepts, it is easy to figure out what the syntax is if you know the concept.<\/p>\n<h2>Start with a Tutorial Book<\/h2>\n<p>The best place to start is always with a careful walkthrough. For programming, I like <strong><a href=\"http:\/\/www.amazon.com\/s\/?_encoding=UTF8&amp;camp=1789&amp;creative=9325&amp;field-keywords=O%27Reilly%20programming&amp;linkCode=ur2&amp;rh=i%3Aaps%2Ck%3AO%27Reilly%20programming&amp;tag=scottcom-20&amp;url=search-alias%3Daps\" target=\"_blank\">O&#8217;Reilly<\/a><\/strong><img loading=\"lazy\" decoding=\"async\" style=\"border: none !important; margin: 0px !important;\" src=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\" alt=\"\" width=\"1\" height=\"1\" border=\"0\" \/> as a guide whenever learning a new language. Generally the assumed programming skill prior to starting is low, so they are a great start.<\/p>\n<p>Walking through examples avoids a lot of frustration because you can type the syntax out exactly and avoid causing unintentional bugs. Getting anything working in the beginning can give you the confidence to continue forward with projects of your own design.<\/p>\n<p>If you\u2019re learning your first language, you may want to take an intro class on programming which can teach the basic concepts. Semantics are more important than syntax, so understanding the basic ideas is essential, while memorizing the exact spelling of a command usually isn\u2019t (if you\u2019re wrong, you\u2019ll get an error and a quick Google search will inform you of your mistake).<\/p>\n<p>Here\u2019s some free courses which cover the basics:<\/p>\n<ul>\n<li><a href=\"http:\/\/ocw.mit.edu\/courses\/electrical-engineering-and-computer-science\/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011\/\">MIT\u2019s Intro to Computer Science<\/a> \u2013 A little harder than most, but it covers basically all the programming you\u2019ll need to get started (and then some). I did this class myself early in the MIT Challenge. Focus on Unit 1, since the later units deal more with math and electrical engineering.<\/li>\n<li><a href=\"http:\/\/www.udemy.com\/courses\/search?q=programming\">Udemy\u2019s Programming Classes<\/a> \u2013 I haven\u2019t done these since they didn\u2019t exist when I was starting out, but there\u2019s many available on different languages.<\/li>\n<li><a href=\"http:\/\/code.google.com\/edu\/languages\/google-python-class\/set-up.html\">Google\u2019s Code Academy<\/a> \u2013 A concise intro to Python, one of my favorite languages.<\/li>\n<\/ul>\n<p>The goal in the initial phase should be to get something working. Once you get that started, it usually isn\u2019t hard to modify existing programs to get something original before moving onto projects of your own.<\/p>\n<h2>Which Language Should You Start With?<\/h2>\n<p>There are a lot of answers to this, so I don\u2019t presume to have a universally correct one. My feeling is that, if you aren\u2019t already a computer wizard, getting your computer prepared to start programming can be a frustrating task if you\u2019re not used to it, and can turn many people off before they write a single line of code.<\/p>\n<p>If you\u2019re using a Mac, many programming languages come preinstalled, so you need to do very little to get started. In that case, I\u2019d suggest <a href=\"http:\/\/www.python.org\/\">Python<\/a> as a starting language because it is easier to read and can start running immediately (just get a text-editor like <a href=\"http:\/\/macromates.com\/\">TextMate<\/a>). <a href=\"http:\/\/www.ruby-lang.org\/en\/\">Ruby<\/a> is also good, particularly if you eventually want to use <a href=\"http:\/\/rubyonrails.org\/\">Ruby on Rails<\/a>.<\/p>\n<p>If you\u2019re using Windows, things can be a bit trickier, but you should still be able to download the compiler\/interpreter for most languages and begin writing code. Google&#8217;s Code Academy <a href=\"http:\/\/code.google.com\/edu\/languages\/google-python-class\/set-up.html\">tutorials<\/a> provide setup instructions for Python in various platforms.<\/p>\n<p>For first languages, I\u2019d generally avoid C++ and C, because they tend to be a little less forgiving than Python. I\u2019d also avoid web languages like PHP because they can be tricky to set up and require you to learn more at once (HTML, SQL, XML). And only take on LISP if you\u2019re a masochist or just really like <a href=\"http:\/\/simple.wikipedia.org\/wiki\/Prefix_notation\">prefix notation<\/a>.<\/p>\n<p>Of course, the first language you should use, should be the one you want to use. So overrule my suggestions if you want to do something specific with your programming knowledge (such as smart phone apps, video games or websites), just keep in mind there may be a bit more to learn in the beginning as you familiarize yourself.<\/p>\n<h2>Learning by Project<\/h2>\n<p>Although I\u2019ve been following the classic classroom-style curriculum for my MIT Challenge, that doesn\u2019t mean I feel it\u2019s the best model for self-education. The best way to learn is often by making a project that interests you and trying to build it.<\/p>\n<p>Learning projects are great for programming, but it\u2019s easy to make mistakes when designing one. Here\u2019s the criteria I follow when setting up a project designed to teach me a new skill:<\/p>\n<ol>\n<li><strong>It should be short<\/strong>. Don\u2019t try to make a new Facebook, since you probably won\u2019t finish and most your time will be doing repeat tasks rather than learning.<\/li>\n<li><strong>It should force you to learn the technology you want to know<\/strong>. If you\u2019re a beginner that could simply mean basic programming. If you\u2019re a novice, it could mean learning multithreading, databases, GUIs or graphics APIs.<\/li>\n<li><strong>It should be fun<\/strong>. I\u2019ve learned more from making fun programs and games than from trying to replicate dry textbook assignments. Fun means you\u2019ll be more motivated to work on it.<\/li>\n<\/ol>\n<p>I\u2019ve used this process extensively. When learning 2D graphics programming, I made a Space Invaders clone. When trying to learn Python\u2019s regular expressions, I made a program that could go through all my business receipts and figure out the sales taxes I owed.<\/p>\n<h2>Debugging Frustration<\/h2>\n<p>The key barrier in any learning effort is to surpass the frustration barrier. If you do any programming, a lot of time will be spent debugging. The wrong way to approach this is to get frustrated and quit. The right way is to use debugging as an essential part of the learning process.<\/p>\n<p>I\u2019ve found there are two main types of bugs for programs that aren\u2019t of significant complexity. There\u2019s simple errors, the kind where you misspell a variable name or put parameters in the wrong order. These also tend to be the easiest to fix.<\/p>\n<p>The second type are caused because your model of how the computer works isn\u2019t the same as reality. And while these can be the most frustrating, they are also the greatest opportunity to learn.<\/p>\n<p>My biggest mistake I made in my early days of programming was to only try to get the program working. I would try different approaches and when one worked, I would stick with it, even if I didn\u2019t understand why my previous approach had failed.<\/p>\n<p>Understanding every error can be beyond the ability of a beginner programmer. However, if you endeavor to understand why certain expressions won\u2019t work, or certain algorithms run afoul, you\u2019ll learn much more about the language than the band-aid method I had used in my early days.<\/p>\n<p>Doing this means when you get an error, search for it online and chances are you\u2019ll find a forum posting where someone made the same mistake. Look for the explanations given as follow-up and you can usually see an explanation into the nature of the error.<\/p>\n<p>If the explanation references computing concepts which are new to you, then you can begin trying to learn about those new concepts. This way you can slowly build up your vocabulary of programming problems and designs so that you can avoid such problems in the future.<\/p>\n<h2>Thoughts on Learning any Technical Skill<\/h2>\n<p>Much of this advice is programming-specific, but the basic ideas are true for learning any technical skill, be it calculus, statistics, mechanics, chemistry, drafting or design:<\/p>\n<ol>\n<li>Don\u2019t sweat the syntax.<\/li>\n<li>Start with a tutorial book (or class).<\/li>\n<li>Learn with projects.<\/li>\n<li>Use errors as a chance to learn new concepts.<\/li>\n<\/ol>\n<p>Programming has to be one of the best skills I\u2019ve learned, not only because it\u2019s fun and rewarding, but because it teaches a lot of life lessons as well. It taught me how to build things, organize projects and set goals for myself. And, as computers become more integrated into our lives, it\u2019s nice to know a little of the language they speak.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the most frequent questions I get asked in emails is what\u2019s the best way to learn how to program. In the past I\u2019ve shied away from this question, since the internet is populated by much better programmers than myself. However, while there are many guides to learning a specific programming languages or tool, [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[12,682],"tags":[],"class_list":{"0":"post-2570","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-discipline","7":"category-nc-learning","8":"entry"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Beginner&#039;s Guide to Learning to Program - Scott H Young<\/title>\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.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Beginner&#039;s Guide to Learning to Program - Scott H Young\" \/>\n<meta property=\"og:description\" content=\"One of the most frequent questions I get asked in emails is what\u2019s the best way to learn how to program. In the past I\u2019ve shied away from this question, since the internet is populated by much better programmers than myself. However, while there are many guides to learning a specific programming languages or tool, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/\" \/>\n<meta property=\"og:site_name\" content=\"Scott H Young\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AuthorScottYoung\/\" \/>\n<meta property=\"article:published_time\" content=\"2012-09-09T18:58:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-03T15:44:22+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\" \/>\n<meta name=\"author\" content=\"Scott Young\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@scotthyoung\" \/>\n<meta name=\"twitter:site\" content=\"@scotthyoung\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Scott Young\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/\"},\"author\":{\"name\":\"Scott Young\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/#\\\/schema\\\/person\\\/2f58ab6c4a36422c78416e5b7a79604c\"},\"headline\":\"The Beginner&#8217;s Guide to Learning to Program\",\"datePublished\":\"2012-09-09T18:58:12+00:00\",\"dateModified\":\"2018-04-03T15:44:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/\"},\"wordCount\":1711,\"commentCount\":19,\"image\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.assoc-amazon.com\\\/e\\\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\",\"articleSection\":[\"Discipline\",\"Learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/\",\"url\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/\",\"name\":\"The Beginner's Guide to Learning to Program - Scott H Young\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.assoc-amazon.com\\\/e\\\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\",\"datePublished\":\"2012-09-09T18:58:12+00:00\",\"dateModified\":\"2018-04-03T15:44:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/#\\\/schema\\\/person\\\/2f58ab6c4a36422c78416e5b7a79604c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.assoc-amazon.com\\\/e\\\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\",\"contentUrl\":\"http:\\\/\\\/www.assoc-amazon.com\\\/e\\\/ir?t=scottcom-20&amp;l=ur2&amp;o=1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/2012\\\/09\\\/09\\\/learn-to-program\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Beginner&#8217;s Guide to Learning to Program\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/\",\"name\":\"Scott H Young\",\"description\":\"Learn faster, achieve more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/#\\\/schema\\\/person\\\/2f58ab6c4a36422c78416e5b7a79604c\",\"name\":\"Scott Young\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g\",\"caption\":\"Scott Young\"},\"description\":\"Hello, my name is Scott H. Young and I am obsessed with personal development! When I am not reading several books a month on the subject I am constantly trying to find new ways to improve and get more out of life.\",\"sameAs\":[\"https:\\\/\\\/www.scotthyoung.com\"],\"url\":\"https:\\\/\\\/www.scotthyoung.com\\\/blog\\\/author\\\/scottadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Beginner's Guide to Learning to Program - Scott H Young","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.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/","og_locale":"en_US","og_type":"article","og_title":"The Beginner's Guide to Learning to Program - Scott H Young","og_description":"One of the most frequent questions I get asked in emails is what\u2019s the best way to learn how to program. In the past I\u2019ve shied away from this question, since the internet is populated by much better programmers than myself. However, while there are many guides to learning a specific programming languages or tool, [&hellip;]","og_url":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/","og_site_name":"Scott H Young","article_publisher":"https:\/\/www.facebook.com\/AuthorScottYoung\/","article_published_time":"2012-09-09T18:58:12+00:00","article_modified_time":"2018-04-03T15:44:22+00:00","og_image":[{"url":"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1","type":"","width":"","height":""}],"author":"Scott Young","twitter_card":"summary_large_image","twitter_creator":"@scotthyoung","twitter_site":"@scotthyoung","twitter_misc":{"Written by":"Scott Young","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#article","isPartOf":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/"},"author":{"name":"Scott Young","@id":"https:\/\/www.scotthyoung.com\/blog\/#\/schema\/person\/2f58ab6c4a36422c78416e5b7a79604c"},"headline":"The Beginner&#8217;s Guide to Learning to Program","datePublished":"2012-09-09T18:58:12+00:00","dateModified":"2018-04-03T15:44:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/"},"wordCount":1711,"commentCount":19,"image":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#primaryimage"},"thumbnailUrl":"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1","articleSection":["Discipline","Learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/","url":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/","name":"The Beginner's Guide to Learning to Program - Scott H Young","isPartOf":{"@id":"https:\/\/www.scotthyoung.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#primaryimage"},"image":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#primaryimage"},"thumbnailUrl":"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1","datePublished":"2012-09-09T18:58:12+00:00","dateModified":"2018-04-03T15:44:22+00:00","author":{"@id":"https:\/\/www.scotthyoung.com\/blog\/#\/schema\/person\/2f58ab6c4a36422c78416e5b7a79604c"},"breadcrumb":{"@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#primaryimage","url":"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1","contentUrl":"http:\/\/www.assoc-amazon.com\/e\/ir?t=scottcom-20&amp;l=ur2&amp;o=1"},{"@type":"BreadcrumbList","@id":"https:\/\/www.scotthyoung.com\/blog\/2012\/09\/09\/learn-to-program\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.scotthyoung.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Beginner&#8217;s Guide to Learning to Program"}]},{"@type":"WebSite","@id":"https:\/\/www.scotthyoung.com\/blog\/#website","url":"https:\/\/www.scotthyoung.com\/blog\/","name":"Scott H Young","description":"Learn faster, achieve more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.scotthyoung.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.scotthyoung.com\/blog\/#\/schema\/person\/2f58ab6c4a36422c78416e5b7a79604c","name":"Scott Young","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a2da240fb070ba8346e3be8b89043b66c39bdcf933d9e7311dcb10383d0bc645?s=96&d=mm&r=g","caption":"Scott Young"},"description":"Hello, my name is Scott H. Young and I am obsessed with personal development! When I am not reading several books a month on the subject I am constantly trying to find new ways to improve and get more out of life.","sameAs":["https:\/\/www.scotthyoung.com"],"url":"https:\/\/www.scotthyoung.com\/blog\/author\/scottadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/posts\/2570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/comments?post=2570"}],"version-history":[{"count":4,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/posts\/2570\/revisions"}],"predecessor-version":[{"id":4982,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/posts\/2570\/revisions\/4982"}],"wp:attachment":[{"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/media?parent=2570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/categories?post=2570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scotthyoung.com\/blog\/wp-json\/wp\/v2\/tags?post=2570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}