When I was a kid I read some science fiction about the computer as a machine that produces copies of anything you can imagine. Supermachine could make an ice cream cone or beautiful sailboat… Nice, isn’t it? The reality came way later when I saw the first device called a computer. I wasn’t disappointed that this computer cannot produce any ice cream but I saw a long walk to freedom of conversation with the computer. A computer is very obedient to your commands, the commands need to be very precise.Modern kids are more and more involved in accomplishing various computer-related tasks and simple knowledge of keyboard is definitely not enough. Even though programming languages are getting more and more simple, you still need to commit your time to learn basic rules of programming. You cannot speak the language of the computer the same way as you speak human languages. The computer language doesn’t allow approximation and missing some precision in giving initial information may cause a fatal error. Learning computer programming language is mostly learning keyword and structures. Structures of programming languages are the bunch of libraries that are pre-installed in a certain language to accomplishing various, often used, tasks. So, as in English, you can say to another human being that you want to eat, and your correspondent will reply with the dish he thinks you want to eat or suggest a few options from those available in his refrigerator. The computer will not understand this command at all, because you need to be more precise and call certain structures before you even make a general order of food. Another word you need to first create a menu and then order from it.
So, the learning of programming language can be compared to learning physics or math but not language.
Future development of computer programming languages and computer hardware may allow some form of the pseudo-intellect of machine and then the machine can learn to accept approximate commands. But if and when this time comes surely programming will be not really something that the only programmer can do, but a normal user with basic knowledge of computer may create a necessary program for current needs. However, there will still be professional engineers who will continue development of programming languages itself.
So, back to the question – should our kids learn to programme as a language in schools. The answer is definitely YES, however, a programming language should not be learned the same way as a human language but rather as math. Also, there can be computer literacy discipline that could be studied the same way as human language and this way a new generation of people on our planet will have both: geek engineers who will be able to develop programming languages, and regular computer users who will be able to use all computer power.
Let’s try to imagine a future generation of computer :
- It will be a powerful machine that will not have processor clock measured by Hertz and will not have a number of cores. Most likely processor speed will not be limited, the same way as the human brain.
- The size of memory will not be limited either. Most likely both of the above parameters technologically will be relative to those biological analogs of human resources.
- Most likely all computers will lose their individuality and information data will not be located on one machine but all machines will be connected together
- There will be no applications or just one application – programming interface. The user of the computer will just describe to intellectual machine their tasks and machine itself will make temporary application to accomplish the task.
- The machine will use data available for all machines in the world and this data will be updated during work of other users, other words – the machine will learn all the time, and will be smarter every second.
Well, those are still in science fiction stage, but remember I mentioned what was science fiction for me in 70-80th? Yes, the computer itself was science fiction.