Programming is an Eco-system comparing with Coding.
In recent years, programming has been introduced into the elementary school education in Japan, and it is a field that is attracting more and more attention It is. people around me who have never been involved in programming before, but I've been able to get them involved in programming. In order to get started, you can go to programming classes and programming schools, or you can learn on your own through books and the internet. and so on. It seems that programming, especially in Japan, is only about the ability to write programs. When you actually get involved in programming, you realize that programming is a very important part of the ecosystem that revolves around the program. I think it feels like a process of creation itself.
Programming Education in Japan
In Japan, programming education in elementary schools will be fully implemented from fiscal 2020. The "Overview of Elementary Programming Education" states the following concerns as the background to this introduction
The Central Council of Education's report, which discussed the direction of the revision of the Courses of Study, states that society is undergoing major changes due to information technology and globalization. In particular, with regard to information technology, there are predictions that nearly half of the jobs we have now will be automated in the future in relation to technological innovations such as artificial intelligence AI. In such a rapidly changing society, there are fears that what is being taught in schools will no longer work, and that AI will take over human occupations.
This revision of the curriculum guidelines is not a passive approach to unpredictable change, but a positive approach to school education that encourages children to accept, proactively confront, and engage with each other, to realize their potential, and to nurture their ability to become creators of a better society and a happier life.
And with the introduction of programming education, it is assumed that that anxiety will be alleviated and
In the future, it is extremely important for children to acquire the ability to understand and use computers well, no matter what kind of occupation they may find themselves in in the future, as they will be expected to use computers in all kinds of activities.
All over the world, we have to use more and more computers and apps. Whether it's going to a convenience store, a bookstore, a taxi ride, or to work. We use some kind of application, and the smartphone has become an essential item in our daily lives. It makes sense that we should not only use it, but also develop our skills as creators. It makes sense to develop not only the ability to use them, but also the ability to create them.
So what is the actual content of education? Let's take a look at one document. Other documents can be found here.
If you look at this document, the main focus is to connect the orders and see what the result will be. It seems to be there. It's easy to understand exactly how to write a program. Does repeating this sort of thing mean that you understand programming? Some of this is understandable, of course. However, it is too superficial.
Programming is as a process to make an Eco-System
Programming is a series of processes that create a computer program that can be executed. For example, let's say you want the contents of a received email to be automatically appended to an Excel file. You may have put together your own daily work, but you're tired of it. This is something we hear a lot, especially in Japanese companies. From the moment we attempted to solve this problem by way of programming, the programming has begun.
First, an analysis of the current situation. Who is doing that work now and how? Specifically, is the service receiving the email Gmail or Office365, from which destination do you want to receive the email, is the Excel file on the file server or locally, is it real-time or just once a day? Surprisingly, many people are not familiar with this stage.
The next step is to consider how that program will run. Should you simply run it as your own local job, or make it available to multiple people as a web application or mobile app, or use a cloud service to implement a program that sends a daily aggregate of Excel by email? Consider these and prioritize them.
Think of specific ways to implement the methods you've considered. It is advisable to create a working prototype to some extent at this point. This is because, depending on the method, the cost and difficulty of creating the program are terribly high, or the image you tried to use is far from what you originally envisioned, which you can grasp at an early stage. Now, you can build the entire program from scratch, or you can combine it with other services that are out there. You may be able to solve this problem by using only one service, or by combining services provided by platforms such as AWS (Amazon Web Services). There are three important criteria for deciding which method to take: cost, function, and operation.
- Cost: This includes the time and money it takes to create the scheme and its operational costs.
- Function: How many functions can be realized and how flexible can we be in response to future requests?
- Operations: Is it possible to perform operations after a release without interruption? Operations change both who operates and how. It may last longer than the person who created it, and it may even never see the light of day when it's released in the first place. The goal is not to make it, but to operate it.
Once we've determined how to implement it, we create and test the mechanism. If you're on your own, you don't have to worry about it, but in an organization, it's better to have key people involved. If you don't, you may be turned upside down by one word from that person and have a hard time doing so.
And finally, release and operation. Check the operation of the software carefully, especially right after the release. We also fix bugs and improve features to ensure stable operation.
This is the whole process of programming. This process involves not only the programming language, but also the people involved in it, the other systems I also got a glimpse of the budget and other money matters. Programming is not just about inorganic code, but about the ecosystem that relates to the programs that are created. It's about creating and maintaining or developing it. Particularly, we also remove or replace old parts of it as appropriate. This is how we maintain an ecosystem.
To see the overview or the Eco-System is more important
If you perceive programming as just the ability to handle and write programs in a programming language, you're not going to be able to build a large ecosystem.
In Japan, programming seems to be understood as a specific field. What often happens is that when people try to implement a system to improve their business, they just leave it to the vendor to do it. It means that the system will be closed. Putting a system in place for a business means that the existing system (computerized) will be It's about moving from a series of manual tasks (which may be a series of manual tasks that don't exist) to a new system. It's about changing ecosystems. But the people involved (stakeholders) are not interested in it, and they are not cooperating because they are too busy. If not, to put it bluntly, it could create garbage. It's garbage and will be removed from that ecosystem sooner or later.
But if everyone in that ecosystem understands that programming is about the ecosystem, the replacement of that system will go much more smoothly. As a result, IT (digital transformation) can go a long way in that company.
The first thing you want an elementary school student learning programming for the first time to learn is not to write a program. It's the fact that there are a variety of stakeholders, and each one is involved in that ecosystem. That way, you don't have to be a programmer to be a president, a manager, or a regular employee. As a teacher and a student, programming exists in their ecosystem and We can realize that each of us is involved in the process. I think that this will be followed by the development of society at large.
An inconvenient fact about the ability to write a program.
Don't forget that there's a paper that says 60% of people don't have the aptitude to write programs. It's also known as the Bactrian camel theory.
I'll leave the details for the paper, but because the people who teach and the people who are taught are human beings, I'm going to give you a programming education If you take in the program, you're going to have to take in 60% of the program, when even just 60% of the program may not be understood. It creates a joke of a situation where a teacher who doesn't understand is teaching a child. This can be completely counterproductive to the purpose for which it was introduced in the first place.
The period of compulsory education is more important to teach integrated learning, especially language, numbers and logic, and There is more to it than just writing programs. There's a lot more to it than just writing a program. I think we should focus on developing the ability to see the big picture.
Programming is about creating ecosystems, and a lot of people and things are involved in that. Unless we live in a place where there is no electricity, all of us are ecosystems created by various programming It is part of the