Who would have guessed ten years ago that artificial intelligence would ever, much less in less than a decade, become so incredibly advanced that not only can it program, but it can do it astonishingly well. Not only does it know how to write a program, but it doesn't even require a meticulous explanation and point-by-point specification of what the program needs to do, but a more vague description suffices. What's even more incredible is that you can actually have a fluent back-and-forth conversation with the AI about what is it that you want to achieve, just like you could do with a really smart person, the AI making suggestions and asking questions, and at the conclusion you can ask it to write the program for you, and it will understand everything that was talked about, and not only write the program, but might even do it better than you even imagined.
If you had told me ten years ago that in a decade AIs will be able to do that, I would have laughed at you. I think almost any experienced programmer and tech nerd would have. It seemed absolutely unthinkable back then, especially given the short timeframe.
Yet, here we are. Modern AIs can do exactly that, and can often do an even better job than a human programmer could, and much, much faster. Want to, for example, create a simple interactive web app, which you can upload to eg. GitHub Pages for anybody to use? Do the above, and you'll likely get a good working result.
Given that, it's extraordinarily tempting to just delegate everything to AI. Why spend weeks and months coding something when an AI can do it in a minute, based on a ten-minute conversation and refinement session? You'll get in 15 minutes something that you yourself would have probably spent a week coding. And the AI might even produce a better and richer result than you would have thought of.
However, here are some reasons why you shouldn't just start delegating everything (or even anything) to an AI, instead of writing the code yourself.
1) "Use it or lose it."
Computer programming, especially when you are implementing something that requires thought and perhaps even research, is an intellectual exercise. It requires thinking, planning, possibly some research. If, for example, the program in question implements something related to geometry, it may require you to solve some geometry problems, and think of ways to implement those solutions in code. It also often requires reaching into what you know and remember, about the programming language itself, about programming in general, and about the subject matter that you are solving in your program.
Intellectual exercise is similar to physical exercise. If you spend years not doing any physical exercise, your muscles will atrophy and lose strength and constitution, and your overall fitness and health goes down.
Lack of intellectual exercise is similar: If you spend years and years never engaging in cognitively and intellectually challenging tasks, the ability to do those tasks will slowly but surely deteriorate. If you spend years and years never accessing your memories about particular subjects, it will slowly but surely become harder and harder to access them in the future.
Your cognitive and intellectual skills are not something you cannot lose, or that cannot become weaker. They absolutely and most definitely can become weaker because of disuse, and you may even start losing things you knew, if enough time passes without you accessing and refreshing those memories.
This happens with everything. Including your very native language. Most people are actually not aware of it, and never become aware of it, but you can become extraordinarily poor at speaking and even writing your very own native language, the language that you grew up speaking and have spoken your entire life, if you never use it for many years. Spend 10 years in an environment where you never hear nor use your native language, and then try to use it again, and you'll be surprised how difficult it will have become (so much so that it's outright scary.)
Your native language (and any other language you speak with native fluency) is, however, something that comes back relatively quickly once you start actively hearing and using it once again. However, not all cognitive and intellectual knowledge is like that. Computer programming and especially algorithmic thinking may be much more laborious to relearn once it has deteriorated due to prolonged disuse.
If you have some other cognitively and intellectually challenging activities that you like to engage in, and you don't really care so much about computer programming and developing algorithms, then great. However, if programming is your passion, I would strongly recommend not shoving that passion aside and throwing it away, just because it's more convenient to delegate your coding tasks to an AI.
2) Computer programming is not just a job, it's a passion.
Sure, for many people programming is just a tedious job that they have taken in order to bring food to the table, and they'd rather be doing anything but, and they are not very interested in it.
However, for many avid programmers, coding is a hobby and a passion.
Compare it to other hobbies that people are passionate about:
Why do painters keep painting by hand, when a computer can print you a high-quality picture in mere minutes? Why even go through the trouble of drawing a picture, when an AI can do that for you? In fact, an AI can generate a hundred versions of the same idea, and will do it much faster than you would be able to draw even one.
And the answer is: Because the passion is in the craft, in the doing, not just the end result. To a professional painter, the joy is in the manual painting process itself. The painting process is not just a tedious nuisance that one is forced to do. Instead, the painting process is the entire idea! That's where the joy is. The end result, the finished painting, is rewarding precisely because of the work you put into creating it. If you had just commissioned the painting from someone else, there would be no joy in it, there would be no sense of reward in it.
Or consider, for example, people who spent hours and hours every day tinkering with some old car. One could ask: Why spend so many hours every day, and why spend so much money, in something so useless? If you want a good car, just buy one. If you want your car fixed, then just take it to a shop where they will fix it for you.
And the answer is, once again: Because the passion is in the craft, not the end result. The passion is in the doing. It's the process that's the joy. It's the process that's rewarding. Seeing your own handiwork in action is what it's all about.
Same goes for programming. For many coders, it's the programming itself that's the passion. The thinking, the planning, the solving of problems, the act of expressing your solutions in the program code, and then see it work as it should. Even if it takes three weeks to do something that an AI could do in three minutes, so what? It's not the speed of writing the code that's the main point: It's precisely the crafting of the code.
3) Programming is an opportunity to learn something new.
This is actually something that professional mathematicians in particular are worried about, and the reason many of them have grown such a big distaste for AI-generated mathematical proofs: When an AI gives you a readymade proof for some mathematical problem, you have learned nothing in the process. When you are given the final end result of the proof, and the process of coming up with that proof is completely missing, very valuable stuff has been completely lost.
That's actually one of the primary reasons why professional mathematicians love to try to solve big and complicated unsolved mathematical problems: While the proof itself is nice, it's actually not the most important thing about it. The most important things are all the tools, techniques and new knowledge, new mathematics, that were developed in order to come up with that proof. In other words, what was learned during the process. Those new techniques are often useful in more than just that one proof.
Computer programming is not completely dissimilar to this. Very often, when you write a program, it's an opportunity to learn new things, things that you didn't know before. They might not be groundbreaking completely new territory in computer programming, but it may well be something that you yourself did not know, learned during the process of developing the program, and may be able to put to good use in the future for further programs and, perhaps, even something outside of programming.
If, however, you delegate the development and writing of the program to someone else, or something else, you will be denying yourself this opportunity to learn new things.


_poster.jpg)