{"id":7845,"date":"2015-06-19T11:47:24","date_gmt":"2015-06-19T15:47:24","guid":{"rendered":"http:\/\/philip.greenspun.com\/blog\/?p=7845"},"modified":"2015-06-19T11:47:24","modified_gmt":"2015-06-19T15:47:24","slug":"advice-to-software-development-interns","status":"publish","type":"post","link":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/","title":{"rendered":"Advice to software development interns"},"content":{"rendered":"<p>I took on an 18-year-old as an intern for some Web development work. He had taken AP Computer Science, a Python programming course in high school, and <a href=\"https:\/\/cs50.harvard.edu\/\">Harvard&#8217;s CS50<\/a>: &#8220;CS50 is designed not only for concentrators in computer science but also for non-concentrators. More than just teach you how to program, this course teaches you how to think more methodically and how to solve problems more effectively. As such, its lessons are applicable well beyond the boundaries of computer science itself. That the course does teach you how to program, though, is perhaps its most empowering return. With this skill comes the ability to solve real-world problems in ways and at speeds beyond the abilities of most humans.&#8221;<\/p>\n<p>In addition to this academic training he arrived with a vast expertise on building Windows-based PCs, especially for gaming.<\/p>\n<p>The assigned task was building a Web-based narrated slide show (<a href=\"https:\/\/philip.greenspun.com\/blog\/2014\/12\/06\/best-way-to-publish-a-narrated-slide-show\/\">previous posting on the subject<\/a>) using <a href=\"http:\/\/wam.inrialpes.fr\/timesheets\/slideshows\/audio.html\">this open-source SMIL-based tool<\/a> as the building block. To accomplish this he had to learn much that was new, but nothing that was deep. For example, he needed to learn how to edit text on a Unix server (<a href=\"http:\/\/www.gnu.org\/software\/emacs\/\">Emacs<\/a>, of course!), enough CSS and JavaScript to understand and modify the open-source code, etc.<\/p>\n<p>Here are some specific-to-programming items that could have made him more effective:<\/p>\n<ul>\n<li>use Google and Web-based resources before interrupting the person who hired you, e.g., if you want to know how to do something in Emacs for which crib sheets are readily available on the Web and can be printed out<\/li>\n<li>assume that the person who hired you will have superior strategies for solving problems but not superior knowledge of syntax<\/li>\n<li>assume that you&#8217;ll have to teach yourself a new language or tool; &#8220;I\u00a0need to spend the next 3 months taking a class in JavaScript&#8221; before I can be productive on this new assignment is not something an employer would expect to hear from a programmer. [It seems that his elite public high school and Harvard had both prepared him to be spoon-fed information; a typical assignment would include a couple of pages of code\u00a0with a few missing lines to fill in.]<\/li>\n<li>start simple and build out; if you can&#8217;t understand a file of CSS, for example, take all of it out and add it back in one line at a time; if you don&#8217;t know JavaScript spend half a day building small programs before trying to understand a larger program that you&#8217;ve downloaded<\/li>\n<li>if there is a bug, strip the system down to the minimum number of lines of code that still exhibits the bug<\/li>\n<\/ul>\n<p>Here are some general life-as-an-employee items:<\/p>\n<ul>\n<li>If you&#8217;re cc&#8217;d on communications regarding meeting times with other people and need to talk to them or arrange something with them, reach out directly via email, cc&#8217;d your supervisor. Don&#8217;t use your supervisor as your secretary.<\/li>\n<li>Don&#8217;t rely on your supervisor to keep schedules, remember tasks, etc. A senior programmer is not a secretary or project manager.<\/li>\n<li>Use all available resources. Ask questions in Web forums, ask for help from anybody that you know that has relevant knowledge. The most successful workers are generally those who bring in expertise from beyond the organization.<\/li>\n<\/ul>\n<p>What did I learn? That grit is perhaps the most important determinant of success as a software developer. The most effective developers simply won&#8217;t quit until a problem is solved. One reason I think programmers often stay up until 2 or 3 am is that it bothers us\u00a0if something isn&#8217;t working. So we\u00a0keep at it until we\u00a0collapse. We call in favors from\u00a0friends and colleagues for help if we are stuck. I would go so far to say that if a person can cheerfully walk out of the office at 5 pm without having solved any problems then he or she should probably pick a career other than software (<em><a href=\"http:\/\/www.realworlddivorce.com\/\">Real World Divorce<\/a><\/em> shows that there are a lot of easier ways to make money here in the U.S. and <a href=\"https:\/\/philip.greenspun.com\/blog\/2015\/04\/30\/mit-alumni-in-their-50s\/\">this posting<\/a> shows that a not-very-driven-programmer will likely have a short-by-modern-standards career).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I took on an 18-year-old as an intern for some Web development work. He had taken AP Computer Science, a Python programming course in high school, and Harvard&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7845","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Advice to software development interns - Philip Greenspun\u2019s Weblog<\/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:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Advice to software development interns - Philip Greenspun\u2019s Weblog\" \/>\n<meta property=\"og:description\" content=\"I took on an 18-year-old as an intern for some Web development work. He had taken AP Computer Science, a Python programming course in high school, and Harvard&#8217;s [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\" \/>\n<meta property=\"og:site_name\" content=\"Philip Greenspun\u2019s Weblog\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-19T15:47:24+00:00\" \/>\n<meta name=\"author\" content=\"philg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"philg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\"},\"author\":{\"name\":\"philg\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\"},\"headline\":\"Advice to software development interns\",\"datePublished\":\"2015-06-19T15:47:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\"},\"wordCount\":681,\"commentCount\":15,\"publisher\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\",\"url\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\",\"name\":\"Advice to software development interns - Philip Greenspun\u2019s Weblog\",\"isPartOf\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#website\"},\"datePublished\":\"2015-06-19T15:47:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/philip.greenspun.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advice to software development interns\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#website\",\"url\":\"https:\/\/philip.greenspun.com\/blog\/\",\"name\":\"Philip Greenspun\u2019s Weblog\",\"description\":\"A posting every day; an interesting idea every three months...\",\"publisher\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/philip.greenspun.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\",\"name\":\"philg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg\",\"url\":\"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg\",\"contentUrl\":\"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg\",\"width\":2047,\"height\":2560,\"caption\":\"philg\"},\"logo\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg\"},\"url\":\"https:\/\/philip.greenspun.com\/blog\/author\/philg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Advice to software development interns - Philip Greenspun\u2019s Weblog","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:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/","og_locale":"en_US","og_type":"article","og_title":"Advice to software development interns - Philip Greenspun\u2019s Weblog","og_description":"I took on an 18-year-old as an intern for some Web development work. He had taken AP Computer Science, a Python programming course in high school, and Harvard&#8217;s [&hellip;]","og_url":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/","og_site_name":"Philip Greenspun\u2019s Weblog","article_published_time":"2015-06-19T15:47:24+00:00","author":"philg","twitter_card":"summary_large_image","twitter_misc":{"Written by":"philg","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#article","isPartOf":{"@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/"},"author":{"name":"philg","@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e"},"headline":"Advice to software development interns","datePublished":"2015-06-19T15:47:24+00:00","mainEntityOfPage":{"@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/"},"wordCount":681,"commentCount":15,"publisher":{"@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/","url":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/","name":"Advice to software development interns - Philip Greenspun\u2019s Weblog","isPartOf":{"@id":"https:\/\/philip.greenspun.com\/blog\/#website"},"datePublished":"2015-06-19T15:47:24+00:00","breadcrumb":{"@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/philip.greenspun.com\/blog\/2015\/06\/19\/advice-to-software-development-interns\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/philip.greenspun.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Advice to software development interns"}]},{"@type":"WebSite","@id":"https:\/\/philip.greenspun.com\/blog\/#website","url":"https:\/\/philip.greenspun.com\/blog\/","name":"Philip Greenspun\u2019s Weblog","description":"A posting every day; an interesting idea every three months...","publisher":{"@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/philip.greenspun.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e","name":"philg","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg","url":"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg","contentUrl":"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg","width":2047,"height":2560,"caption":"philg"},"logo":{"@id":"https:\/\/philip.greenspun.com\/blog\/wp-content\/uploads\/2025\/11\/20210525-philip-greenspun-sea-turtle-release-scaled.jpg"},"url":"https:\/\/philip.greenspun.com\/blog\/author\/philg\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paokyZ-22x","_links":{"self":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts\/7845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/comments?post=7845"}],"version-history":[{"count":0,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts\/7845\/revisions"}],"wp:attachment":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/media?parent=7845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/categories?post=7845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/tags?post=7845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}