Студенты и преподаватели – люди совсем не похожие друг на друга. Одним хочется насладиться жизнью, а вторые постоянно этому мешают. Они заставляют каждые полгода вновь садиться, перечитывать лекции, не спать по несколько дней и вкалывать кофе внутривенно.

Конечно люди разные, тут скорее говорится о стереотипах. Когда я был студентом никогда не думал, что стану преподавать, да и не думал, что пойду учиться в аспирантуру и вообще много чего не предполагал. Но и сидеть на рабочем месте по 8 часов в день, а затем приходить домой и продавливать диван – слишком скучно. Так ведь вся жизнь пройдет за просмотром очередного сезона «Игры престолов» или партией в «дотку».

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

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

Программирование – это не Мат. Анализ. (Кэп где-то рядом). Математические науки – сфера куда более зрелая. Большинство законов уже известно. Открытых вопросов значительно меньше чем в программировании. Программирование — это очень динамичная сфера, здесь нет места привычкам. Стоит слишком прикипеть к чему-либо, и ты просто выпадешь из реальности.

Мне повезло, на 2 курсе, когда нам преподавали Объектно-ориентированное программирование нашу группу закрепили за молодым преподавателем. Он был активен, принципиален, перфекционист и достаточно грамотен в вопросах написания кода. Вместо того чтобы просто принимать лабы которые работают, он заставлял писать код, за который и сейчас не стыдно.

Если бы не он, все мы только на работе бы узнали о том, что такое «магические константы», почему в return надо возвращать переменную (а не заталкивать туда унарный оператор), почему нельзя в while писать здоровенные конструкции, как правильно работать с UI в Java, почему в C++ все должно передаваться по константному указателю. И вообще, что большинство примеров в интернете – редкостный быдлокод, который нельзя использовать в продакшене. И это нормально, ибо на то он и пример, чтобы максимально наглядно без усложнений показать работу кода.

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

Это был не примитивный пересказ учебника, не безынициативное принятие лабораторных, это было прям то что нужно – Интересно, сложно, ты понимал, как сильно ты прокачиваешься. Ты чувствовал, что как на стероидах начинаешь набирать массу.

И вот став преподавателем, я решил перенять лучшее от всех и дополнить своей «фишкой».

Проба пера


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

Вот список, который я примерно себе составил:

  1. Git
  2. Jira\Redmine\Trello
  3. Code review
  4. Dependency Injection
  5. Unit-тестирование
  6. CI\CD
  7. Работа с БД (нас учили писать запросы, но не использовать их в Java)
  8. Миграций БД
  9. ORM

Но это то что лежит на поверхности, а если копнуть глубже, то список расширится:

  1. Docker
  2. K8S
  3. Микро-сервисная архитектура

Что-то из этого рассказывали, а что-то и нет. Да, нам говорили, как устроен Post-запрос. На каком-то предмете рассказывали про Json. А на Java мы даже работали с сокетами. Но все было в отрыве от реальных задач. И рядовой студент привычным ему методом зубрил эти вещи, сдавал экзамен, а потом забывал, а потом снова вспоминал по кусочкам придя на работу.

Можно говорить, что студенты сами виноваты. Но тогда можно говорить, что программисты сами виноваты в багах. И вообще бить их кнутом и пусть сразу делают по-нормальному.

Но нет, это реальность, она не идеальна и потому нанимают тестировщиков, заставляют писать Unit-тесты. Если вещь не искоренить, к ней остается только приспособиться.

Еще один важный момент – энтузиазм преподавателя. Многие уже преподают по инерции. Они привыкли: из года в год происходит одно и то же. Но студенты это чувствуют. И потому без того слабая мотивация падает ниже 0 отметки. По мере приближения сессии эта планка начинает расти. Жаль, что не все студенты вовремя осознают всю глубину своего положения.

Итого есть 2 глобальные проблемы:

  1. Проблема мотивации
  2. Неактуальность\разрозненность предоставляемых знаний

Будем решать! Не все удалось в той мере, как и планировалось, но в конечном счете получилось.

Придя на первое занятие, я заставил всех зарегистрироваться на bitbucket. На тот момент это был первый курс. Предмет назывался “Информатика”. Лектор сам говорил о том, что мы можем рассказывать про все, что перекликается с этим словом.

Предмет предполагал выполнение небольших лабораторных на *nix shell. Студенты долго плевались над тем как пользоваться гитом. Особенно консольным гитом. Но как мне показалось к концу семестра загорелись.

Мы создали чатик в ВК, туда я сбрасывал статьи по тематике, отвечал на вопросы. И это реально удобно. Не надо повторять по 100500 раз. А если человек не удосужился прочитать просто переотправляешь ему сообщение.

На предмете я решил немного рассказать про CI\CD, Unit-тестирование, Code review. Было сложно, приходилось по 1000 раз задавать один вопрос – вы это поняли? Приходилось руководствоваться взглядами. Ибо ответ всегда был «Да». А вот в глазах читалось полное отсутствие понимания.

Пары, на которых я садился за комп и наглядно что-то показывал, заходили куда лучше. Вроде бы написал небольшую команду на PowerShell, которая закрывает Chrome. Мелочь, а для первокурсника выглядит как магия. В такие моменты ребятам становилось интересно.

Еще одно условие лектора – необходимо было выступить с презентациями. Растягивать это на весь семестр с кучей записей о том, кто сдал, а кто нет, мне лично не хотелось.

От меня последовало предложение сделать сдачу презентаций централизованной. Выбираем время, когда всем удобно, бронируем кабинет на всю субботу\пятницу, с меня пицца\тортики\чай\ кофе, с ребят презентации. Удивительно, но женщина с которой я договаривался о брони кабинета была не против. Такой формат ребятам особо зашел. Потратить раз в полгода 2-3 тысячи не великие деньги, а ребята запомнили навсегда.

Набиваем шишки


После окончания первого курса от меня последовало предложение для ребят попробовать само организоваться и написать какую-нибудь игрушку. И тут ребятам тоже эта идея зашла. А вот реализация, к сожалению, нет. Для реализации задуманного был выбран движок «Unreal Engine». Аргумент простой – он использует синтаксис очень близкий к C++, а поскольку ребята должны были изучать его в следующем семестре, то если уж не напишут чего-нибудь стоящего, то по крайней мере это поможет им в следующем семестре.

Я предложил устроить небольшие лекции по С++ в онлайн формате, а затем приступить к реализации. Проблема в том, что сам я разрабатываю на .Net и сильно подзабыл С++. Пришлось вспоминать, на это ушло время. Скажу честно, изучить Unreal тоже не хватало времени. А ведь это лето, многие ребята, которые откликнулись, сами постепенно начали сливаться. Но и меня затянула рутина: ремонт в загородном доме у родителей, желание насладится летом, смена компании тоже совпала с этим периодом, отпуск. В общем получилось так, что всю свою энергию я тратил на другие не менее важные дела. В итоге получилось несколько скудных лекций, пара-тройка строк мертво лежащего кода, в который и палочкой уже тыкать не захочешь.

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

И все-таки информатика — это не совсем тот предмет, который я бы хотел вести. Позиция лектора и деканата очень лояльная, хоть бы студент чего-нибудь поделал, на пары походил. В целом это правильно, предметы не все одинаково важны. И важность зависит от специальности. Странно было бы считать, что культура речи столь же важна для программистов как Мат. Анализ или ООП. Или заставлять студентов гуманитариев сутками сдавать лабы по физике. Но мне хотелось более ответственной роли.

Набираем обороты


Итак, начались занятия по ООП. Как и в случае с информатикой, студенты регистрировались на Bitbucket. Но была еще парочка нововведений.

Теперь ребята создавали Pull-request’ы и получали в ответ комментарии по коду. И да им пришлось 2 месяца сдавать первую лабу, пока она не стала удовлетворять минимальным требованиям к оформлению кода

Мы завели Trello, под каждую задачу, своя борда (их было 5), название задачи – ФИО студента. В итоге получилось наглядно, и теперь ребята имеют представление о трекере задач, и канбан досках.

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

В начале пары – небольшой тест по предыдущим темам. Оценки я не ставил. Это необходимо для мотивации. Ведь если студент спишет, велика вероятность что он вспомнить, поймет, и отложит в голове это. Тут мне помогал тот факт, что сам не так давно был на их месте и помню, как это все работает. В общем 5-ти минутки дело хорошее, и для меня это скорее мотивация нежели способ контроля.

В какой-то момент мои знания стали заканчиваться, а рассказывать что-то необходимо — было чувство что еще много всего недосказано.

Окей Google, вопросы для собеседования на С++. Выбираем список для Junior. Читаем вопрос-ответы. Вуаля, прокачались сами, прокачали студентов.

Из-за работы, некоторое число пар было пропущено. Восстанавливать их было необходимо, ибо и так затянулись сдачи. На помощь пришел все тот же прием с пиццей. Договорились о том, что выберем место и время засядем, закажем еду, будем прогать весь день тем самым восстановим пропуски, а студенты в теории должны были получить по +1 к сданным лабам. Я помогал, отвечал на вопросы.

В итоге получилось не совсем так, весь день выделить стало проблематично, взяли 2 по 0.5. Тоже неплохо, правда я ожидал, что драйва будет больше. Но тем не менее, оно было и было неплохо для 1-2 раза. Ведь не у всех первые разы получается хорошо, правда? Ок, еще один маленький опыт.

Попутно заставил ребят за +1 бал разобраться с Dependency Injection в C++. Надо сказать, некоторые разобрались. Вообще студенты молодцы. Двое даже сделали очень крутые игрушки с GUI интерфейсом и неплохой архитектурой. И один даже разобрался с Qt. В конечном счете удалось дожать всех студентов и заставить их сдать все что нужно для допуска к экзаменам. Статистика получилась неплохая.

Начался новый семестр и начался он с пары в формате митапа. Первая задача от лектора была для затравки. Примитивный парсер файла и вывод в формате CSV.

Пришли, включили проектор, вместе на коленке за 1.5 часа накидали решение, в котором осталось еще чего подкрутить, но в целом каркас был готов. По-моему, студенты должны видеть, как оно работает, как примерно надо рассуждать и т.д. Формат митапа это то что надо. Именно поэтому студенты первокурсники с таким интересом наблюдали как закрывается браузер после очередной команды в консольке. Это наглядно и это интересно. Как по мне, такой формат стоит развивать.

Подведем итоги


Это исключительно мое видение, оно может быть не верным, но оно понравилось студентам:

  1. Применяем Git и заставляем работать с ветками, Pull-реквестами и т.д.
  2. Создаем Trello и отслеживаем задачи там. Приучаем студентов двигать задачу в CR, иначе ее не будут смотреть.
  3. Проводим 5-ти минутки, они мотивируют студентов вспоминать, то чего не знали. Думать не всем приятно, а для некоторых даже больно, но лучше приучать к этому в течении семестра.
  4. Вопросы для подготовки == вопросы для собеседования на Junior позицию
  5. Заставляем разбираться с Dependency Injection, Unit-тестами и прочими реалиями современной разработки
  6. Проводим митапы на парах. Пусть студенты повторяют за семинаристом, прежде чем нарисовать шедевр, художник должен нарисовать то, что другие рисовали сотни раз.
  7. Устраиваем мини хакатоны, покупаем немного пиццы/соков и приучаем студентов к прекрасному
  8. В общем стараемся делать все как в жизни.

Примерно так, я себе представляю обучение разработке. А как вы думаете? Всегда открыт для новых идей, давайте сделаем это еще лучше!

Комментарии (23)


  1. Exchan-ge
    23.02.2019 23:25

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


    Это вы про преподавателей или студентов? )

    Пара вопросов:
    первый — требуют ли от вас, как преподавателя, регулярной публикации статей с в журналах (с отслеживанием научной цитируемости публикаций), регулярного же написания методичек, участия в общественных мероприятиях?
    Знакомо ли вам понятие «лицензирование»?

    Второй — как вы поступаете со студентами, пропустившими по неуважительной причине достаточно большое количество пар или просто не выполнивших положенных по программе заданий?

    с меня пицца\тортики\чай\ кофе, с ребят презентации


    Другие преподаватели не косятся на вас за такую практику?


    1. TemaTre Автор
      25.02.2019 04:55

      Как с преподавателя не требуют. Как с аспиранта — 2 научных статьи в ВАК журналах в год и выступление на конференциях.

      Со студентами не ходившими на пары — недопуск к экзамену. Потом их судьба решается на комиссии. Тут опять же все честно, я даю возможность сдавать вплоть до последнего. Нет — значит не хочет сдавать. Если «кнут» убрать совсем то студенты слишком расслабятся.

      По поводу восых взглядов — даже не интересовался. У меня свои цели, мне просто интересно. Главное результат удовлетворяет.


      1. Exchan-ge
        26.02.2019 03:52

        Как с преподавателя не требуют


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


  1. Dywar
    23.02.2019 23:51
    +1

    По теме в целом норм, даже хорошо. Есть свет в обучении, хорошо что приходят свежие идеи которые похожи на реальность.

    Мое, накипело:
    Хотелось чтобы по окончании школы/универа человек имел представление о:
    1) Win/Lin/Mac.
    2) Сборке/чистке ПК, ноут.
    3) Установка/переустановка ОС.
    4) ПО, как и куда оно устанавливается. Что такое ОЗУ/ПЗУ, почему мало или много места, как это исправить.
    5) Вредоносное ПО, базовые техники защиты. Отличный бесплатный курс — www.intuit.ru/studies/courses/1042/154/info (есть реклама, но как красиво все написано, я его прошел лет 6 назад, но до сих помню как один из лучших по этой теме, все по полочкам. Сам факт что вспомнил о нем).

    Одним словом — администрирование. На все это понадобится часов 50-70, это не подготовка к работе, а понимание что это вообще такое. Да, половина забудет это через неделю, оставшаяся через месяц, но это хоты бы было.

    Биты и байты это здорово, но надо уметь для начала браузер устанавливать, толку больше.


    1. svk28
      24.02.2019 10:56

      Вот да, плюс один, что называется. Надысь на совещании бился грудью за то, чтобы менеджеры по продаже софта и ит услуг разбирались в том, что они продают, хотябы базовые понятия и функциональность. Но понимания не встретил. «Мыж не программисты» (


  1. Igor_Shumilov
    23.02.2019 23:51

    Преподавание это не единственная Ваша работа?

    На мой взгляд очень большим недостатком «классических» преподавателей является отсутствие реального опыта в разработке. Трудно рассказывать о плохой архитектуре, если сам в ней не копался. А ещё труднее рассказывать о хорошей, не зная всю её практическую силу.
    Мне кажется, что донести всю глубину таких терминов как «самодокументирующийся код», «code style», «оптимизация», «рефакторинг» и массу других можно только лично пройдя сквозь них.


    1. TemaTre Автор
      25.02.2019 05:08

      Конечно нет, иначе бы я сам вряд ли знал все то о чем рассказывал. Уже более 5 лет пишу на C#. Хех, а преподаю C++ и Java (для того чтобы тянуть студентов вполне достаточно). Зато в курсе всех нововведений в мире ООП.


  1. kinall
    24.02.2019 10:09

    Я довольно далёк от программирования, поэтому не могу в полной мере оценить конкретные ваши действия, но по роду деятельности общаюсь с преподавателями, так что за общий ваш настрой – право слово, жму руку! Старайтесь не общаться с мэтрами, они могут вас заразить своей «бронзовостью»=)


  1. AlexLeonov
    24.02.2019 12:23
    +4

    Ну раз уж так встал вопрос, «каким вы видите образование», я бы вообще не с того конца заходил.

    Я вижу образование для программистов не высшим, а средним специальным. Нужно разделить программирование, оставив его для уровня крепкого техникума и computer science, которую следует преподавать в вузах.

    Обоснование — нужен быстрый выход на практику, вместо 6 лет теории, которую всё равно студент забывает сразу после сдачи экзаменов.

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

    Будь у меня денег в кармане порядка на два больше, с удовольствием бы приобрел небольшой провинциальный (но не очень далекий от Москвы) техникум (ради здания и лицензии) и перепрофилировал под профессиональное обучение программистов. Эх, мечты, мечты…


    1. kinall
      24.02.2019 14:53
      +3

      Будь у меня денег в кармане порядка на два больше

      Так, может, составить бизнес-план, поискать инвесторов, гранты там, всё такое?


      1. AlexLeonov
        24.02.2019 19:52

        Другим пока занят, знаете ли. То, что я рассказал — это из разряда «I have a dream».
        Если найдется хотя бы пара-тройка единомышленников, думаю мы осилим и бизнес-план и инвестиции найдем. Но всему свое время.
        Но вы правы, конечно, пора уже что-то начинать делать…


        1. kinall
          24.02.2019 22:05
          +1

          Так опишите вашу идею здесь, в виде статьи на Хабре. Уж где искать единомышленников, как не здесь)


  1. kulverstukas
    24.02.2019 15:27
    +1

    Хочу сказать автору большое спасибо за искреннее описание опыта: я сам преподавал и студентам ИТ-специальностей разных уровней и тем, кто к ИТ имеет опосредованное отношение, но активно интересуется и пользуется инструментами (ака социологи и антропологи). И ваш подход — отличное объединение знаний и практики. И не «подготовка к реальности», а модель этой реальной жизни и деятельности.
    Еще раз и отдельно выражаю «респект» за реалистичный подход: выпускников таких преподавателей я буду рад видеть своими коллегами!


  1. wilderwind
    24.02.2019 18:11
    +2

    Самое главное, что необходимо учитывать (на мой дилетантский взгляд с дивана) — это тот факт, что в IT всё крайне быстро появляется/устаревает. За классические университетские 5 лет, например, может появиться пара новых языков программирования, а Android и iOS раза 3-4 сменят версии. Как в том анекдоте, когда на собеседовании просят стаж программирования от 3 лет на языке, которому ещё только год исполнился.
    Нужно не столько давать знания, сколько прививать навык непрерывного самообучения. Как только ты расслабился и перестал искать новое, совершенствоваться — в тот же момент твои знания начали отставать от прогресса.


    1. kinall
      24.02.2019 22:08

      На самом деле это не только в ИТ, просто в ИТ это лучше видно. У меня специальность машиностроительная, но и нам говорили: «учитесь учиться». Так что это у всех так)


  1. lavagod
    25.02.2019 05:19

    Как преподаватель ИТ с 20-летним стажем отвечу преподавателю с 2-летним стажем: «да, вы правы, но вы рассчитываете на студентов, которые хотят учиться, а современные студенты этого не хотят». Это печально, но это факт.

    Помните в фильме «Никита» Люка Бессона был момент, когда Никиту учили на профессионального убийцу и на занятиях по карате она вырубала преподавателя, на уроках стрельбы пуляла 10 из 10, а на занятиях по компьютерам она засовывала в рот бритву и на все вопросы преподавателя говорила «гыыы». Вот и наши студенты в 90% случаях похожи на эту самую Никиту:)))

    Ваши предложения прекрасны, но они расчитаны на сформировавшуюся личность, которая четко знает чему хочет научится и готова работать. А наша молодежь сейчас это питекантропы, которые до 20-22 лет бездельничают и после ВУЗа идут работать в «Магнит» или бизнес. И навыки программирования им до лампочки. Человек сейчас умнеет к 30 годам, когда голова покрывается набитыми шишками и, если человек все же работает по специальности, то он дорастает до ваших требований и способов преподавания. (И учиться за деньги на курсах.)

    Сейчас же:
    1) если вы выкладываете информацию вконтакте, то ее скачают и не будут читать;
    2) если вы просите завести аккаунт и складировать туда проекты, то их будут красть у отличников и заливать туда не читая;
    3) если вы даете информацию в виде презентаций, то их будут фотографировать на телефон и не читать никогда, даже в ночь перед экзаменом.

    Меня учила опытная преподавательница, которая говорила про студентов так: «не надо с ними разговаривать, не надо рассказывать им истории и искать новые методы обучения, их надо заставлять писать, спрашивать и ставить двойки». И она, к сожалению, права.

    Я ни в коем случае не критикую ваш метод. Если ваши студенты выполняют задания и результаты хороши — ради бога. Но в общем случае, когда работаешь в потоке 3-4 группы по 25-30 человек, ваши предложения неэффективны. В одной группе на 15-20 человек — может быть…

    И, полагаю, вы еще не сталкивались с такими вещами как лицензирование и аккредитация, когда один курс надо написать для 3(трех!!!) ФГОСов (версия 2, 3 и 3.5), а для каждого ФГОСа еще приложить 5(пять!!!) вариантов (очка, заочка, очка/заочка, ускоренный, для инвалидов и проч.) Не знаю как у вас, у меня бывало в год 12(!) разных курсов. В этом случае желание переписывать каждый год рабочую программу под «изменяющиеся реалии» уходит сразу:)))


    1. TemaTre Автор
      25.02.2019 05:31

      Мне повезло, я преподаю на профильном факультете. Который так и называется — Факультет Информационных Технологий. ВУЗ не из середничков. Проходной был высокий. Студенты грамотные. И да, группа не превышает 15 человек. Конечно речь в статье про преподавание для студентов соответствующего профиля, иначе вообще нет смысла говорить про все это. Проще рассказать как винду установить.

      Видимо поэтому эти методы эффективны.

      По поводу 2-ек. У факультета схема простая: не сдал с 3-го раза — отчислен. Как правило все те о ком Вы рассказываете, на первом же курсе отчисляются. Остаются «Грамотные и хитрые» или просто «Очень грамотные» студенты. С такими работать приятно.

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

      Есть так же и средства автоматического поиска плагиата, но в условиях 1-ой группы пока сам справляюсь.

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

      Но я скорее говорю о том как я вижу сам процесс. А про бюрократические моменты это целая отдельная тема.


    1. Neikist
      25.02.2019 07:56

      рассчитываете на студентов, которые хотят учиться, а современные студенты этого не хотят

      Ну вот неправда же((
      их надо заставлять писать

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


      1. GreedyIvan
        25.02.2019 10:24

        Подпишусь под записыванием за преподом.


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


    1. nikbond
      25.02.2019 20:01
      +1

      Проблема айти-образования именно в таких «Преподавателях ИТ с 20-летним стажем», которые убеждены что «не надо с ними разговаривать, не надо рассказывать им истории и искать новые методы обучения, их надо заставлять». Раздутое самомнение(20 лет опыта!), мышление стереотипами и шаблонами(студенты- питекантропы), отсутствие реальных педагогических способностей, и, как показывает практика, еще и отсутствие актуальных, качественных знаний в предметной области кроме как бумагомарательства(лицензирование, аккредитация!) и отсутствие коммерческого опыта.
      На пушечный выстрел таких нельзя подпускать к желающим чему-то обучится, потому что такие как автор поста несут доброе и светлое, могут заинтересовать незаинтересованного и зажечь свет в чьих-то глазах, а преподаватели с 20-летним опытом несут лишь разруху, уныние, смерть и погибель.

      Естественно, что с таким подходом единственным способом коммуникации с преподавателем у студентов будет игнорирование, списывание, пассивная агрессия и концентрация на более полезных вещах самостоятельно.

      И да, если некто не желает учится — это сугубо его дело. Хочет пинать балду и идти в "«Магнит» или бизнес" — это его решение, преподавателя это касаться не должно никак.


      1. lavagod
        25.02.2019 20:41
        +1

        Уважаю вашу точку зрения, но рискну предположить что вы не преподавали ни секунды. Год в институте, месяц в профессиональном колледже и неделя в школе прочищают голову получше касторки:)

        Я ни единым словом не принизил опыт и наработки автора поста, а отметил только, что в массовом масштабе при не-желающих учиться студентах описанная выше практика не сработает. (И автор согласился.) Учить студентов конкретной работе нужно скорее всего на платных курсах, а в ВУЗе дают фрагментарные сведения по многим предметам, 50% которых никогда в жизни не пригодятся. Делается это не из-за самомнения преподавателей и их коварства, а из-за несовершенства системы образования как таковой.

        Удачи вам, удачи автору поста, удачи всем кто учит и учится в наше нелегкое время.


  1. Misaka10032
    25.02.2019 10:58

    Как получивший диплом менее года назад, подтверждаю — именно от таких аспирантов, у которых преподавание не было основной работой, поступала вся актуальная информация. Так как я работал параллельно с учёбой, то имел возможность сравнить, что преподают и что реально используется. И увы, большинство «уважаемых академиков» отстали от реальности лет так на -дцать.


  1. mattheus
    26.02.2019 15:25

    Мне очень понравился комментарий AlexLeonov с общей мыслью о том, что те практические навыки, приобретение которых описывает автор в статье безусловно важны и нужны на практике, но это должно преподаваться на уровне колледжей/ПТУ/училищ. Этот уровень образования призван обучать практическим навыкам необходимым в прикладной работе, а умение пользоваться git, trello, писать «чистый код» и полноценно использовать IDE — это именно прикладные навыки.

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

    За время моей работы в IT (20 лет) и время работы в университете (14 лет):
    — Сменились системы контроля версий: регулярное архивирование проекта (не смейтесь в 1998 это выглядело так), subversion, mercurial, git. Но изменилось ли что-то в том зачем используется система контроля версий, какова ее роль на проекте? Изменилась, но не настолько сильно. Сейчас кажется что «git — это навсегда»… Готов согласиться что практика сейчас может и должна быть на примере git, но лекция должна выходить за приделы конкретной реализации и рассказывать о системе контроля версий и ее роли в целом
    — Сменились project management systesm: от писем в почте (да, в XX веке это были просто emails), до RedMine, Jira, etc. Так ли поменялась роль PMS в разработке ПО?
    — Сменилось множество языков программирования. У нас на кафедре например базовым считается язык С++. Да, я прекрасно знаю его достоинства и недостатки, я бы взял базовым Java, но это не так важно. На примере C++ можно показать работу с памятью, ООП, создание иерархии классов, проектирование интерфейса? Можно. Так ли важно чтобы это была Scala или Kotlin? Думаю не на столько. Может оказаться что студент будет вообще на Python работать…
    — Сменилось множество операционных систем. Но общие принципы работы и организации операционной системы изменились не сильно. Достаточно ли будет сказать что «демоны» в Linux это аналог «сервисов» в Windows? Наоборот, стоит именно так и сказать чтобы было обобщенное знание, а не знание частностей.

    Некоторые вещи которые стоит оставить за высшим образованием:
    — Проектирование архитектуры проекта/кода
    — Проектирование хранилища данных (специально не пишу БД, но даже в рамках БД осветить NoSQL, OLAP/OLTP, на примере каких-то современных реализаций, но именно общая логика на примере реализации а не реализация какой-то БД как самоцель)
    — Паттерны проектирования
    — Вопросы многопоточности (гонки, дедлоки, атоманые операции, семафоры, мьютексы и т.д.) — так ли важно на примере какого именно языка программирования это показывать? Фактически это все похоже во всех языках которые реализуют многопоточность
    — Функциональное программирование как парадигма программирования (способ думать). На примере какой реализации — можно выбрать, вопрос же не в реализации а в способе мышления.
    и т.д.

    Мне, как преподавателю, видится что ценность высшего образования именно в том, чтобы дать понимание причинно-следственных связей (почему сформировались такие подходы а не другие, какие проблемы они решают), понимание что любой инструмент, метод или концепция имеют границы применимости (чтобы студенты могли для себя отвечать на вопрос о разумном выборе и границах применимости технологий и инструментов которые им встретятся), в последовательности изложения (потому что чтение статей и курсы часто дают фрагментарные знания с пропусками, а пропуски в знаниях сильно мешают осваивать более сложные знания), умение мыслить абстрактными концепциями (потому что главная разница между специальным и высшим образованием — в уровне рассматриваемых абстракций: сравните сложение/вычитание/умножение в школе, логарифмы/синусы/косинусы в училище и многомерные пространства/гамма функции/операции над операциями что есть предмет настоящей высшей математики).

    А теперь с небес на землю:
    — Да, есть проблема с так называемой «не лекционной нагрузкой» (как избыточные требования по методическому обеспечению, так и требования по научной работе, которую «нужно выдать на гора», но реально наукой никто не занимается, да и слабо я себе представляю науку «между парами» в исполнении отдельных людей а не коллективов, без заказа со стороны бизнеса/государства и понимания цели (кроме обычной — публикация в цитируемых и индексируемых журналах).
    — Есть очень большая проблема в разном начальном уровне студентов (из простых школ, из сел и из гимназий)
    — Есть огромная проблема с мотивацией (я вообще считаю что лучше если студент вначале поработает, поймет зачем ему это образование и посмотрит что ему на практике нужно, прежде чем идти в ВУЗ)
    — Проблема в том, что ВУЗ у нас сразу после школы (а не после ПТУ/училища, которые могли бы взять на себя подготовку именно прикладной составляющей), поэтому ВУЗ пытается решить две проблемы сразу: дать прикладные и фундаментальные знания одновременно
    — Проблема того, что если для других специальностей работа в ВУЗе хорошая альтернатива тому что светит лекторам в остальной экономике, то именно IT — экспортная специальность, а зарплаты преподавателей строятся исходя из местного уровня оплаты а не из международных расценок (но могу сказать что особо большие специалисты в ВУЗе и не нужны потому что не настолько высокие материи там рассматриваются именно в аспекте обучения студентов, «высокие материи» характерны тем немногим кто пытается заниматься «настоящей» мировой наукой, но таких единицы)
    — Вопрос обучения прикладным навыкам разнообразные курсы прекрасно закрывают. Их недостаток малом КПД (проценте тех, кто реально трудоустроился) и в отсутствии фундаментальных знаний, но от ПТУ это и не требуется

    И в конце: хорошо видеть направления для изменения к лучшему, без этого невозможно ВУЗам становиться лучше, но нужно понимать что текущее состояние это не результат чьего-то злого умысла, а скорее проявление негласного общественного договора (во всех аспектах жизни) результирующая которого и наблюдается нами как «состояние дел в высшем образовании в целом и обучении IT в частности»