The ball hid in the haircut grass .
Second pauses on the field and on the air ...
They play ( bastards ) according to the "double - ve " system -
And we do not care - we have "four - two - four . "
Vladimir Vysotsky . The song of the right insider
Programming teaching is an almost hopeless matter ,
And his study is an excessive work .
Charles Weserell . Studies for programmers
Upon the end of the ten -year period (the subconscious man treacherously tells the “term”) of teaching in various universities of disciplines related to computer sciences, I would like to record some thoughts.
Of course, deep down, each author hopes that his thoughts will definitely be useful to someone, but in fact I do not set any goals before this text. I would like to dream - reality is too sad to criticize it or try to improve it.

It is not entirely clear why a student of computer sciences to enter a university. Today you can take online courses of the best universities, make a program, solve problems in online systems, take part in conferences and OpenSource Initiatives, participate in real projects and gradually develop. You can just put a little and enter the internship in a good company where there is a training center.
The university, if he wants to be preserved, can provide motivation for the student’s admission. This can be a place in a comfortable hostel next to the educational building (even if the student lives in the same city), good free meals (namely three meals a day, not money for food), a scholarship, a highlighted permanent workplace, good teachers, high -quality professional communication, the opportunity to travel around the world.
Naturally, there will be a competition in such a good place, and those who mimic training can be deducted.
It is useful for the student to install the operating system himself and equip his workplace.
The student’s working day can be built like this: in the morning a small (about an hour) warm -up in groups - logical tasks without a computer, like those offered in interviews, or like simple tasks from Arnold’s collection - to wake up and disperse the brain. It is conducted by a teacher in the form of a game (who is faster), but not too serious or ambitious. You can monitor the development of each student - does he have progress in solving problems. Over time, the student can be freed from the warm -up or attracted to it as an instructor for junior students.
Then you can solve (individually or in pairs) small algorithmic problems on the site similar to acm.timus.ru . A clear and achievable goal can be set: to pass 100-200 tasks per year or semester. The teacher monitors progress every day, for the first tasks will go away for several days; You can reach a speed of several simple tasks per day. It is not about the education of the Olympic programming champions, the goal is to fill your hand in writing simple programs, to awaken professional interest.
The last activity during the day is two hours of English classes in the evening. In the first year, it is necessary to achieve free reading of documentation and understanding of oral speech (lectures), improve writing skills and business communication.
All. There may not be any other forms of classes during the first semester or even a year. You can conduct simple lectures (a maximum of one lecture per week) as necessary for the group (no “flows”): the beginning of the programming language (C ++) and the standard library, how to use the programming environment, the main commands of the operating system.
Working silence can be observed in the computer class, there may be a separate room with tea for discussions and discussions - like an open workspace.
After a year of such learning, it will be clear whether the choice of the programmer’s profession corresponds to the structure of the personality - whether the beginning of algorithmic and analytical thinking has appeared, whether accuracy in the design of programs, attentiveness to details, sufficient patience and perseverance, the desire to thoroughly sort out the logical structure, whether it is creative to solve problems, whether there is satisfaction from this labor.
After the first stage, the student can take part in the courses: programming, databases, design, operating systems, project management, machine learning, compilers, algorithms, probability theory, etc. All courses are selected at will and can assume quite serious involvement-annual or in the form of intensity-when the course is stated quickly in the two-two, with work every day mainly on it. You can alternate both forms: some courses require a lot to accommodate in the head, some are intensified.
Summer practice can be implemented in the form of participation in events like Google Summer of Code. If a student himself cannot choose a place for participation in advance, teachers can help him in this. The purpose of this activity is immersion in the professional environment and gaining independence.
In the computer class, it is useful to hang large color portraits of the luminaries - authors of programming languages, operating systems, algorithms: von Neumann, Turing, Knut, Richie, Thomson, Straurupa, Stalman, Wall, Gosling, Torvalds, Matsumoto. The great people look from the walls directly at students sitting at computers - this changes the atmosphere in the classroom.
As for the teachers, there are always people who are always ready to sacrifice their own interesting career for the sake of growth and the success of other people, people who can arouse interest in their subject, know it themselves and are constantly practiced. It is enough to provide positive incentives, to establish (non -war) competition and feedback.
Ideally, if the teachers of such a university were not united in the usual departments, but into teams that develop real projects, start startups, give professional consultations, write books and perform at conferences.
The university could take on the functions of an information, training and consulting center: hold conferences, hackathons, demonstrations, vacancies fair, making life easier for companies and professional communities.
The university may not have a huge building, but instead there can be an iceberry type, with a large invisible part: far from temptations, students work and creatively grow in real classes, and employees and teachers move around the world and live in various parts of the planet.
You can not forget about the material side of the matter. The rooms can be light and warm, the air can be sufficiently moist, saturated with oxygen and cleared of exhaust gases. The design of the premises may not remind of the military registration and enlistment office. Food in the dining room can be edible and affordable (both in price or benefit and quantity at any time of the day). The case can be safe, but without paranoia: no passes for the UNS and removal of laptops.
An impressive reader can finish reading on this. Next, I will write what is not accepted about, because we are always higher than that. In the educational building, toilets should be equipped in sufficient quantities. The presence of showers for students and employees who come on bicycles is ideal. The toilets should not have Niagara waterfalls, but there should be seats on the toilets and toilet paper.
P. S. I deliberately do not write about insanity / bureaucracy / salary . You can , I am mistaken , but judging by the Face Buka , the outcome of the teachers of the young - middle age occurs directly .