This is the 9th day of my participation in Gwen Challenge

Author: White Snail

Source: Snail Internet

When we have a cavity of enthusiasm or the desire for high salary, into the software development of this position, the role of the programmer, our core responsibility is to use the computer to write programs, commonly known as the computer to write code.

As long as one computer is connected to the Internet, we can work. But with all that code, do we ever think about the nature of programming?

“The Godfather” said: “it takes half a minute to see the essence of things, and spend a lifetime to see the essence of the people, naturally is different life.

So let’s try to think about the nature of programming and maybe take us further.

In the case of programming, writing a program, the result is, literally, a program.

What do I mean by program?

A program, in a broad sense, is a sequence of actions performed in the same way, under the same circumstances, always resulting in the same result.

For example, if you open a bank account, you need to prepare materials, such as ID card, go to the bank to fill in the form, check yourself, sign, and finally get a bank card belonging to you.

Change a person to also want to go same procedure, want to prepare material likewise, fill in a form, nuclear body, sign, want to deal with to the bank likewise, got bank card finally likewise.

You will notice that there are three sameness in the definition, and that the greatest characteristic of programs is repetition.

It’s just that the repetition in the previous example happened in a bank. It’s the same business every day, just different customers, different tellers.

But opening a card can only be done in a bank, which is very limited. I had to expend time and energy to get to the bank and pick the bank hours. There is no way, I do not go to the bank can also open the bank card down.

The advent of computers and the Internet solved this problem.

The materials to be handed in, procedures to be taken and cards to be taken remain the same, but the entire operating environment has changed from an offline bank to an online carrier, which can be a PC Web site or a mobile APP.

Online refers to the Internet, which enables the transmission of information across space, and the carrier of operations, no matter Web sites or APPS, are all computer programs behind.

Where once it took you an hour to get to the bank by bus, now you can do it on your mobile phone without leaving your home.

Where do these programs on the computer come from?

It’s written by programmers.

So what a programmer has to do is take things from the offline real world and program them into an online computer.

It’s a bit like the role of a screenwriter in a movie.

The difference is that screenwriters make up enough fiction to ensure that art comes from and rises above life, and that the output is an hour or two of video.

And the programmer has to be realistic enough to make sure that the program is logical and not messed up, and the product is an application on an electronic device.

The purpose of programming is clear: to use computers to solve real-world problems.

Whether it is the real world or a computer, we need three core elements to do a thing: Input, Process and Output, or IPO.

Programming is mapping real-world problems to the IPO of a computer.

So how do you map real world problems to computer ipos?

I understand the model.

What is a model? A model is a simple representation of something else.

If you want to simplify something, you need to analyze it and then abstract it.

The dimensions of abstraction determine the final form of software.

If the computer itself is abstracted, the software is presented as machine code or assembly language.

If the computational processing logic is abstracted, the software is presented in an unstructured high-level language, such as Basic.

If the problem domain process is abstracted, the software is presented in a structured high-level language, such as C.

If the problem domain elements are abstracted, the software is rendered in an object-oriented programming language, such as Java.

That is, a programming language is an abstract mechanism from the real world to the computer world.

Programming is abstracting the real world into a simple model in a certain dimension, using a certain language, and then designing and implementing computer software that works, which is a complete IPO.

That’s the nature of programming I understand. If you also have ideas, welcome to communicate with me ~

Ok, this issue to share here, if you like my share, please be sure to triple, like, see, favorites, follow me, it will be very helpful to me.

I’ll see you next time.