{"id":20502,"date":"2018-09-25T12:02:24","date_gmt":"2018-09-25T16:02:24","guid":{"rendered":"http:\/\/philip.greenspun.com\/blog\/?p=20502"},"modified":"2018-10-26T10:48:51","modified_gmt":"2018-10-26T14:48:51","slug":"best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python","status":"publish","type":"post","link":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/","title":{"rendered":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python)"},"content":{"rendered":"<p>A Facebook Messenger exchange that might be useful to others &#8230; (edited out some of the shocking language!)<\/p>\n<p>Parent 1:\u00a0D [14 years old] is in Robotics and has to learn Java. Did they mean Java or Javascript? S [11 years old] wants to learn a language. Should it be Java or Python or Swift or something else?<\/p>\n<p>Me: JavaScript and Node.js;\u00a0Then he can do front end and server side.<\/p>\n<p>Parent 1: [Professional programmer friend] said robots are not programmed in JavaScript.<\/p>\n<p>Me: That will change.<\/p>\n<p>Parent 2:\u00a0Ok so no Java please.\u00a0It is a formally much better language.\u00a0But the simplest programs take pages and pages of code before one can do anything.\u00a0The APIs are verbose beyond belief. I hate it.\u00a0It is a language of an Enterprise software architect who doesn&#8217;t really code but costs $250,000 a year.\u00a0Javascript ist truly a piece of s***.\u00a0Inconsistent and dirty but\u00a0the kids do not care &#8211; they can learn that quickly.\u00a0There are a lot of good libraries for JS now.\u00a0So I would agree with Philip that JS is a better choice.\u00a0Python is probably close second, but no frontend then.<\/p>\n<p>Parent 1:\u00a0You said JS was s*** but then you said learn it?<\/p>\n<p>Parent 2:\u00a0I think Java will put him to sleep.\u00a0And he needs to be able to tinker and experiment fast.\u00a0You have to consider his age.\u00a0My kids completed three programming courses in JS in Khan academy this summer.\u00a0He should be spending as little time as possible on learning syntax.\u00a0And as much time as possible on f-ing around with his code to learn design patterns so to speak.\u00a0Like loops, how to find the largest\/smallest number in an array using a loop.\u00a0Without digging in documentation or\u00a0using Max\/min functions to set bounds on a variable that he is changing.\u00a0JavaScript has an advantage that is has C-like syntax which is similar to that of Java.\u00a0If he God forbid wants to learn it later.<\/p>\n<p>Parent 1:\u00a0So JS is s***and Java is worse?<\/p>\n<p>Parent 2:\u00a0Our general advice here is to learn one high level scripting language (Python or Perl, but everyone hates Perl now and one low level language like C++ or Java.\u00a0But I just don&#8217;t think a teenager has patience to learn Java.\u00a0I don&#8217;t think anyone who respects himself or herself as a programmer should build a career around JavaScript.\u00a0But everyone has to know it.<\/p>\n<p>Parent 1:\u00a0Ok. Sounds like S should do python\u00a0and D should do whatever his teacher says.<\/p>\n<p>Parent 2:\u00a0Consider courses available.\u00a0The content and engagement in the course trumps language.<\/p>\n<p>Parent 1: D has already started Java.<\/p>\n<p>Parent 2:\u00a0Ok, then Godspeed.\u00a0Look up a hello world application in java.\u00a0So, teacher what is a class.\u00a0What does public mean.\u00a0What is static void.\u00a0This is seven chapters of a textbook just to say hello world.\u00a0Including a f-ing array of strings as an argument.\u00a0And a dot notation.\u00a0What is System.\u00a0What is out?<\/p>\n<p>Parent 2: Teachers who start teaching anyone under 18 in Java are either idiots or are teaching a group of ultra-motivated MIT students\u00a0Also try setting up an IDE and compiling this baby of a program.\u00a0You will pull your hair out.\u00a0Once it outputs hello world to console, your normal child will rightfully look at you in disbelief and think &#8220;who the f*** wants to do this every day&#8221;?\u00a0Don&#8217;t get me wrong.\u00a0My crawlers are written in Java.\u00a0But it would be like watching a pornstar do an hour-long **** video, then trying it with your college girlfriend for the first time and wondering why it didn&#8217;t go the same way.<\/p>\n<p>Parent 2: (Actually our crawlers are written in Kotlin, which is a script-like language built on top of java (compatible in both directions). The Russians developed it to make Java more bearable and increase the speed of development.)<\/p>\n<p>me:\u00a0Haskell if he wants to learn about computation,\u00a0but JavaScript is the real world power due to libraries and APIs.<\/p>\n<p>Parent 2:\u00a0Perl IS still #1 in terms of libraries.\u00a0Python and JS are catching up.\u00a0Kotlin is like Python with Java power (which also has libraries for almost everything).\u00a0Plus everyone has to know JavaScript.\u00a0Python is cleaner and more logical, for sure.\u00a0Their philosophy is anthetical to Perl: there should be only one way to do it.\u00a0So they spend time fighting which function to keep. This is good for large socialist enterprises where everyone is a cog in the machine.\u00a0So that mediocre programmers don&#8217;t get confused.\u00a0I started teaching my kids Python and quickly ran out of energy. I then moved to Khan Academy and their JS based courses, which are about programming, and not JS per se.\u00a0That was quite successful, but the difficulty accelerated very quickly and I needed to be behind them to give hints and challenge them at key junctions.<\/p>\n<p>Parent 1: [another programmer friend] says Java is the new COBOL.\\<\/p>\n<p>&#8230;<\/p>\n<p>Parent 2:\u00a0Most computer nerds are wrong when it comes to how to teach programming. It has to be now taught just like mathematics: slowly, painfully, step by step to build foundations. Can&#8217;t get to cool or useful s*** quickly without several years of work.<\/p>\n<p>&#8230;<\/p>\n<p>Parent 2:\u00a0in order to make a clone of Tinder you&#8217;d need to know:\u00a01. app development for iOS. 2. HTTP server programming, 3. databases, 4. image storage and processing, 5. file I\/O, 6. APIs.\u00a0That&#8217;s at least two programming languages.\u00a0SQL and\u00a0a bunch of other s***.<\/p>\n<p>Parent 2:\u00a0One has to keep doing it.\u00a0My buddy put his 2nd grader in front of Khan Academy and she went all the way to the end of the Javascript track.\u00a0I asked him to test her after 6 months &#8211; she forgot nearly everything.\u00a0She obviously retained concepts, but that was about it. That&#8217;s not surprising because adults are exactly the same way.<\/p>\n<p>Parent 1:\u00a0The thing is &#8211; they remember that they could do it. So it helps them later.\u00a0I haven\u2019t forgotten C programming because i did it for so many years. But I have forgotten iOS programming.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Facebook Messenger exchange that might be useful to others &#8230; (edited out some of the shocking language!) Parent 1:\u00a0D [14 years old] is in Robotics and has [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","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":[7,10],"tags":[],"class_list":["post-20502","post","type-post","status-publish","format-standard","hentry","category-computer-nerdism","category-education"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - 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\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - Philip Greenspun\u2019s Weblog\" \/>\n<meta property=\"og:description\" content=\"A Facebook Messenger exchange that might be useful to others &#8230; (edited out some of the shocking language!) Parent 1:\u00a0D [14 years old] is in Robotics and has [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Philip Greenspun\u2019s Weblog\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-25T16:02:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-10-26T14:48:51+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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\"},\"author\":{\"name\":\"philg\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\"},\"headline\":\"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python)\",\"datePublished\":\"2018-09-25T16:02:24+00:00\",\"dateModified\":\"2018-10-26T14:48:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\"},\"wordCount\":1021,\"commentCount\":14,\"publisher\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e\"},\"articleSection\":[\"Computer nerdism\",\"Education\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\",\"url\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\",\"name\":\"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - Philip Greenspun\u2019s Weblog\",\"isPartOf\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/#website\"},\"datePublished\":\"2018-09-25T16:02:24+00:00\",\"dateModified\":\"2018-10-26T14:48:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/philip.greenspun.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python)\"}]},{\"@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":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - 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\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/","og_locale":"en_US","og_type":"article","og_title":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - Philip Greenspun\u2019s Weblog","og_description":"A Facebook Messenger exchange that might be useful to others &#8230; (edited out some of the shocking language!) Parent 1:\u00a0D [14 years old] is in Robotics and has [&hellip;]","og_url":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/","og_site_name":"Philip Greenspun\u2019s Weblog","article_published_time":"2018-09-25T16:02:24+00:00","article_modified_time":"2018-10-26T14:48:51+00:00","author":"philg","twitter_card":"summary_large_image","twitter_misc":{"Written by":"philg","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#article","isPartOf":{"@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/"},"author":{"name":"philg","@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e"},"headline":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python)","datePublished":"2018-09-25T16:02:24+00:00","dateModified":"2018-10-26T14:48:51+00:00","mainEntityOfPage":{"@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/"},"wordCount":1021,"commentCount":14,"publisher":{"@id":"https:\/\/philip.greenspun.com\/blog\/#\/schema\/person\/448e4e6a0ae9105741a06dcf62cee50e"},"articleSection":["Computer nerdism","Education"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/","url":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/","name":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python) - Philip Greenspun\u2019s Weblog","isPartOf":{"@id":"https:\/\/philip.greenspun.com\/blog\/#website"},"datePublished":"2018-09-25T16:02:24+00:00","dateModified":"2018-10-26T14:48:51+00:00","breadcrumb":{"@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/philip.greenspun.com\/blog\/2018\/09\/25\/best-programming-language-for-a-tweenager-to-learn-java-vs-javascript-vs-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/philip.greenspun.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Best programming language for a tweenager to learn (Java vs. JavaScript vs. Python)"}]},{"@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-5kG","_links":{"self":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts\/20502","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=20502"}],"version-history":[{"count":1,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts\/20502\/revisions"}],"predecessor-version":[{"id":21064,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/posts\/20502\/revisions\/21064"}],"wp:attachment":[{"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/media?parent=20502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/categories?post=20502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/philip.greenspun.com\/blog\/wp-json\/wp\/v2\/tags?post=20502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}