Труд и соперничество

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!

Programming methodologies, their objectives and their nature (EWD469).
prof.dr.Edsger W. Dijkstra
Burroughs Research Fellow
Plataanstraat 5
NUENEN – 4565
The Netherlands

 

Наверняка можно сказать одно: что бы стать хорошим программистом, необходимо выполнить огромный объём упражнений, а кроме того — соперничество. Упражнения позволят приобрести ловкость, а соперничество необходимо в том смысле, что при обучении студент должен бороться, познавая истинную тяжесть программирования, когда после четырёх часов напряжённейшей работы, выстрадав одну или две страницы кода, он увидит восемь строк решения, которое за пятнадцати минут сделал более грамотный программист. Жестоко, но без соперничества, студент застрянет на своём текущем уровне компетентности, если он не способен постигать всё сам, обретая свой собственный опыт. Люди, которые это могут делать, крайне редки — если один из наших студентов сможет это сделать, то скоро будет настоящим Мастером!

Два взгляда на программирование

Источник перевода: EWD540

В окружающем нас мире мы сталкиваемся с двумя коренным образом различными взглядами на программирование:

  • Точка зрения А: программирование в сущности очень просто.
  • Точка зрения В: программирование по сути очень сложно.

Дискуссию можно закрыть и на этом успокоиться, если сделать предположение, что одно и то же слово «программирование» в двух проекциях приобретает довольно различные значения. Однако, то какая точка зрения является преобладающей имеет огромное значение и оказывает влияние не только на учебные программы наших высших учебных заведений и кадровую политику организациях использующих компьютеры, но и даже на направление развития и исследования в самой науке о вычислениях. В связи с этим представляется целесообразным исследовать природу различий между этими двумя точками зрения и определить, если это возможно, исходные посылки, соответствующие каждой из них. Сделать это — цель настоящей статьи.
Читать далее «Два взгляда на программирование»