📜 ⬆️ ⬇️

Ershov's Birthday

“The elitism of programmers seems to me obvious and in this view is an interesting challenge to humanity as a whole.”
- Andrei Petrovich Ershov



“The essence of the problem is to recognize that programming requires from a person a somewhat special view of the world, its needs and evolution, special moral readiness for its duty. A programmer is a soldier of the technical revolution and as such must possess revolutionary thinking. ”
- A.P. Ershov
')
Donald Knut recalled: “It started when I was a graduate student. At that time, Andrei’s book “Programming for BESM” appeared, and we, a group of students, were able to convince the Russian language teacher to include it in the course as one of two collections of texts for the study of scientific vocabulary. ”

Ershov then made friends with Knut and Seymour Papert , developed the Russian algorithmic language , which the people called “Ershol” behind their eyes. In 1985, he created a series of educational television programs for teaching schoolchildren programming (the Soviet MOOC), a year later he brought a group of schoolchildren-programmers to America, and a year later he received a response delegation of American schoolchildren-programmers in Novosibe. (By the way, if you know the participants of these events - write in the comments or in a personal.)

Today, together with the Edison company, we offer everyone to celebrate the birthday of Andrei Petrovich . The merits and contribution of Ershov to Soviet (and world) programming are described in Wikipedia , but I wanted to look a little deeper and look for photos of primary sources. A couple of hours rummaged in the archive . Found something interesting. Under the cut - a lot of pictures and two fundamental scientific pop articles by Ershov about the importance of programming.

And this is Ershov and McCarthy if that:
image



image
A.P. Ershov and D. Knut (USA) - the organizers of the International Symposium "Algorithm in Modern Mathematics and its Applications".

image
1953, A.P. Ershov. For the remote control BESM-2. Moscow.

image
1985, A.P. Ershov. Television programming lessons for students.

image
1987, A.P. Ershov with John McCarthy at the Summer School for Young Programmers. Novosibirsk

Teleuroki
image
“Learning to make educational programs in computer science for television turned out to be a new business for everyone. “True, the feeling of unknownness contributed to the rapid rallying of our small creative team ... An additional problem was the contradictory nature of the requirements for organizing, setting and shooting 30-minute lessons. It is difficult to say to what extent these contradictions have been reconciled with each other, but after lengthy disputes and discussions some kind of productive approach has developed ... ”

image
1985 Television recording of the basics of computer science for high school students.

image
1985 Television programming lessons for students.


“BusinessWeek” interview with A.P. Ershov. 11.11.1985 ( source )

image
October 1986 Reston, USA. A. P. Ershov with Soviet and American schoolchildren.


11/07/1986. Picnic in the city park of San Francisco.

image
Tour of washington

image
“Hearts and Computers” in the “Teacher's Newspaper” with the story by A.P. Ershova about traveling to the United States. 12/11/1986





image
1987 The return visit of American schoolchildren. Academgorodok.

image
September, 1987 The return visit of American schoolchildren. Academgorodok, park. Planting ceremony cedar.


1987 A.P. Ershov and J. McCarthy at the Sibiryak tourist center during LSUP-87.

Programming - second literacy




“Having decided to call my speech this way, I am aware that this is a metaphor that will seem risky to many. On one side of our equation is an exotic, although already very massive profession, requiring ability and long training, and on the other, a common property, the most fundamental property of modern man.

Nevertheless, I will try to demonstrate the instructiveness and fruitfulness of this metaphor. Not wanting either to kill the reader with long syllogisms, nor to hit him with tricks, I will explain in advance the outline of the disclosure of the main point.

First, it will be easier for us to compare programming with literacy if we remember that literacy is a historical category that has its precursor, its origin and development. The USSR is a country of virtually complete literacy: already 10 years ago, literate people in it constituted 99.7% of the total population aged 9 years and older. 100 years ago, this percentage was slightly above 20%. Even now on Earth there are about 800 million illiterate.

Secondly, both the basis of literacy and the basis of programming is a technical invention: a printing press and a computer, respectively. If the development and dissemination of typography has led to universal literacy, the development and dissemination of computers will lead to a general ability to program. ” (Read fully here .)

"About human and aesthetic factors in programming"


From the magazine "Cybernetics", number 5 for 1972.

“During his stay in 1970 in the United States, the author was very impressed with the new ideas of the professors of the Massachusetts Institute of Technology Marvin Minsky and Seymour Papert about teaching children. They threw into the basket a walking notion that children learn unconsciously by imitation. They prove that a person learns something only if he has a block diagram of the action in his head, subprograms are highlighted and information links are laid. Professor Papert forever turned the author into his faith using the example of juggling with two balls, when, appealing to his programmer's abilities, he taught him in ten minutes what he himself would not do in a few hours.
[...]
Generations of people change much slower than the generation of machines. The author would like to ask his fellow executives if they know how to make a programmer over the age of 50 years not less useful than a 30-year-old. In 30 years there will be a million such programmers in the world. It’s probably fair to say that now we don’t have a proper approach to how to assimilate veterans in modern conditions of variability and instability, thus making the programming profession a lifelong and giving a person a comfortable sense of social and professional usefulness. ”
Full article
In memory of G. I. Kozhukhin

It may seem strange to someone to publish an article on such a subjective issue in a scientific journal. The history of science, however, shows that at certain periods aesthetic, organizational, and generally external to the technical content of a scientific discipline sometimes made a decisive contribution to the formation and development of a given discipline. Now, when programming as a science and as a profession enters a period of its self-determination, the analysis of human factors in programming seems to be relevant to the author.

The fact is that, despite the fact that, and perhaps due to the fact that programming is now recognized as the key point in expanding and deepening the sphere of application of computers, difficult times are coming for programmers. The volume and complexity of programs increase disproportionately with respect to salary. The romantic aura of the incomprehensibility of this profession, if it ever existed, begins to fade. In the West, softverses melt away like yesterday’s snow, and programmers begin to replenish the army of the unemployed. Even the desire to consider programmers as professionals of a special kind is challenged. The main thing is that the free army of programmers is gradually captured by administrators and managers who are striving to make the work of the programmer planned, measured, homogeneous and impersonal.

The reader should not get the impression that the author considers this trend wrong. The lack of efficiency in the work of programmers is perhaps the main reason for the existing gap between the needs and possibilities of successful computer applications.

From this point of view, it is necessary to agree that, as a profession, programming has not yet reached its maturity. In the West, a wave of small businesses connected with the so-called software houses has been a typical testimony to this over the past few years. Such a software house, or better to say software hut, was built within a few weeks by a group of intelligent programmers who, as a rule, left the large organization in which they received initial experience. In most cases, the motive for such an initiative was the thirst for profit, the half-child desire to get rid of unnecessary guardianship, of course, in combination with some interesting and useful idea in the field of software development. However, later on, only such groups turned out to be viable, in which this partisan spirit was quickly replaced by the economy mode, the hierarchy of relations, and rigid discipline — in a word, by all that once pushed them out of the parental home. As a joke, you can see that this whole story resembles the tale of three little pigs: the programmer brothers eventually gathered in a strong software house, but only after the first two were carried away by a wolf wind of merciless commerce.

It should be noted that, although in other manifestations, similar phenomena were observed in our country, when several years ago, thoughtless optimism and naive faith in the omnipotence of the machine in some projects replaced with sober calculation, strong organization and high-quality programming. Thus, the subordination of programming to industrial methods of work is an inevitable fact. The author believes, however, that this trend should be balanced by a reciprocal initiative, consisting in the fact that the programmer must find some system of internal values ​​in his business, the possession of which will allow him to more easily assimilate the industrial methods of work, where it is necessary to overcome them.

The author is convinced that this system of values ​​in programming objectively exists, but is not fully realized, is not known to everyone, and therefore requires distribution and protection. This system has many components, perhaps the most important of them is the professional statute of the programmer (it should be noted that the author speaks about programmers in a broad sense, including system analysts as well), but at the moment I want to say more about aesthetic or the emotional side of programming, not only that rewards the programmer when he goes with his product to the consumer, but also about what constitutes his moral support when he is left alone with the program or machine.

Programming becomes a mass profession. However, it must be borne in mind that now it is perhaps the most difficult of all the mass professions, and, unfortunately, this difficulty is not adequately recognized.

The difficulty lies in the fact that it is programmers who directly run into the limits of human cognition in the form of algorithmically unsolvable problems and deep secrets of the work of the brain.

The difficulty is that the programmer’s own stack does not have to be in 5-6 depth positions, as psychologists have discovered in the average person, but the same depth as the stack in his next task to be programmed, plus two or three more positions.
The difficulty also lies in the fact that the programmer must have the ability of a first-class mathematician for abstraction and logical thinking in combination with Edison's talent to construct anything from zero and one. He must combine the accuracy of an accountant with the insight of a scout, the fantasy of the author of detective novels, and the sober practicality of an economist. And besides, the programmer must have a taste for teamwork, understand the interests of the user and much more.

In this work, this difficulty can be overcome only by a great deal of emotional stress, which requires a special self-awareness and internal positive attitude from the programmer. An understanding of this setup is necessary for those who manage programmers, and especially for those who educate and train them. As an example, you can list a number of organizational alternatives or simply difficult issues that can be properly resolved only with full consideration of the factors discussed:
  • Is it possible and necessary to organize the development of software on the principle of a conveyor line?
  • Who and why is harder to find for the implementation of a software project - a manager or a contractor?
  • How to combine the elitism of system programming with its mass character?
  • How to educate a programmer, through the world (university) or through professional skills (technical institute)?
  • What are individual skills in programming, are they specific and are they needed?
  • Is it possible and necessary to separate the design of a large program from its production?

These questions are part of a common problem, so we will make only private comments when trying to link their formulation with the analysis of the human factor in programming.

About conveyor

In a sense, the pipeline is a devilish invention. Raising productivity to an unprecedented level, he at the same time, to the maximum extent, turns a person into an appendage of a machine. Conveyor method in programming can either kill the intellectual component in the work of the programmer, or cause neuroses due to the contradiction between monotony and difficulty of work. Imagine a person who is obliged to 8 hours a day, 5 days a week, 50 weeks a year, to solve only crosswords, and you will understand what a programmer is, specializing, for example, in writing editing programs. In a word, setting people apart for elementary operations in a multi-module system is far from an easy task.

About managers and executives

Do not rush to put the leader in the first place, explaining that, by definition, the leader is harder to find or create. Let's think about why, all along, the project leader prefers to start with young specialists who graduated from a university two or three years ago than with people whose work experience exceeds five years? Is it because we prefer to use a clean sheet and the plasticity of a young man, rather than overcome the passive resistance of a more mature and less clear for us 33-year-old head of the family. But this, in particular, means that we do not know how to harmoniously develop the professional merit of the performer so that they do not fall with age and would be useful not only for the manager, but also for himself and his future superiors.
The elitism of programmers seems obvious to the author and in this form is a serious challenge to humanity as a whole, and one can hope that the challenge will be accepted and overcome. This idea will be deciphered later.

Worldview and professionalism

The problem, of course, is not only to objectively evaluate the required ratio of candidates of science and graduated software engineers, although around this a fair amount of well-known personnel problems arise. The essence of the problem is to recognize that programming requires from a person a somewhat special view of the world, its needs and evolution, and a special moral readiness for its duty. A programmer is a soldier of the scientific and technological revolution and as such must possess revolutionary thinking.
Now we come to formulating the central thesis of the article. It consists in the statement that programming possesses a rich, deep and original aesthetics, which lies at the basis of the internal attitude of the programmer to his profession, being a source of intellectual power, vivid experiences and deep satisfaction. The roots of this aesthetics lie in the creative nature of programming, its difficulties and social significance.

Here, before continuing the main idea, the author would like to emphasize the importance of a person’s internal attitude to his work. Now there is a lot of controversy about whether programming is a specific profession. This is not an abstract dispute, but a discussion, the result of which has direct organizational, legal and educational implications. The main guarantee of the successful outcome of this discussion should be, first of all, self-awareness and the ability to understand those who consider themselves to be programmers. The well-known proverb "fisherman sees fisherman from afar" should find its interpretation in the programmer's environment.

Select the aesthetic essence of any kind of professional activity is not easy. It is essentially implemented in subjective categories and is deeply intertwined with the ethical code of the profession, with its technical content and legal statute. Therefore, the listing of the aesthetic component of programming in this article will also be subjective and very preliminary.
First, we make some comments reflecting the internal nature of programming.

The creative and constructive nature of programming does not require much evidence. The author would like to express, perhaps, a more controversial idea that, in its creative nature, programming goes much further than most other professions, approaching mathematics and writing. In most other professions, we only “tame” with the help of the forces of nature certain physical or biological phenomena, without necessarily comprehending their essence. In programming, we are in a sense going to the end. One of the theses of the modern theory of knowledge: “we know something, if we can program it” - this maximalism of our profession characterizes very vividly.

Another very important aesthetic principle of programming is its highest demands on the completeness of the product. Of course, this is typical of many engineering professions. However, programming continues here. Although this property almost disappears in multi-million software conglomerates, at the level of individual work there is always a striking contrast between almost done and completely done work. This one hundred percent programming is the source of his difficulty and at the same time the deepest satisfaction with the working program.

A machine equipped with a program behaves intelligently. At this climax, the programmer is aware that his program, while obtaining an independent life, materially embodies his intellectual efforts, which now become the common property. This triumph of intelligence is probably the strongest and most specific aspect of programming.

In relation to the machine from a bona fide programmer, there is another feature. In a sense, he treats her like a good jockey to his horse. Knowing and understanding the capabilities of the machine, he will never allow himself to compensate for the laziness of his mind with the carefree waste of computer resources. This purely aesthetic attitude is the most effective preservative against mindless “pessimization” of the software, which sometimes negates the efficiency of using the machine.

Another part of the aesthetic essence of programming consists of its components that are associated with the social, or social, function of programming. Whenever we consider a social phenomenon of a large scale (and the emergence and use of computers are, of course, those), we must look for some broad historical analogies that can provide some kind of support for extrapolation and foresight. The fact that computers brought with them the scientific and technological revolution and the associated industrialization of mental labor has already been mentioned. In this place I would like to draw another analogy, which is more directly related to the profession of a programmer. The development and distribution of software is in many ways reminiscent of what happened as a result of the appearance of typography. As the books accumulate the external image of the world in the eyes of their authors and allow to reproduce the process of its knowledge, so the programs and data banks accumulate information and operational models of the world and allow not only to reproduce, but also to predict its evolution, thereby giving an unprecedented power over nature.

Now being a good programmer is the same privilege as being a literate person in the XIV century. This privilege gives the programmer the right to expect similar recognition and respect from society. Unfortunately, these expectations are not always justified. However, it should be noted that the implementation of such recognition requires work on both sides. In particular, it is necessary for a programmer to follow a single ethical principle, which is of a general nature for every professional, but has a special interpretation for a programmer. Three options are simpler: work for work, work for money, work for a goal.
In the programmer's coordinate system, the first two motives are in the foreground, although only the third is important in the absolute coordinate system. In this regard, we must always remember that a programmer will be able to achieve complete harmony with society only if the loyalty of the goal, in the achievement of which his program is only a part, becomes its internal setting.

Speaking about the public function of programming, it is impossible not to notice that on the way to the realization of this function lies one unsolved technical problem - the provision of the accumulative effect of programming. This is a very difficult, but absolutely necessary problem to solve. The range of opinions about it is endless. Some people say that only a few percent of the compiled programs are currently working, others consider that OS / 360 is already an almost immortal set of programs. Returning to the topic of the article, I would like to say that providing the programmer with the perspective of a long and stable use of his work product will have a decisive impact on his professional self-awareness.

Now, the author would like, from the standpoint of the statements just made, to end the discussion of the previously listed alternatives and difficult problems.

About individual abilities in programming

We need an image of an ideal programmer. Of course, it will be a mythical person. But who said that we do not need myths and tales about programmers? Each of us must at least once in our life see or at least hear about a miracle programmer, from the program of which no team can be removed or who writes a thousand commands a day, or finds an error at the initial chance of one in a million, etc. look for landmarks and examples. It is from these positions that, apparently, the dispute about the notorious “prima donnas” in the teams of programmers should be resolved. To declare them undesirable is at least short-sightedness or envy of their exceptional qualities. The author was lucky to meet in his life several such divas from programming who, for all their individuality and even extravagance, made an invaluable contribution to the work of the group, especially in difficult situations. So a very wide range of individual programming abilities must be recognized and fully taken into account.

On the separation of the design and manufacture of software

There is ambivalence on this issue. Managers responsible for long-term projects, and many others are looking for ways to formalize the development stages and transfer the project from one hand to another.On the other hand, the case itself desperately resists such a division. Apparently, the correct solution of this question is impossible without taking into account the human factor and the aesthetic need, which prevents one from engaging in the realization of the ideas of others or not seeing the actualization of the idea. To give a technical project to other hands is the same thing as sending your children to a boarding school.

. , , , . , . 1970 . . , . , - , - , . , , , , .
, , , , ,— , .

- . , , 1000 , , , . , . ?

, , 1000 , . , . , -- , , , . , , , , .

, . , . , . -, , , 50 , 30-. 30 . , , , , .

[ ]



PS


image
Working record. Scheme of the form and mode of existence of matter, its universal attributes.

Pps


Task:
image



“The deeper we look into history, the better we will see the future.”
- Winston Churchill

Together with the company Edison we continue the spring marathon of publications.

I will try to get to the primary sources of IT-technologies, to understand how they thought and what concepts were in the minds of the pioneers, what they dreamed about, how they saw the world of the future. Why did you think “computer”, “network”, “hypertext”, “intelligence amplifiers”, “collective problem solving system”, what meaning did they put into these concepts, what tools they wanted to achieve a result.

I hope that these materials will serve as an inspiration for those who are wondering how to go “from Zero to Unit” (to create something that had never happened before). I would like IT and “programming” to stop being just “coding for the sake of dough”, and recall that they were meant as a lever to changemethods of warfare education, a method of joint activity, thinking and communication, as an attempt to solve world problems and respond to the challenges faced by humanity. Something like this.

0 March. Seymour Papert
March 1. Xerox Alto
March 2 "Call Jake." History of the NIC and RFC
March 3 Grace "Grandma COBOL" Hopper
March 4 Margaret Hamilton: "Guys, I'll send you to the moon"
March 5, Hedy Lamarr. And in the movie naked to star and torpedo the enemy pulnut
March 7 Gorgeous six: girls who had a thermonuclear blast counted
March 8 "Video games, I'm your father!"
March 9 Happy birthday, Jeff Raskin
March 14, Joseph "Lick" Liklider: network "and" Symbiosis of man and computer "
March 15Vanivar Bush: “As We May Think” (
March 16 ) Happy Birthday, Richard Stallman
March 21 Douglas Engelbart: “The Mother of All Demos”. Part 1
April 7 Robert Metcalf: EtherNet's dad, a great engineer and fig predictor (but answered for the words)

Source: https://habr.com/ru/post/281905/


All Articles