{"id":1017,"date":"2008-01-04T10:32:22","date_gmt":"2008-01-04T15:32:22","guid":{"rendered":"http:\/\/www.starkeith.net\/coredump\/2008\/01\/04\/on-being-a-programmer-in-a-world-of-non-programmers\/"},"modified":"2008-01-04T17:06:20","modified_gmt":"2008-01-04T22:06:20","slug":"on-being-a-programmer-in-a-world-of-non-programmers","status":"publish","type":"post","link":"https:\/\/www.starkeith.net\/coredump\/2008\/01\/04\/on-being-a-programmer-in-a-world-of-non-programmers\/","title":{"rendered":"On Being a Programmer in a World of Non-Programmers"},"content":{"rendered":"<p><a href=\"http:\/\/thedailywtf.com\/Articles\/Could-You-Explain-Programming-Please.aspx\">This post over at The Daily WTF struck a chord with me<\/a>. I can definitely feel the pain of trying to explain programming to non-programmer \u2013 or even just explaining <em>what it is I do<\/em>. Most times, I just get blank stares. To most people, &#8220;I work with computers&#8221; is the only thing they understand. The fine distinctions between someone who works with, say, <em>designing CPUs for mobile devices<\/em> and someone who <em>writes web pages<\/em> is totally lost on them. It&#8217;s all just &#8220;working with computers&#8221; \u2013 basically, anything beyond doing word-processing and web-browsing.<\/p>\n<p>Let me give you two examples.<\/p>\n<p>As I&#8217;ve said before, programming is something between a creative practice (like art) and a technical craft (like construction). You are both building something and being creative \u2013 at the same time. So naturally, you hit &#8220;blocks&#8221; sometimes and get stuck. And, likewise, you sometimes get a major breakthrough \u2013 like when an artist has a flash of inspiration and creates some amazing piece of art, so too does a <a href=\"http:\/\/www.starkeith.net\/coredump\/2007\/12\/07\/this-is-totally-me\/\">programmer figure out something tricky<\/a> (or elegant, or whatever).<\/p>\n<p>Unfortunately, trying to share this enthusiasm with anyone who is <em>not<\/em> a programmer is basically an exercise in futility.<\/p>\n<p style=\"margin-left: 36pt\"><strong>Me:<\/strong> &#8220;Yes! I just figured out how to implement this really tricky method and it works great!&#8221;<\/p>\n<p style=\"margin-left: 36pt\"><strong>Anyone else in the world:<\/strong> &#8220;Huh?&#8221;<\/p>\n<p>Without other programmers around to share in your joy of accomplishment\u2026 well, it&#8217;s best to just keep your enthusiasm to yourself, or so I&#8217;ve learned.<\/p>\n<p>On the other side of the coin is the other edge of being the &#8220;computer guy&#8221; \u2013 namely, that everyone expects you to know everything about their particular computer problem, as well as be able to fix it in just a few minutes. (Coincidentally, this is why I have a t-shirt which says &#8220;<a href=\"http:\/\/www.thinkgeek.com\/tshirts\/frustrations\/388b\/\">No, I will not fix your computer<\/a>.&#8221;)<\/p>\n<p>I&#8217;ve had people show me the most awful computers \u2013 in the worst possible state of disrepair \u2013 and they expect me to be able to fix it up like new again in an hour or so. They usually show me these computers when I&#8217;m on vacation, or when I&#8217;m at their house for some other reason (i.e. not because they asked me to come fix their computer, but &#8220;since you&#8217;re here\u2026&#8221;).<\/p>\n<p>This is a bit like towing a dead car that&#8217;s been beaten on for years without an oil change and was just in a bad accident to your mechanic \u2013 but not to his garage. Instead, you brought it to his <em>house<\/em> (where he doesn&#8217;t have all his tools \u2013 they&#8217;re at the garage of course) and you drop it in his front yard (which is sure to kill the grass) and you expect him to just drop everything and make your car work by this afternoon so you can drive it to a party.<\/p>\n<p>Or better yet, like you&#8217;ve tracked down your mechanic while he&#8217;s having dinner at a fancy restaurant (all dressed up &amp; everything), and you barge in on his meal and ask him if he can fix your dead junk car that is coincidentally blocking his own car from leaving the parking lot.<\/p>\n<p>If you don&#8217;t understand what&#8217;s wrong with this, I suggest you go try it with a real car and a real mechanic. See how far you get. I will not be liable for your death, though, if your mechanic breaks into a blind rage and kills you (with the rocker arm from your own dead car&#8217;s engine, for maximum cosmic justice).<\/p>\n<p>With any luck, at least a few people will read this and have some measure of understanding as to what a programmer does &#8211; even if it&#8217;s only a little understanding, it&#8217;s better than what most people have currently.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post over at The Daily WTF struck a chord with me. I can definitely feel the pain of trying to explain programming to non-programmer \u2013 or even just explaining what it is I do. Most times, I just get blank stares. To most people, &#8220;I work with computers&#8221; is the only thing they understand.&hellip; <a class=\"more-link\" href=\"https:\/\/www.starkeith.net\/coredump\/2008\/01\/04\/on-being-a-programmer-in-a-world-of-non-programmers\/\">Continue reading <span class=\"screen-reader-text\">On Being a Programmer in a World of Non-Programmers<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_post_was_ever_published":false},"categories":[10,5],"tags":[107],"class_list":["post-1017","post","type-post","status-publish","format-standard","hentry","category-rants","category-technology","tag-programming","entry"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pimUj-gp","jetpack-related-posts":[{"id":1882,"url":"https:\/\/www.starkeith.net\/coredump\/2009\/04\/09\/communication-and-programming\/","url_meta":{"origin":1017,"position":0},"title":"Communication and Programming","author":"Keith Survell","date":"April 9, 2009","format":false,"excerpt":"Programming is all about communicating - communicating with the computer, and with other people. So it follows that to be a good programmer, you need to be a good communicator, too.","rel":"","context":"In &quot;My Opinion&quot;","block_context":{"text":"My Opinion","link":"https:\/\/www.starkeith.net\/coredump\/category\/personal\/my-opinion\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":493,"url":"https:\/\/www.starkeith.net\/coredump\/2005\/05\/12\/joel-on-software-back-to-basics\/","url_meta":{"origin":1017,"position":1},"title":"Joel on Software &#8211; Back to Basics","author":"Keith Survell","date":"May 12, 2005","format":false,"excerpt":"This article makes a good point about something very important; namely, that to be a good software programmer, you have to know a lot about the nuts & bolts of how the computer works - from raw CPU instructions right up to drivers & other high-level nonsense.","rel":"","context":"In &quot;personal&quot;","block_context":{"text":"personal","link":"https:\/\/www.starkeith.net\/coredump\/category\/personal\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1255,"url":"https:\/\/www.starkeith.net\/coredump\/2008\/08\/06\/keithius-the-barefoot-programmer\/","url_meta":{"origin":1017,"position":2},"title":"Keithius, the Barefoot Programmer","author":"Keith Survell","date":"August 6, 2008","format":false,"excerpt":"Call me \"the barefoot programmer.\" Actually, that's not 100% accurate - I only go barefoot during the summertime. It's just more comfortable - and it helps you stay cool. Of course, since I work from home, this is not a problem. (It's nice when the buns come by and say\u2026","rel":"","context":"In &quot;My Life&quot;","block_context":{"text":"My Life","link":"https:\/\/www.starkeith.net\/coredump\/category\/personal\/my-life\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1462,"url":"https:\/\/www.starkeith.net\/coredump\/2008\/11\/03\/a-programmers-perspective-on-politics\/","url_meta":{"origin":1017,"position":3},"title":"A Programmer&#8217;s Perspective on Politics","author":"Keith Survell","date":"November 3, 2008","format":false,"excerpt":"Election time always finds me musing on the nature of politics. Of course I must admit that being a computer programmer colors my view of the whole process more than just a little bit. I mean, I know that the political process in this country is one that has evolved\u2026","rel":"","context":"In &quot;politics&quot;","block_context":{"text":"politics","link":"https:\/\/www.starkeith.net\/coredump\/category\/politics\/"},"img":{"alt_text":"Image courtesty Flikr user umjanedoan","src":"https:\/\/i0.wp.com\/www.starkeith.net\/coredump\/wp-content\/uploads\/\/2008\/11\/really-old-law-books.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4398,"url":"https:\/\/www.starkeith.net\/coredump\/2013\/06\/19\/know-your-code\/","url_meta":{"origin":1017,"position":4},"title":"Know Your Code","author":"Keith Survell","date":"June 19, 2013","format":false,"excerpt":"Q: As a .NET programmer, why do you care about being familiar with the Win32 API? A: Because the .NET framework is just another abstraction, and I like to think that I'm a good programmer - and good programmers know that all abstractions are leaky.","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/www.starkeith.net\/coredump\/category\/technology\/software-technology\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4549,"url":"https:\/\/www.starkeith.net\/coredump\/2014\/08\/14\/night-watch-programmer-humor\/","url_meta":{"origin":1017,"position":5},"title":"The Night Watch (Programmer Humor)","author":"Keith Survell","date":"August 14, 2014","format":false,"excerpt":"Ran across this article\/story recently (it's a PDF link) and had to share some of the more entertaining little excerpts from it - though you might need to be a programmer\/sysadmin in order to appreciate the humor in some of these... Systems people discover bugs by waking up and discovering\u2026","rel":"","context":"In &quot;fun stuff&quot;","block_context":{"text":"fun stuff","link":"https:\/\/www.starkeith.net\/coredump\/category\/fun-stuff\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/posts\/1017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/comments?post=1017"}],"version-history":[{"count":0,"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/posts\/1017\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/media?parent=1017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/categories?post=1017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.starkeith.net\/coredump\/wp-json\/wp\/v2\/tags?post=1017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}