{"id":40866,"date":"2019-03-29T13:52:00","date_gmt":"2019-03-29T11:52:00","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=40866"},"modified":"2019-03-29T13:52:43","modified_gmt":"2019-03-29T11:52:43","slug":"programmer-migration-patterns","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/29\/programmer-migration-patterns\/","title":{"rendered":"Programmer migration patterns"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"522\" height=\"409\" data-attachment-id=\"40867\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/29\/programmer-migration-patterns\/programmer-migration-pattern\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/programmer-migration-pattern.png?fit=522%2C409&amp;ssl=1\" data-orig-size=\"522,409\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"programmer migration pattern\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/programmer-migration-pattern.png?fit=522%2C409&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/programmer-migration-pattern.png?resize=522%2C409&#038;ssl=1\" alt=\"\" class=\"wp-image-40867\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/programmer-migration-pattern.png?w=522&amp;ssl=1 522w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/programmer-migration-pattern.png?resize=500%2C392&amp;ssl=1 500w\" sizes=\"auto, (max-width: 522px) 100vw, 522px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<a href=\"https:\/\/apenwarr.ca\/log\/20190318\">Programmer migration patterns<\/a>&#8221; is an interesting attempt to identify where programmers start and how move from one programming language to another.  This is not precise science, obviously.  But I have to say that I mostly agree with the findings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first language that I learned (back in school) was BASIC, which then gave me some legs with Visual Basic later in college.  Also in college, I&#8217;ve learned assembler, C, and Pascal, which guided me to some amateur and professional development with Delphi.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Soon after that I discovered Linux, which meant shell scripting.  I played with awk, but I didn&#8217;t have to dive deep, as Perl was already available.  Perl was probably my first true programming language, which I learned outside of school and college, and which I have been using for years to build all kinds of things.  I still love Perl dearly, but the last few years I have been mostly using PHP, with some occasional Python.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JavaScript, however, is where I draw the line.  I&#8217;ve been scarred by JavaScript back in the 90s, so I can&#8217;t force myself to go back.  And then again, I don&#8217;t really have to.  I&#8217;ll leave JavaScript, TypeScript, and node.js for the younger generations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let the source be with you!<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Programmer migration patterns&#8221; is an interesting attempt to identify where programmers start and how move from one programming language to another. This is not precise science, obviously. But I have to say that I mostly agree with the findings. The first language that I learned (back in school) was BASIC, which then gave me some &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/29\/programmer-migration-patterns\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Programmer migration patterns<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Programmer migration patterns #WebDev #history #Perl #PHP #Python #JavaScript #research","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,6,2,18,62,1334],"tags":[286,1139,36,38,37,1117,1330],"keyring_services":[],"class_list":["post-40866","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-personal","category-programming","category-technology","category-web-work","tag-history","tag-javascript","tag-perl","tag-php","tag-python","tag-research","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":29150,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/28\/programmer-playing-cards\/","url_meta":{"origin":40866,"position":0},"title":"Programmer Playing Cards","author":"Leonid Mamchenkov","date":"December 28, 2018","format":false,"excerpt":"I have recently blogged about the Faces of Open Source project. That's a great initiative. But here's another one, with a lot more practical approach - Programmer Playing Cards. It is a deck of playing cards, featuring people who influenced the world of computer programming in a variety of ways.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/Larry-Wall-cards.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/Larry-Wall-cards.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/Larry-Wall-cards.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/Larry-Wall-cards.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":26317,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/08\/classic-programmer-paintings\/","url_meta":{"origin":40866,"position":1},"title":"Classic Programmer Paintings","author":"Leonid Mamchenkov","date":"August 8, 2016","format":false,"excerpt":"Classic Programmer Paintings is a hilarious resource with classic paintings featured with modern captions from the programming world. Well worth adding the RSS feed to your geek humor collection... Found via\u00a0Andrey Vystavkin.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"\"Gentle technical discussion on IRC channel\", Francisco Goya, Oil on canvas, 1814","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/technical-discussion-500x387.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27162,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/22\/signs-that-youre-a-bad-programmer\/","url_meta":{"origin":40866,"position":2},"title":"Signs that you&#8217;re a bad programmer","author":"Leonid Mamchenkov","date":"December 22, 2016","format":false,"excerpt":"Software Engineering Tips shares some tips on how to figure out if you are a bad programmer, and how to remedy that. Signs that you're a bad programmer Inability to reason about code Poor understanding of the language's programming model Deficient research skills \/ Chronically poor knowledge of the platform's\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27980,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/","url_meta":{"origin":40866,"position":3},"title":"Every Programmer Should Know","author":"Leonid Mamchenkov","date":"September 9, 2017","format":false,"excerpt":"\"Every Programmer Should Know\" is a collection of subjects and resources that every programmer should know. \u00a0It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o-500x353.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28373,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/10\/this-is-why-you-shouldnt-interrupt-a-programmer\/","url_meta":{"origin":40866,"position":4},"title":"This is why you shouldn&#8217;t interrupt a programmer","author":"Leonid Mamchenkov","date":"February 10, 2018","format":false,"excerpt":"Yup.\u00a0 This is exactly why you shouldn't interrupt a programmer.\u00a0 It takes him at least a few minutes to get back to where he was, irrelevant how brief and unimportant the interruption was.\u00a0 And that's why we invented managers (interrupt them all you want!), asynchronous communication (emails, ticketing systems, etc),\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/ProgrammerInterrupted-130x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11290,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/06\/04\/where-did-all-the-php-programmers-go\/","url_meta":{"origin":40866,"position":5},"title":"Where did all the PHP programmers go?","author":"Leonid Mamchenkov","date":"June 4, 2008","format":false,"excerpt":"During the last six month or so, I've been looking to hire a PHP programmer for at least three companies.\u00a0 I have spoken to quite a few people on the phone, reviewed a bunch of resumes, and even interviewed a few.\u00a0 Out of all those candidates I recommended to hire\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/40866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=40866"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/40866\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=40866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=40866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=40866"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=40866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}