blog

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit ca81009541443fcdfb793f81122cf877c8f0c73b
parent 5d47c9bab295e13bc020091d0b06b5818f275acd
Author: Andrew Laack <andrew@laack.co>
Date:   Fri, 17 Oct 2025 00:05:54 -0500

Very rough post

Diffstat:
Aposts/wip/ai-makes-programming-boring-for-me.md | 36++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+), 0 deletions(-)

diff --git a/posts/wip/ai-makes-programming-boring-for-me.md b/posts/wip/ai-makes-programming-boring-for-me.md @@ -0,0 +1,36 @@ +# AI Makes Programming Boring For Me + +## Date: 2025/10/16 + +## Why I Started Programming + +I think I started programming because of social influences, namely my father, but very quickly I learned of its beauty. In my first programming courses I became infatuated by telling a computer what to do and it doing exactly what was specified. Very quickly one learns their specifications often differ from what they intended, but a few keystrokes and the program will start behaving as anticipated. This is not the case with AI. + +A problematic part of programming with AI is non-determinism. When I make mistakes programming I can track down the source of the mis-specification and solve it. When AI makes a mistake, it often feels like a guessing game, waiting for the AI to find the issue and resolve it, often getting stuck and becoming unable to do so. This process is frustrating to me, but the process of debugging is not. Debugging is clear and logical, you trace the flow of information and find where there is a mismatch between reality and expectations, you then fix it. It's nice, it's simple, it feels guaranteed that given enough time, the issue will be resolved. I haven't found this to be the case with AI. + +## Drudgery + +I've heard the argument that using AI to program allows one to be more productive by delegating away the drudgery of programming, but the drudgery is often useful. + +1. Drudgery results in better code + - I can ask an AI to change the text in 1,000 magic strings in a few seconds. If I can do this, what's the point of consolidating them into one constant? It's very minimal, but the second a human goes into that codebase, they will be in a world of pain. Additionally, this issue is not solved by simply always using AI, AI will often update a few of these strings, enough to make the operator think the problem is fixed, but not actually fix the issue. This causes even more confusion, degrading the quality of the codebase and the resulting program. +2. Drudgery breeds automation + - Similar to the prior, if I can ask an AI to build my application and upload it to an SFTP server, what's the point in automating the process? I can just ask it to do this every time. I think this is more common than we'd like to admit, and a big issue with this is that current AI systems are non-deterministic. Each time you ask the AI to upload to the server, there is a non-zero chance it will mess something up. This chance can be substantially decreased by automating the process, it can also be sped up by doing this, and it will likely be cheaper (tokens aren't free). + +## You Don't Know What You Don't Know + +I know a non-zero amount about cryptography, FUSE, and networking. If Cryptomator didn't exist, I could build something similar to it because I understand the concepts underlying it. If an individual does not understand they can create filesystems in userspace (FUSE), if they don't understand you can reverse engineer network requests, if they don't understand cryptography, such an idea would not occur to them. + +I'm not trying to claim I'm a genius by understanding these concepts or that I could easily build Cryptomator, but having an understanding of concepts is what allows for innovation, and without core knowledge, you are limited in what you can imagine. + +Inversely, one might think it would be simple to create a competitor for YouTube, and ask an AI to help them with such a task. This is something that is exceptionally unreasonable. An individual without hundreds of millions in backing will not be able to compete with YouTube, but if one has no understanding of computing and the bounds of it, such an idea doesn't seem entirely unreasonable. After all, someone else has done it so it must be possible. This seems to be a common issue, people who don't know much about computing often think they have a great idea, but often it is just a derivative of something that exists because they don't have a sufficient understanding of concepts to create novel things. + +This is all to make the point that using AI is not a replacement for human thought. By using AI in this way, you will be bound to your creativity and its knowledge, neither of which is vast. + +## Solution + +Don't use AI unless there is a very good reason to do so. At work I use AI quite frequently because I am being paid to be exceptionally productive, and while I know it is bad for my skills, it is what I am expected to do. Arguments can be made that humans can be as productive as humans with AI based on specific studies, but I find it unlikely, especially in modern tech companies. Modern tech companies are not building products to last decades, they are building products to last months. On such a time horizon, there is insufficient time to learn a codebase to become more productive than AIs. + +Given this, I find the best approach to be doing personal projects. Personal projects aren't corrupted by monetary incentives, they exist because of a passion for the craft, and an interest in something that doesn't exist yet. + +## Citations