Сознайтесь, кодеры!

В продолжение записи о том, чем отличается «любительский» подход к программированию от «профессионального». Я в комментариях утверждаю, что причина доминирования «любителей» в том, что большинство программистов — самоучки, и им просто незнакомы никакие подходы к разработке кроме простейшего — «как получится». В чуть облагороженном виде это «как получится» превращается в eXtreme Programming или какой-нибудь Getting Real. Ни о формализации процесса разработки ПО, ни о том, что комментарии в коде — это не «достаточная документация» самоучка представления не имеет. В самом «запущенном» случае «варящийся в собственном соку» программист может элементарно не знать классических алгоритмов или не понимать область видимости переменных в рекурсивно вызываемой функции.

Говорят, что даже на Физтехе, на Факультете Управления и Прикладной Математики — цитата:

у студентов-компьютерщиков … образовывалось в мозгу два островка понимания мира — физика и выученное самостоятельно программирование на Си. Между этими островками находился абсолютный вакуум, в котором иногда пролетали астероиды самостоятельно выученного ассемблера, популярных статей про векторые суперкомпьютеры в русском переводе журнала «Electronics» и подобные случайные вещи.

Я писал печальные вещи о том, как поставлено преподавание «околокомпьютерного» цикла (который входит в программу по специальности 010100 Математика, так что не надо говорить о его «непрофильности») на мехмате МГУ. В разнообразных отзывах на этот текст (довольно непредсказуемо для меня расползшийся по интернету) писали, что в Бауманке все немного лучше («драли за код, за гую, за непредусматривание ошибочных ситуаций»). Вроде бы все очень и очень неплохо на ВМК — настолько неплохо, что его выпускники идут работать в любые «околокомпьютерные» области, но только не программистами.

Так или иначе, многие «практикующие» программисты заканчивали отнюдь не ВМК или профильные факультеты МВТУ. А выпускники остальных ВУЗов нашей необъятной Родины, пытающиеся работать «программистами», скорее всего, никогда не сталкивались с тем, чтобы их «драли» за какие-то недоделки в программах в ходе обучения. Почему я делаю акцент на слове «драли»? Вовсе не из-за каких-то околофрейдистских комплексов, а из-за простого принципа — «за одного битого двух небитых дают». Программиста во время обучения не бьют — то есть не обращают внимания на ошибки, и свои шишки он набьет уже потом, в процессе работы. Просто так устроена сложившаяся система обучения.

А вот как учат будущих инженеров (из комментариев к ролику на Youtube — это БГТУ, зачет по курсу «Детали машин»):

Признавайтесь, программисты, докапывался ли кто-то до «уродств» в тех программах, которые вы писали в ВУЗе?

PS Меня макнули мордочкой в собственное дерьмо один (!) раз за все 2 (в школе) + 4 (в универе) года, и случилось это на втором курсе, когда В. В. Борисенко заболел, и его заменял А. И. Немытов. Я сдавал одну из задач по теме «Текстовый редактор«, преподаватель быстренько проверил, как у меня обрабатываются «граничные условия», продемонстрировал, что в этих случаях моя программа ведет себя некорректно, и объяснил, в чем суть ошибки. Больше я подобных случаев не помню.

Сознайтесь, кодеры!: 5 комментариев

  1. Могу сказать за техническую часть, за красоту решений не били, даже не часто интересовались почему именно такая конструкция используется. Проверяли по формальным критериям соответствие требованиям и правильность расчетов и все. Было даже обидно, думаешь, выбираешь пооптимальней решение, а им пофиг.

  2. Видео жжот. Сразу Порошина вспомнил. Лектор гениальный, но сдавать ему было пиздец. Похоже все ДПМщики такие :)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *