{"id":16990,"date":"2016-07-07T08:00:41","date_gmt":"2016-07-07T12:00:41","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=16990"},"modified":"2022-09-11T12:37:49","modified_gmt":"2022-09-11T16:37:49","slug":"software-development-analytical-art","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/software-development-analytical-art\/","title":{"rendered":"Is Software Development Analytical Or Art?"},"content":{"rendered":"<p>A lot of people tend to ask me &#8220;John, why do you think that software development is art?&#8221;.<\/p>\n<p>I do think <a href=\"https:\/\/simpleprogrammer.com\/soft-skills-for-programmers\/\">software development is art and it requires the soft skill of creativity<\/a>. While this might seem controversial, let me explain my point. First of all, we need to understand how hybrid things are nowadays. It&#8217;s difficult to find something 100% pure in 2016. Things mix up with other things and they get a whole new meaning when that stuff happens. Said that, I do think that Software Development is analytical. And a lot.<\/p>\n<p>However, if you think of software development just as something analytical, you&#8217;ll probably be left behind by the ones who understand that software development is also an art.\u00a0When you start to see programming as an art, you&#8217;ll understand that you have the power to build anything. You, as a developer, has the ability to build an entire universe, just by writing code. And this is where the art comes in.<\/p>\n<p>Wanna know more? Watch this video and find out!<\/p>\n<p><center><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/KdHHZy50FwA\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p><\/center><strong>Transcript Of The Video:<\/strong><\/p>\n<p><strong>John Sonmez:\u00a0<\/strong>Hey, what&#8217;s up, John Sonmez from <a href=\"https:\/\/simpleprogrammer.com\">simpleprogrammer.com<\/a>. I got this question about coding and art. I thought this was interesting. It says, \u201cGreetings John, I heard you say programming is more related to art and creativity in your most recent YouTube video but I personally believe coding is more about logical reasoning and analytical thinking. When you talk to a guy like a psychologist or someone, he would say creativity is connected to the right brain and logical thinking to the left brain. This kind of contradicts your claim. Could you explain more on this?\u201d<\/p>\n<p>Okay, so let\u2019s think about if programming was totally analytical like engineering to some degree is. I always say software development is not engineering. I don\u2019t like the term software engineer because it isn\u2019t engineering, it\u2019s not building a bridge. Engineering is a repeatable process. You can take the physics and geometry of a situation and calculate exactly how something should be structurally designed and you could get an absolute result. There\u2019s a lot of engineering problems that you can get an absolute repeatable result and you can figure out what is the best solution for.<\/p>\n<p>There\u2019s even some creativity in that because what is a design, right? Because there\u2019s lots of ways to come to the problem, right? Bridges are also hopefully aesthetic to some degree so there\u2019s even some in engineering, I think everything that is constructed has some kind of aesthetic properties to it, but programming is so different than that because there is no repeat when we\u2019re working with the intangible. Software design, it\u2019s all conceptual. It\u2019s all imagination. It\u2019s all creativeness. There\u2019s not any kind of way to absolutely measure if something is correct or right. It\u2019s all conceptual.<\/p>\n<p>Not only that but the tools that we use they\u2019re not concrete, they\u2019re not literally concrete. They are all abstractions. They\u2019re all conceptual. We develop an entire world. If you think about it, every software program is an entire fantasy world complete with actors and names that operate in fantasy environments, on fantasy objects. You think about object oriented programming, it\u2019s all fantasy stuff. It\u2019s not real. We\u2019ve just created this complicated construct in our minds to manage this complexity, to build this system to do some things so there\u2019s a lot of art involved in that.<\/p>\n<p>You can\u2019t give someone\u2014here\u2019s a good test for whether something is totally analytical or creative. Can you give someone a heuristic, an exact heuristic to produce a result? For example, I can give you mathematical proofs, right? If you give me a mathematical problem I can give you an absolute mathematical proof. That is a totally analytical problem. Even there\u2014right, I\u2019ll make an exception here and say there\u2019s some creativity in coming up with the solution to the problem, but when you have the problem itself and the solution you can give a mathematical proof that says step 1, step 2, step 3, step 4 and here\u2019s the heuristic of exactly how to do this, right? You can apply that to a lot of different things but you can\u2019t apply that to software development. You can\u2019t ever give someone a set of steps in order to do to be able to build software. You can\u2019t ever say, \u201cHere\u2019s the algorithm that you follow to build software.\u201d You can say, here\u2019s the algorithm you follow to bake a cake or to build a bridge but you can never ever say it to build software because it\u2019s always different, it\u2019s always judgment. It\u2019s always subjective.<\/p>\n<p>When you look at even the construction of code, when you look at\u2014you can see art in it because the way that people have designed things there\u2019s an aesthetic element to it. Even if you look at developers and how they structure their code, the spacing that they use, the way that they name things, and the consistency in that. They\u2019ve created their own rules and their own system but they\u2019ve designed something. It\u2019s all about the design of it.<\/p>\n<p>If you took 10 software developers and you had them all write code to solve a nontrivial problem, let\u2019s say building some kind of simple application but nontrivial you would have 10 different answers. You would never have the best. It would always be\u2014it\u2019s the same thing as if you had someone paint. You had 10 different painters, they would all different paintings, they would look different. But if you took 10 structural engineers and you give them the requirements and you tell them to build a bridge they might not produce the exact same result, but a lot of them\u2014but there\u2019s a good chance that they\u2019re going to produce pretty dang similar results and they may produce the exact same result. It\u2019s a much more constrained, much more analytical process.<\/p>\n<p>Again, there is analytical in software development, there is solving algorithms, there is writing the code and figuring out how to translate something into a language that the machine understands but there\u2019s a lot more of a creative and art aspect. That\u2019s why software development is so challenging is because you have to be analytical and you have to be creative. You have to use both sides of the brain if you believe in that. I\u2019m not so sure that I\u2019m convinced about the left brain, right brain thing. I think that is a generalization that we use, but regardless, I\u2019m not going to oppose standard psychology but I will tell you that it does require both. Anyone who\u2019s done it for any amount of time will tell you that it\u2019s true if not purely analytical. If you took someone who\u2019s purely analytical they are not going to succeed in the software development world.<\/p>\n<p>Anyway, good question. I think this a debate that\u2019s always going to be raging and there will always be this debate between whether software development is engineering or not and those engineers are going to get\u2014software developers who have engineering backgrounds get all butt hurt about this and get all upset. I love it. I love it. If you want to yell and claim that it\u2019s engineering and how stupid I am, go ahead, leave a comment below. It\u2019s fun. We\u2019ll have fun. We\u2019ll make fun of you. Anyway, if you like this video, subscribe to the channel. Take care.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lot of people tend to ask me &#8220;John, why do you think that software development is art?&#8221;. I do think software development is art and it requires the soft skill of creativity. While this might seem controversial, let me explain my point. First of all, we need to understand how hybrid things are nowadays&#8230;.<\/p>\n","protected":false},"author":2,"featured_media":16991,"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":[162229169],"tags":[],"class_list":["post-16990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-youtube"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Is Software Development Analytical Or Art? - Simple Programmer<\/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:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Is Software Development Analytical Or Art? - Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"A lot of people tend to ask me &#8220;John, why do you think that software development is art?&#8221;. I do think software development is art and it requires the soft skill of creativity. While this might seem controversial, let me explain my point. First of all, we need to understand how hybrid things are nowadays....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-07T12:00:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-11T16:37:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/software-development-analytical-art\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Is Software Development Analytical Or Art?\",\"datePublished\":\"2016-07-07T12:00:41+00:00\",\"dateModified\":\"2022-09-11T16:37:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/software-development-analytical-art\\\/\"},\"wordCount\":1297,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Is-Programming-Analytical-Or-Art.png\",\"articleSection\":[\"YouTube\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/software-development-analytical-art\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\",\"name\":\"Is Software Development Analytical Or Art? - Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Is-Programming-Analytical-Or-Art.png\",\"datePublished\":\"2016-07-07T12:00:41+00:00\",\"dateModified\":\"2022-09-11T16:37:49+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Is-Programming-Analytical-Or-Art.png\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Is-Programming-Analytical-Or-Art.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Is Software Development Analytical Or Art?\"}]},{\"@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":"Is Software Development Analytical Or Art? - Simple Programmer","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\/products\/careerguide","og_locale":"en_US","og_type":"article","og_title":"Is Software Development Analytical Or Art? - Simple Programmer","og_description":"A lot of people tend to ask me &#8220;John, why do you think that software development is art?&#8221;. I do think software development is art and it requires the soft skill of creativity. While this might seem controversial, let me explain my point. First of all, we need to understand how hybrid things are nowadays....","og_url":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_site_name":"Simple Programmer","article_published_time":"2016-07-07T12:00:41+00:00","article_modified_time":"2022-09-11T16:37:49+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png","type":"image\/png"}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/software-development-analytical-art\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Is Software Development Analytical Or Art?","datePublished":"2016-07-07T12:00:41+00:00","dateModified":"2022-09-11T16:37:49+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/software-development-analytical-art\/"},"wordCount":1297,"commentCount":1,"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png","articleSection":["YouTube"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/products\/careerguide#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/software-development-analytical-art\/","url":"https:\/\/simpleprogrammer.com\/products\/careerguide","name":"Is Software Development Analytical Or Art? - Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png","datePublished":"2016-07-07T12:00:41+00:00","dateModified":"2022-09-11T16:37:49+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/products\/careerguide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/07\/Is-Programming-Analytical-Or-Art.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Is Software Development Analytical Or Art?"}]},{"@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\/16990","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=16990"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/16990\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/16991"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=16990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=16990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=16990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}