{"id":418,"date":"2026-02-09T16:26:28","date_gmt":"2026-02-09T16:26:28","guid":{"rendered":"https:\/\/codingismycraft.blog\/?p=418"},"modified":"2026-02-09T16:46:05","modified_gmt":"2026-02-09T16:46:05","slug":"the-art-of-real-programming-why-tools-arent-engineering","status":"publish","type":"post","link":"https:\/\/codingismycraft.blog\/index.php\/2026\/02\/09\/the-art-of-real-programming-why-tools-arent-engineering\/","title":{"rendered":"The Art of &#8220;Real Programming&#8221;: Why Tools Aren\u2019t Engineering"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/codingismycraft.blog\/wp-content\/uploads\/2026\/02\/rockstart-vs-real-programmer.jpg\" alt=\"\" width=\"512\" height=\"521\" class=\"alignnone size-full wp-image-420\" \/><\/p>\n<p>In the modern software industry, there is a growing, dangerous belief: that programming is a &#8220;boring detail.&#8221; The narrative suggests that anyone can become an &#8220;engineer&#8221; in a few months, or better yet, bypass the craft entirely by using AI to &#8220;glue&#8221; components together.   This is nonsense. The need for foundational programming is still here, and it remains extremely complex\u2014in fact, it is getting more complex every year.<\/p>\n<p>Let me clarify here  that by no means I want to  diminish the value of the tools and AI which I find extremely useful and use them all the time. But it is crucial to recognize that tools are just that\u2014tools. They are not a replacement for the deep understanding of programming principles, software design, and system architecture that real engineering requires.<\/p>\n<blockquote><p>Abstractions are useful, but they are not a substitute for foundational<br \/>\nknowledge. We must stop confusing &#8220;tool proficiency&#8221; with &#8220;software<br \/>\nengineering.&#8221;\n<\/p><\/blockquote>\n<h3>The Abstraction Trap<\/h3>\n<p>Modern libraries and frameworks are like <strong>LEGO blocks<\/strong>. They allow you to assemble impressive structures without understanding what is happening under the hood. While useful for prototypes, this approach is insufficient for building robust, high-performance systems.<\/p>\n<p>If you doubt this, ask the &#8220;rock star engineer&#8221; on your team to build a parallelization algorithm for CUDA, a Linux kernel extension, or a high-performance GPU device driver.<\/p>\n<p>The &#8220;Rockstar&#8221; who excels at assembling third-party APIs will be completely lost. They have convinced themselves that programming is just about using tools, not about understanding the science. They view performance optimization, memory management, concurrency, and hardware architecture as mere &#8220;details&#8221; to be handled by a framework.<\/p>\n<h3>Power Users vs. Engineers<\/h3>\n<p>Most modern &#8220;Full Stack&#8221; developers are actually high-level <strong>power users<\/strong>. They are the spiritual successors to the &#8220;power users&#8221; of Excel, VBA, and WordPress. While their knowledge of platform tools like Docker, Kubernetes, and Terraform is useful, it is not a substitute for understanding the underlying principles of software design.<\/p>\n<p>There is a fundamental difference between <strong>using a tool<\/strong> and <strong>understanding the art of programming<\/strong>:<\/p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">THE TOOLS<\/th>\n<th align=\"left\">THE ESSENCE<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td align=\"left\">GitHub &amp; CI\/CD<\/td>\n<td align=\"left\">Compilers, Linkers, &amp; Loaders<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">Terraform &amp; Cloud Platforms<\/td>\n<td align=\"left\">Hardware Architecture<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">Frameworks (React, Spring, etc.)<\/td>\n<td align=\"left\">Memory Safety &amp; Management<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">Kubernetes &amp; Docker<\/td>\n<td align=\"left\">Concurrency &amp; Low-level I\/O<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>The Bottom Line<\/h3>\n<p>Real programming is still needed, but it is being buried by an inflation of generalists who have abstracted themselves away from the hardware. We are producing a generation of developers who can build <em>with<\/em> tools, but cannot build the <em>tools themselves<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the modern software industry, there is a growing, dangerous belief: that programming is a &#8220;boring detail.&#8221; The narrative suggests that anyone can become an&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"categories":[11,6],"tags":[],"class_list":["post-418","post","type-post","status-publish","format-standard","hentry","category-ai","category-programming"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":394,"url":"https:\/\/codingismycraft.blog\/index.php\/2026\/01\/23\/the-ai-revolution-in-coding-why-im-ignoring-the-prophets-of-doom\/","url_meta":{"origin":418,"position":0},"title":"The AI Revolution in Coding: Why I\u2019m Ignoring the Prophets of Doom","author":"john","date":"January 23, 2026","format":false,"excerpt":"The AI Revolution in Coding: Why I\u2019m Ignoring the Prophets of Doom Every day, we are bombarded with headlines about how Artificial Intelligence (AI) is \"disrupting\" every industry in its path. Software development is at the epicenter of this hype. With the rise of sophisticated AI-powered tools, the same question\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":337,"url":"https:\/\/codingismycraft.blog\/index.php\/2024\/11\/06\/unveiling-the-traits-of-a-master-programmer\/","url_meta":{"origin":418,"position":1},"title":"Unveiling the Traits of a Master Programmer","author":"john","date":"November 6, 2024","format":false,"excerpt":"Programming is a craft honed through both theoretical knowledge and practical application. This skill, cultivated through countless hours of coding and problem-solving, is essential for delivering high-quality software. To achieve mastery, programmers must possess not only a strong foundation in technical knowledge but also a wealth of practical experience. This\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":276,"url":"https:\/\/codingismycraft.blog\/index.php\/2024\/09\/14\/the-illusion-of-mastery-understanding-the-true-role-of-llms-and-ai\/","url_meta":{"origin":418,"position":2},"title":"The Illusion of Mastery: Understanding the True Role of LLMs and AI","author":"john","date":"September 14, 2024","format":false,"excerpt":"In today's technologically-driven world, there is a significant amount of hype surrounding Large Language Models (LLMs) and artificial intelligence (AI). However, it's essential to take a step back and critically evaluate their true capabilities and limitations. First and foremost, LLMs are not true AI in the conventional sense. They are\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18,"url":"https:\/\/codingismycraft.blog\/index.php\/2023\/11\/24\/codingismycraft-a-few-words-about-the-title-of-the-blog\/","url_meta":{"origin":418,"position":3},"title":"CodingIsMyCraft: A few words about the title of the blog","author":"john","date":"November 24, 2023","format":false,"excerpt":"A few words about the title of the blog The term 'Software Engineer' has widely been used in the last decades to describe those who program computers. I am skeptic about this and personaly I wouldn't categorize programming strictly as engineering or science. If I were to describe it, I\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":323,"url":"https:\/\/codingismycraft.blog\/index.php\/2024\/10\/20\/beyond-the-ai-hype-charting-a-path-to-true-success\/","url_meta":{"origin":418,"position":4},"title":"Beyond the AI Hype: Charting a Path to True Success","author":"john","date":"October 20, 2024","format":false,"excerpt":"Artificial intelligence (AI) is undoubtedly here to stay. It has been a part of our technological landscape for decades, advancing from theoretical concepts to real-world applications. However, despite AI's persistence and gradual evolution, the current hype surrounding it is not entirely justified. We find ourselves in the midst of a\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":348,"url":"https:\/\/codingismycraft.blog\/index.php\/2025\/03\/19\/stop-chasing-technology-how-to-build-ai-that-solves-genuine-problems\/","url_meta":{"origin":418,"position":5},"title":"Stop Chasing Technology: Finding the user\u2019s problem is the real problem!","author":"john","date":"March 19, 2025","format":false,"excerpt":"There\u2019s a common critique in the AI community: too often, AI solutions emerge from asking, \u201cWhat can we do?\u201d rather than, \u201cWhat problem do we need to solve?\u201d Developers frequently jump on the latest algorithm or innovative model and then search for a suitable use case. This approach tends to\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/codingismycraft.blog\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/comments?post=418"}],"version-history":[{"count":11,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/418\/revisions"}],"predecessor-version":[{"id":430,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/418\/revisions\/430"}],"wp:attachment":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/media?parent=418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/categories?post=418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/tags?post=418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}