{"id":37,"date":"2024-07-20T16:26:00","date_gmt":"2024-07-20T16:26:00","guid":{"rendered":"https:\/\/blogs.remiges.tech\/shuvam\/?p=37"},"modified":"2024-11-02T14:46:21","modified_gmt":"2024-11-02T14:46:21","slug":"learning-software-services-style","status":"publish","type":"post","link":"https:\/\/blogs.remiges.tech\/shuvam\/learning-software-services-style\/","title":{"rendered":"Learning, software services style"},"content":{"rendered":"\n<p id=\"ember824\">Today\u2019s programmers in the software industry make me seriously concerned. What will be their career trajectory?<\/p>\n\n\n\n<p id=\"ember825\">It is understood that software development is a highly technical subject. It requires specialised knowledge, and the half-life of this knowledge is shrinking by the year. Java 11 is quite different from Java 8, the gap is just four years. The Android SDK spec changes every year, and you cannot publish an app which uses a 3-year-old SDK. New major releases of Angular\/Ionic are released more than once a year; some are breaking releases. In other words, knowledge comes with a short expiry date.<\/p>\n\n\n\n<p id=\"ember826\">So, if constant learning is a foundation for a sustained career here, how do they learn? As some of you know, I\u2019ve been in the enterprise software development industry for about 30 years, so I get to see how this world works, and it\u2019s not a good feeling.<\/p>\n\n\n\n<p id=\"ember827\">To try to understand my observations a bit better, I tried to categorise the learning attempts I see among developers.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Read a tutorial page<\/strong>. These pages are all over the Internet, and tell you how to install MySQL on your laptop or how to decode a base64 string in Javascript. They are just single pages, perhaps half a dozen Linux commands or ten lines of source. People just copy-paste commands or lines of code without thinking or understanding. If it works, hallelujah!<\/li>\n\n\n\n<li><strong>Watch a tutorial video<\/strong>. This is what I see people doing most often to learn how to use a piece of software, or how to configure something. Tutorial videos are a bit longer than a single-page text, but are not conceptual \u2013 they are trying to teach you to get up and running with something with the least possible time and effort. A beginner with Visual Studio Code or Postgres will watch a 20-minute video to get started.<\/li>\n\n\n\n<li><strong>Learn by doing<\/strong>. Senior engineers who have spent a couple of years with a tech stack have learned a lot this way. They have tried various workarounds, solved various problems, and have a body of experiential knowledge. They become \u201cexperienced\u201d in using async\/await or promises in Javascript, for instance, purely by pattern-mapping. They are in essence churning out code which is similar to code they\u2019ve tried before, but without any conceptual understanding of concurrency in Javascript. Try talking to them about the Javascript event model.<\/li>\n\n\n\n<li><strong>Studying by reading<\/strong>. Here I mean something longer than 20 pages, something which includes conceptual explanations. I do not mean 20 separate pages on 20 websites \u2013 I mean one single document of 20+ pages, written by one author. Like a book.<\/li>\n<\/ol>\n\n\n\n<p id=\"ember829\">And I have seen young officers around me using just methods 1 and 2, and more experienced developers using method 3. Almost no one can read a book any more. I\u2019m surrounded by officers who have undergraduate degrees in some flavour of computer science or a Masters in Computer Applications (MCA). And they cannot read a book. (I am aware that I\u2019m saying \u201ccannot read\u201d, not \u201cdo not read\u201d.) Some confidently say in job interviews that they \u201cdo not read books\u201d because they learn from videos, shrugging off the issue as unimportant.<\/p>\n\n\n\n<p id=\"ember830\">Therefore, they remain technicians, not engineers, whatever be their paper degree. They are doers who do without any conceptual understanding. And in case you think this is an Indian phenomenon, I\u2019m assured by my overseas friends that it most certainly is global.<\/p>\n\n\n\n<p id=\"ember831\">The beauty of the software services industry worldwide is that they have grown to this huge size by employing technicians in such large numbers, delivering value to enterprise clients. But I worry about the young officers around me because I do not know what their career graphs will be after, say, age 35. Let\u2019s look at their options as age advances.<\/p>\n\n\n\n<p id=\"ember832\">After 10 years as a hands-on developer, a software engineer has three career choices. <strong>One<\/strong>: become a senior techie, dive deeper into architecture, performance optimisation, system reliability, etc. <strong>Two<\/strong>: become a manager of people, delivering projects on time. Or <strong>three<\/strong>: get into client account management and business development.<\/p>\n\n\n\n<p id=\"ember833\">Most hands-on developers I see will not become good at managing people or getting new business: these things require hard work and a temperament very different from that of technician-developers. Most developers neither have good soft skills, tact and communication needed to be a manager of people, nor the outgoing, high-intensity, three-meetings-a-day profile of business development leads. The senior techie role is the only role left, and that requires conceptual clarity and reading of books. In theory, it\u2019s possible to learn from detailed conceptual videos too, where good teachers explain concepts like books do. But I suspect that studying from such videos is as hard as studying from books. In fact, I feel that studying from a detailed conceptual video is harder than reading a book, but that&#8217;s a topic for another day.<\/p>\n\n\n\n<p id=\"ember834\">Therefore I worry. I do not see any technical growth path for an engineer after 10-12 years of work experience, unless he or she studies by reading books. And no one can read books any more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The widespread inability to learn which I see in engineers in the software services industry worries me. What will happen to their careers after 15 years of working?<\/p>\n","protected":false},"author":3,"featured_media":38,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-37","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":1,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/posts\/37\/revisions"}],"predecessor-version":[{"id":39,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/posts\/37\/revisions\/39"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/media\/38"}],"wp:attachment":[{"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/media?parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/categories?post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.remiges.tech\/shuvam\/wp-json\/wp\/v2\/tags?post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}