One thing is certain: learning how to program well requires a great amount of exercise and confrontation. Exercise in order to get the agility, confrontation in the sense that the learning student must struggle in order to discover how hard programming is: and after having constructed a one- or two-page program in four hours of hard work, show him an eight-line solution that a more competent programmer wrote down within fifteen minutes. It is cruel, but without that confrontation the student will remain stuck at his current level of competence, unless he can learn, all by himself, from his own experience. But people who can do that are extremely rare: if one of our students can do that, he will soon be our Master!
prof.dr.Edsger W. Dijkstra
Burroughs Research Fellow
Plataanstraat 5
NUENEN – 4565
The Netherlands
Наверняка можно сказать одно: что бы стать хорошим программистом, необходимо выполнить огромный объём упражнений, а кроме того — соперничество. Упражнения позволят приобрести ловкость, а соперничество необходимо в том смысле, что при обучении студент должен бороться, познавая истинную тяжесть программирования, когда после четырёх часов напряжённейшей работы, выстрадав одну или две страницы кода, он увидит восемь строк решения, которое за пятнадцати минут сделал более грамотный программист. Жестоко, но без соперничества, студент застрянет на своём текущем уровне компетентности, если он не способен постигать всё сам, обретая свой собственный опыт. Люди, которые это могут делать, крайне редки — если один из наших студентов сможет это сделать, то скоро будет настоящим Мастером!