Сначала я хочу попросить прощения у комментаторов, пришедших ко мне на помощь после предыдущей записи. Я не осознавал, что риторический характер моих вопросов не очевиден. Честно говоря, в этой компании я работаю не первый год, и тут как-то знают, что я умею, а чего нет. Это к тому, чтобы вы правильно отнеслись к рассказу о том, как меня сегодня поймали на использовании служебных ресурсов в личных целях.
Я отправил на печать статью,
о которой рассказал ygam. Придя через некоторое время на кухню, где у нас стоят
принтеры, статьи я не нашел. А потом меня перехватил в коридоре
возбужденный начальник: "Слушай, мне такую интересную статью на стол
положили!" Я сказал, что это моя распечатка - очевидно, кто-то
по ошибке занес её ему в кабинет. Мы поговорили об этой статье.
Потом я её ещё пообсуждал с женой и друзьями. Так что тут ниже не
только мои мысли, но и их.
Один из авторов статьи десятилетиями преподавал программирование, писал учебники. И оба автора часто сталкивались с ситуацией, которую знают многие опытные менеджеры. А именно, что программисты очень резко делятся на хороших и плохих - и пропасть между ними огромна. При обучении это проявляется в том, что есть люди, которые никак не могут преодолеть компьютерную премудрость - а есть те, которым на лекциях просто скучно, потому что все так просто. И середины практически нет. Эта ситуация почти уникальна. Да, есть люди с абсолютным слухом и те, кому медведь на ухо наступил - но большинство все же можно научить играть на пианино "Мурку". В математике ситуация близка, хотя, как кажется, не так резко выражена. Такое впечатление, что есть некая таинственная "способность понимать компьютеры", которой одни изначально обладают, а другие - нет. Эта способность, по словам авторов, плохо коррелирует с IQ, оценками, математическими способностями - поэтому интересно понять, можно ли её (или её отсутствие) выявить заранее. И тут авторам помогла случайность.
Они - то ли по ошибке, то ли нарочно - дали тест на знание языка программирования (речь шла о Джаве, но это неважно) ДО того, как студенты познакомились с Джавой - или вообще каким-либо языком программирования. Студентам оставалось только гадать. Тест был закрытый (multiple choice), и каждый вариант ответа на самом деле предполагал некую "модель поведения компьютера" (присваивание слева направо или справа налево, порядок выполнения действий и т.п.). Так вот, были студенты, которые для всех вопросов предполагали одну и ту же модель поведения компьютера - у одних она была верна, у других нет. Были студенты, которые "меняли модель": в каждом вопросе они пытались найти "самое разумное" поведение. И были студенты, которые не смогли - или отказались - ответить.
Дальнейшие тесты и сравнение с оценками показали, что первая группа - предполагавшие "одинаковое поведение" - это как раз те, кому легко давалось программирование. Их одноклассники, пытавшиеся найти "разумное поведение" в каждой конкретной ситуации, наоборот, не справлялись с предметом. Причем переходы из группы в группу были крайне редки. Авторы объясняют это тем, что на самом деле главный секрет компьютеров в том, что они ведут себя НЕ разумно - а тупо следуют правилам. Эти правила сами по себе бессмысленны. И программистом может стать только человек, который осознает бессмысленность и смиряется с ней - чтобы затем использовать её. Если же человек пытается внести смысл, которого нет, - или отказывается решать бессмысленную задачу вообще, - то у него ничего не получится. Компьютеры умеют оперировать только с глокими куздрами. Поэтому отбор в программировании идет по умению мыслить на уровне синтаксиса, отвлекаясь от семантики.
Моя жена много лет учила детей математике. Ей это напомнило вот что. Есть классический силлогизм: "Все кошки - зеленые. Мурка - кошка. Следовательно, Мурка - зеленая". Так вот, существуют дети, для которых с очень раннего - дошкольного! - возраста это совершенно очевидно. А есть дети, которые никак не могут отвлечься от мысли, что на самом деле кошки не зеленые. Это знание им МЕШАЕТ, и силлогизм им не очевиден именно поэтому. Первых логике учить на самом деле не нужно. Вторых удается научить логике только с очень большим трудом. Возможно, именно этим группам соответствует деление на "программистов" и "непрограммистов".
Но если так, то способности к программированию должны коррелировать с оценками по математике - а авторы статьи такую корреляцию отрицают. Я не знаю, как это объяснить. Возможно, дело в том, что математику в Англии преподают недостаточно формально: как содержательную науку, а не как игру с доказательствами абстрактных утверждений. Интересно было бы исследовать ситуацию во Франции, где, если верить Арнольду, она преподается формальнее. Можно сделать ещё более смелое утверждение: математика сама по себе существенно более содержательна, чем иногда кажется со стороны - и этим математик отличается от программиста.
← Ctrl ← Alt
Ctrl → Alt →
← Ctrl ← Alt
Ctrl → Alt →