My response to a YouTube video where someone said there won't be programmers soon
@user professional programmer/developer here. I work in industrial advanced systems. Many people have the same misunderstanding about computer code in general. I would like to give more insight into it if I may. I know many famous tech leaders are making bold statements on this topic, but unfortunately they don't provide enough details. You can think of the code generated by a neural network in a similar way to a story written by the same model. The story will have a certain structure to it and this structure is the result of both system prompts (the prompts you dont see) and the training data. Does this mean it is a bad story? No. But it is in essence, a story encapsulated in a bubble of pre-defined rules. This has no problem whatsoever unless you are trying to make something out-of-the-box. The main goal of software development in general is to automate things on a computer, in a way that it will reduce the manual labor. The programming languages exist to combine our natural thoughts and mathematical strictness into a single entity. We can not take away either of these two, otherwise, everything we build in the modern technology would collapse. Many people outside the field, or people that are too obsessed with a programming language, a set of tools, etc. generally tend to show strong fear when faced with a better tool. ChatGPT is the better tool here in many aspects. Why? Well, ChatGPT is an interface to the GPT models, and these models are some of the strongest in the world. They have been trained on vast amounts of data and a lot of effort was put into it. In order to make a better GPT in the future, you can not simply prompt it into the current GPT. This is against the laws of the nature. In order to create something better, we need a combination of tools and knowledge. ChatGPT was built heavily using Python as a programming language, and lots of ML libraries such as PyTorch. Now ChatGPT can WRITE PYTORCH itself! But how? Simple. Because computer code in essence is text content, and when you have a model trained on text content, you should be able to generate more of it. This means you can generate similar content to your training data, create heavily modified versions of it, create non-existent content from billions of combinations of it, create unique patterns , etc. But we have some big problems here. The biggest one is, these state-of-the-art AI models are not intelligent entities. They do not have the ability to make decisions, think, understand or reason. I know it looks like they do all of these, but in reality it is a big circus of estimations and this is fine. What is not fine, is , we can not replace humans with it. It would be like replacing humans with a dishwasher. We can not replace writers, programmers, mathematicians, artists, scientists etc. with an NLP model. For example programming, is not the code, not the syntax, not the operating system, and not the UI of your desktop. Programming could be done with a set of emojis, sticks, bubblegums, if it would be more efficient. The purpose of creating software with code, is to make sure we specified thousands of details that are important to us, turned them into electrical signals, put a lot of logic into it, and make sure we get the results we want from the computer, when we want. We first tried to make it more like english because why not. We failed because then we forgot to add the amount of mathematics and logic we needed into it. We quickly remembered why we had mathematical symbolism in the first place. It was to strictly explain things, in a short but meaningful manner. Then we said, well, let's combine english with symbols and then we will have a toolset that is useful. It worked! We figured out that sometimes we can use a more english-like syntax (such as python, basic etc) and sometimes (when needed) use a more complex way of writing our logic, which takes us to C/C++, Assembly languages, and more. We actually created Python itself, using C! How crazy right? Then we said well, perhaps we should make it even easier for repetitive tasks, and created pure simple tools for everyone to use to create websites, simple apps and get their work done. We made website builders that needed NO CODE AT ALL. We have Excel, Google, etc. Why? To not spend time over and over again on same things. But wait, did we stop using C/C++ or Assembly just because we created Python? No. Did we stop creating very low level code that is too hard to understand? No. Did we stop welding wires just because we already did it before? No. Because we still need to do things with them, to create better versions of the things we already made. Do we still do everything with C? Never. Do we write a lot of C everyday? Yes, when we need to, and sometimes to train our brains, which in return provides us with better ideas and makes us realize more details. These days, I use 4-5 AI chatbots as I write my code. I write certain logic in a mathematical syntax, and sometimes in a specific programming language syntax, and add natural language statements to it. The chatbots generate me all the boilerplate I need and I only need to make small changes in very specific details. These details can only be seen if you know a lot about the thing you are doing within the code. This is also a reason to be able to read, write, understand computer code in different languages if you are dealing with code in your daily life even if you don't write it all the time. What I assume for the future (near) is that we programmers will be more of supervisors. Downside is, we will be under much more stress, always making sure the AI didn't make a small mistake that can collapse the whole system we spent years on. Most probably we will be using mathematical symbolism and natural language expressions in a much much more simple way and it will not look like the code we write today, will be much shorter and brief. When we implements chips into our brains, we will only imagine concepts and generate instant outputs. The funny thing is, we still need to know a lot about advanced logic, mathematics, symbolism, how to think properly for strict concepts like computing or planning. These may seem simple at first, but believe me, even after long years, I still crave more and more of detailed strict mathematical logic in my work. You can never get enough of it. Therefore, if you learn how to build tetris without using a library and using only fundemental tools such as C/C++, you will learn much much much more than just tetris or C/C++. You will learn how to think like a tetris-maker (lol). But if you copy-paste the code from someone else, or a chatbot, you will never learn how to think like a tetris-maker. Will tetris earn you money? no. Will people respect you for it? no. Will you become a super cool master of programming? no. BUT you will have a new power. This new power will lead you to a new idea. this will continue forever. So, this comment turned into an essay for some reason. Anyways hope more people read this.