Как я читал лекцию в ИНЖЕКе

Предыстория

Решили мы помочь студентам ИНЖЕКа (aka ХНЭУ) понять чего от программиста хочет реальность. Сделать это было решено в виде код-ревью их курсовых проектов и написания разгромных соответствующих отзывов. Что и было сделано где-то в мае-июле. Я уже и думать про это забыл…

История

Но вот подходит ко мне Таня (наш главный по работе с ВУЗами) 26го сентября (в пятницу) и происходит у нас разговор:

Т: Привет! Помнишь мы в июне рецензировали курсовые проекты из Инжека
Я:
(чуя неладное) Было дело… 
Т:
…и договаривались, что прочитаем им пару лекций о том, что у них не так. Время лекции пришло. Я сегодня об этом говорила с Витьком. предположительно это будет в самом начале октября
Я:
(автоматически) я про лекцию ничего не помню. (сам лихорадочно пытаюсь вспомнить)
Т:
на лекциях мы обещали объяснить студентам, что не устраивает  нас в качестве выполнения курсовых проектов
Я:
(всё ещё надеюсь отмазаться) не помню 🙂
Т:
это будет сборный поток, от 20 до 40 человек
Я:
(до меня доходит, что я и правда ничего не помню) о госпади. ваще ничё не помню 
Т:
 будешь на 8 этаже, зайди – вспомним вместе
Я: ага. так и сколько у меня ещё времени?
Т:
та! ещё куча – до начала октября…
Я: ok. (ну, думаю, до начала октября-то я успею подготовиться)

Сижу себе работаю… вдруг чё-то пробивает мысль: а какое сегодня число-то? Глядь в угол экрана, а там 26 сентября, пятница. Давай звонить Тане:

Я: Тань, так а это… когда точно лекция? А то сёдня уже почти октябрь…
Т:
29-го в 15:20. Это понедельник.
Я: так сёдня ж 26-е…
Т: ну да. А я как сказала?

Вот так и живём 🙂 Лекцию мне, кстати, читать даже понравилось. Кому интересно, конспект можно почитать тут:
Programmers’ Mistakes for Dummies (файл)
Программистские ошибки для чайников (онлайн, с обсуждением)

P.S.: если выложу куда-то онлайн для обсуждения, маякну 🙂
P.P.S.: выложил на ДОУ. маякую 🙂

24 comments so far

  1. dude October 9, 2008 20:02

    Познавательно.
    Мотивационная часть (тактика & стратегия) хороша, но ИМХО большая часть студентов все равно воспримет ее равнодушно.

    Интересно откуда в инжеке программисты? Политех, хаи, универ – ясно. Но инжек?

  2. COTOHA October 9, 2008 20:43

    2 dude

    но ИМХО большая часть студентов все равно воспримет ее равнодушно

    ну так я в примечаниях и указал, что записывал тока завкафедрой. студенты как-то вяло реагировали.

    Интересно откуда в инжеке программисты? Политех, хаи, универ – ясно. Но инжек?

    а что инжек? я щас ваще не мыслю вуза без программистов 🙂 вот и там целых 2 кафедры: одна кафедра “информатики про эксель”, и одна “настоящая информатика”.

  3. Ira Sribna October 10, 2008 12:58

    если тебе понравилось, то может в тебе есть талант преподавателя? 🙂 Кстати, струденты задавали вопросы какие-нибудь?

  4. COTOHA October 10, 2008 13:29

    2 Ira Sribna

    Кстати, струденты задавали вопросы какие-нибудь?

    по теме – нет. что не удивительно. ты бы что-то спросила? 🙂

  5. Ira Sribna October 10, 2008 16:03

    если бы я сидела на месте студента, возможно спросила бы, что ты ожидаешь услышать на вопрос «Почему ты решил стать программистом / тестировщиком / аналитиком?» :)))

  6. COTOHA October 10, 2008 16:24

    эгм. ну я же сказал, что я хочу услышать: “хоть какую-нибудь причину” 🙂

  7. Ira Sribna October 10, 2008 16:33

    ну если скажут: “просто денег хочу” – тебя устроит? 🙂

  8. COTOHA October 10, 2008 17:22

    более чем. а разве это плохо? плохо если “мама сказала, а вообще я люблю на скрипке играть” 🙂

  9. Чрезмерно пафосная лекция получилась, по-крайней мере на тексте, как на меня 🙂

    Вышло по типу “все, кто пришли меня послушать – тупые недонеучи” 🙂 По-крайней мере после прочтения – у меня создалось такое мнение (многократное повторение по типу “делайте лабы и делайте хорошо их, делайте сами”).

    Скажу за себя: то, что преподавалось в университете по программированию лично мне – было редко интересно. Особенно, когда я не знал, что такое ООП (тут без пощупать вообще глупо), а нам вычитывали курс лекций по GoF’у. Естественно я тогда смотрел на это как баран на новые ворота и совершенно не хотел делать по этому лабы (в полном размере), просто потому, что нужно умом сначала до этого дойти, а не делать лишь бы было.

    Все это стало уже понятно потом, с течением времени, когда я осознал, что такое ООП и зачем оно мне нужно и зачем же это странное слово “паттерны” и с чем его едят.

    В целом что я хотел сказать: когда человек не осознает, что это и с чем его едят, а его потом еще и приходит такой человек на лекцию и “нагружает” тем, что надо делать так, как говорит мол препод и писать проги – это еще и раздражает. Просто потому, что большинство преподавателей – полные чайники в том, что рассказывают. Хотя есть приятные исключения.

    Другая проблема преподавателей – они не чувствуют аудиторию. Они читают то, что по программе, а не то, что требуется КОНКРЕТНО ЭТОЙ аудитории. У каждой аудитории свой уровень и нужно под него так или иначе подстраиваться.

    Кстати, думаю сам немного попытаться почитать лекции на тему веб-разработки в своем университете после диплома, хочется посмотреть, что из этого хорошего может получится (или не получится, все может быть).

  10. Ira Sribna October 13, 2008 10:00

    нет это не плохо, просто на собеседованиях мало кто скажет, что пришел просто денег заработать…

  11. COTOHA October 13, 2008 14:15

    2 Станислав Малкин
    в общем и целом мысль понятна. и – это уже какая-то система – я вижу, что лекция не правильно услышана. надо мне над собой работать. вот чуток по пунктам:

    Скажу за себя: то, что преподавалось в университете по программированию лично мне – было редко интересно. Особенно, когда я не знал, что такое ООП (тут без пощупать вообще глупо), а нам вычитывали курс лекций по GoF’у. Естественно я тогда смотрел на это как баран на новые ворота и совершенно не хотел делать по этому лабы (в полном размере), просто потому, что нужно умом сначала до этого дойти, а не делать лишь бы было.

    я – как видно, тщетно – пытался сказать, что как раз и неправильно делать лишь бы было. Что правильно РАЗОБРАТЬСЯ, потому что так САМОМУ интереснее. Вот тот же твой пример про паттерны и ООП – да, преподы не объяснили, но кто тебе мешал разобраться самому? никто. вернее только ты сам – твоя тактическая или стратегическая ошибка.

    Вышло по типу “все, кто пришли меня послушать – тупые недонеучи” 🙂 По-крайней мере после прочтения – у меня создалось такое мнение (многократное повторение по типу “делайте лабы и делайте хорошо их, делайте сами”).

    с этим не очень согласен 🙂 не все…

    а если серьёзно, то что именно вызывает такое ощущение? просто сама лекция – это факты. просто перечисление того, что я увидел в работах студентов. Естественно, что у тех, кто такие ошибки не совершает, у того лекция вызовет отторжение типа “что за бред? разве так кто-то делает?”.

    вот. я вижу, что твой ответ идёт в ключе “преподы рассказывают не интересно -> я делаю тяп-ляп”, и это стандартная позиция студента. А я пытался рассказать о том, что в ВУЗах не просто надоедают лекциями, а кагбе готовят к профессии. А это уже совсем другой коленкор – если ты выбрал айти, то разбирайся, а не отмазывайся тем, что тебе читали турбо-паскаль 7.0, а не .net 3.5.

    P.S.: у меня лабы были на 386х машинах под дос, что не мешало моим одногруппникам писать курсачи под Direct3D и сдавать их, потому что _им было интересно_.

  12. SiRex October 13, 2008 18:12

    у меня лабы были на 386х машинах под дос, что не мешало моим одногруппникам писать курсачи под Direct3D и сдавать их, потому что _им было интересно_.

    IMHO, сейчас совсем другие времена… Процент таких людей среди всех кто занят в IT сейчас ничтожно мал… Основная часть народу пришла в IT потому что это либо модно, либо они услышали что их друзья IT-шники много зарабатывают. Народу интересно в WOW играть, а не педалить под Direct3D :)))

  13. COTOHA October 13, 2008 21:24

    2 SiRex

    IMHO, сейчас совсем другие времена…

    ну про это я уже писал в http://cotoha.info/thoughts/it-inflation-2/. другие конечно.

    Процент таких людей среди всех кто занят в IT сейчас ничтожно мал…

    да-да. про что лекция и есть: “не важно почему пришёл – подумай, оно тебе надо или нет. Если надо – то шевелись в правильном направлении”

  14. Вот тот же твой пример про паттерны и ООП – да, преподы не объяснили, но кто тебе мешал разобраться самому? никто. вернее только ты сам – твоя тактическая или стратегическая ошибка.

    Ответ очень прост – я бы не въехал в это тогда, потому, что не было базы и не было примеров. Понять паттерны без обширной работы с кодом – это абсурд. Это приходит с годами, а не за неделю-две.

    Я не считаю, что это моя ошибка какого-либо рода. Всему свое время. Тогда даже если бы я этим и занялся – толку бы не было потому, что практики не было и взять ее неоткуда было (1-2 курс), а на одних лабораторках далеко не уедешь, потому, как применять паттерны там просто негде, а если даже и есть, то для того, чтобы понимать, что там их можно применять – нужно иметь наглядные примеры и опыт, как это должно выглядеть и собственно “для чего паттерн?”, чтение книжек в данном случае – слабый помощник, эти вещи (понимание) приходит с опытом (по-крайней мере у меня).

    Простейший пример – я написал много кода и понимаю, что есть места дублирования, естественно я понимаю, что так быть не должно и ищу выход. Тоже самое и с паттернами – писал я код, писал, а вдруг понял, что глупо делать везде копию объекта каждый раз – понял, что тут нужно что-то другое применить – опа, да, есть же такой паттерн – синглтон, взял и использовал. Это совершенно другой опыт, чем просто прочитать в книжке (или на лекции от препода услышать) что мол синглтон – это паттерн единичной копии объекта бла-бла-бла. Проблема в отсутствии наглядных примеров, о чем очень часто забывают в вузах, мол “сами дома изучите”. А дома такие вещи на коленке не делаются, и за неделю не делаются и за две. Тут нужно написать тысячи строк кода, чтобы осознать пригодность разных паттернов и дойти умом до того, зачем же они тебе.

    а если серьёзно, то что именно вызывает такое ощущение? просто сама лекция – это факты. просто перечисление того, что я увидел в работах студентов. Естественно, что у тех, кто такие ошибки не совершает, у того лекция вызовет отторжение типа “что за бред? разве так кто-то делает?”.

    Наверное – постоянное повторение о том, что делайте лабы? 🙂 Хотя большинство лаб – примитив и полная лажа. Да и многие преподы к ним относятся точно также – ради галочки. Поэтому, как минимум, когда мне пришли бы прочитать такую вот лекцию на курсе 1-2, мне бы было просто смешно, просто потому, что в вузах все это происходит в таком беспорядке, что те лабы – это курам на смех. Приходить на работу программистом и показывать свои лабы, как результат знаний? Ну это же глупо. Я понимаю, что сейчас такие сложились условия на рынке труда, что приходится забирать даже тех, кто просто пытался лабы делать и что-то в них писал. Но с точки зрения здравого ума – это же бред. И бред потому, что большинство тех лаб – курам на смех. Можно долго рассуждать со студентом, что мол в echo “Hello World” можно было применить кучу паттернов по типу http://mzz.ru/kelo.txt , только толку? Он всеравно не будет этого делать в реальной задаче (точно также, как и лаба – реальная задача, только она очень простая, чтобы применять на ней сложные вещи), просто потому, что в этом нет никакого смысла. Из пушки стрелять по воробьям…

    Может мне конечно не те лабы попадались..Но большинство – просто смехоподобие на веб-программирование.

  15. COTOHA October 14, 2008 12:27

    2 Станислав Малкин

    Ответ очень прост – я бы не въехал в это тогда, потому, что не было базы и не было примеров. Понять паттерны без обширной работы с кодом – это абсурд. Это приходит с годами, а не за неделю-две. Я не считаю, что это моя ошибка какого-либо рода. Всему свое время.

    про что я и говорю – пишите программы помимо лаб и курсовых 🙂 а зачем тогда тебе вообще был нужен 1й и 2й курс, если это было “ещё не время”?

    Наверное – постоянное повторение о том, что делайте лабы? 🙂

    пересмотрел текст 🙂 там нет постоянного повторения “делайте лабы” – просто видимо тебя цепляет это больше всего. я 1 раз сказал, что их надо делать, а второй раз сказал, что делать не для отмазки. думаю, за полтора часа реальной лекции 2 упоминания не должно было напрячь студентов сильно

  16. Каждый должен делать вещи тогда, когда пришел и готов к этому. Не находите?

  17. Михаил October 15, 2008 08:37

    Спасибо за статью 😉 Статья оч полезная и оч хорошо отражает действительность не только в инжеке.

    Реальный студент – это как раз зав. кафедры, а студенты , поголовно скорее всего, выйшли из аудитории и всё забыли, если вобще во что-то вслушивались 😉

  18. COTOHA October 15, 2008 10:25

    2 Михаил

    а студенты , поголовно скорее всего, выйшли из аудитории и всё забыли, если вобще во что-то вслушивались 😉

    может быть, и даже скорее всего. но, надеюсь, не поголовно 🙂 я думаю, что те, кто и так старается не делать ошибок, получили заряд уверенности в том, что они идут правильной дорогой. я думаю, что и это уже хорошо…

  19. Александр October 15, 2008 13:00

    Лично присутствовал на лекции. Очень понравилась!
    Спасибо автору!!!
    Отдельный респект Татьяне Тумар за помощь в организации этой лекции!

  20. Михаил October 15, 2008 14:04

    Это как в матем. последовательностях – конечное число элементов может “выпадать” из правила… Это тока гут, что у студента что-то осталось в голове.

    И данная статья рассказывает то, примерно из той области, что пытается донести С.Макконнелл в Совершенном Коде, как мне кажется, по крайней мере из того что я успел прочитать.

    Лично для себя извлек прилично полезного материала.
    Думаю, что данная статья может служить чем-то вроде краткой шпаргалки, чтобы не наколоть дров при реализации проекта.

    P.S.: Тема оч хорошая, м как говорится,- “Афтар, пишЫ исЧо” 😉

  21. COTOHA October 15, 2008 14:55

    2 Александр

    Отдельный респект Татьяне Тумар за помощь в организации этой лекции!

    передал 🙂

  22. Victor Ronin November 1, 2008 05:24

    Лекция отличная 🙂 Почитал, понравилось, да и сам бы где-то в таком же стиле ее и
    вел бы.

    Я вообще, считаю, что выбрана самая лучшая политика – живо, привязано к практике, а не к теории.

    Хотя, есть пожалуй одно “НО”. Если ИНЖЕК координальным образом не сменился с того времени, как я его помню, то похоже хорошая лекция могла попасть не в те уши.

    Единственное, что я бы ввел еще ввел категорию “ясельные” ошибки. Куча студентов обычно просто не понимает, что такое программирование и поэтому не могут даже лабораторные сделать. Ну и само собой они напрямую связаны с стратегическими ошибками (если они до 3 курса не понимаю, как писать код, то вероятнее всего они не туда пошли учиться).

    Ну и пожалуй часть о “тактике” может быть тяжеловесна для студентов. У них просто за плечами мало кода, чтобы оценить зачем нужны code convention, вынос бизнес логики и т.п. То есть, классно, если бы они знали зачем, но шансов, что они с этим разберутся до реальной работы – мало.

  23. […] p.s. Интересную статью о работе, Вы можете почитать у Юли. А также, Вам может быть интересным, каково директору по обучению персонала Сергею Мовчану было в роли лектора. […]

  24. […] Сергея Мовчана (СОТОНА) в одном из Харьковских вузов по поводу анализа […]

Blogroll