Support us

Как не нужно учить программировать: 13 главных ошибок

Оставить комментарий
Как не нужно учить программировать: 13 главных ошибок

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

Читать далее

Фото: Helloquence via unsplash.com

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

Подчеркну: в данном случае я не имею в виду, что моя школа — эталон, где всё по-другому (мне тоже есть над чем работать, и много), а лишь рассуждаю о том, как не нужно учить людей программировать.

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

1. Не нужно сбрасывать со счетов тот факт, что у всех учеников разные цели (самая главная ошибка)

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

Обучение под каждую цель должно быть своё — по глубине, объёму и подходам.

2. Не нужно обучать людей разных бэкграундов и разных возрастов в одной группе

Ради эксперимента я пошёл в одну малоизвестную организацию, которая пыталась делать курсы.

Выглядело это так: в одной комнатушке — два школьника, одна бухгалтер, один пенсионер, один странный дядька и много парней 20-25 лет. Один из школьников уже учил Паскаль до курсов и всё схватывал на лету, чего не скажешь про пенсионера и бухгалтера.

В результате материалы такого курса подойдут 2-3 слушателям, остальные плюнут и бросят.

3. Не нужно скрывать от ученика реальный объём усилий, которые необходимы для достижения цели

Есть немало рекламных объявлений, составленных с помощью обтекаемых фраз в духе «научим программировать за 2 месяца». Хоп — и программист, работа в кармане, быстренько и классно. А во время обучения преподаватель вдруг говорит: «Вы что, смеётесь, 2 месяца — это даже не азы, это алфавит!». Вроде бы никто никого не обманывает — всего лишь недоговаривает. Бывало, с таких курсов уходила половина группы.

4. Не нужно внушать человеку, что он дебил (самая страшная ошибка)

После обучения у неграмотного преподавателя человек теряет веру в себя и бросает эту затею навсегда.

Моё твёрдое убеждение таково: любой человек способен стать программистом. Любой и с любыми способностями.

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

Считаю, что преподаватель не имеет морального права сваливать ответственность на ученика. Непонимание учеником материала — проблема сугубо преподавателя. Любому можно объяснить и показать.

5. Не нужно привлекать преподавателей без опыта или с 1-2 годами опыта (самая частая ошибка)

Программирование состоит из разных уровней, самый поверхностный из которых — уровень знаний.

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

Третий уровень ещё глубже: это уровень понимания общей идеологии программирования, взаимодействия частей системы, принципов разработки: как возникают библиотеки, какие проблемы они решают и почему такие, а не другие. Это скелет, основа основ.

По сути, программирование — это даже не знания, а отчасти навыки и глубинное понимание того, как эволюционируют, живут, разрабатываются программные системы.

Неопытные преподаватели с 1-2 годами опыта ничего не могут дать ученику, кроме знаний. У них самих ещё нет скелета системного понимания и объёмных шаблонов в голове. Мне кажется, за плечами преподавателя должно быть минимум 5-7 лет в профессии.

История в тему: когда я преподавал на курсах EPAM в 2009-2010 году, человек, который заканчивал мой курс, одновременно преподавал Java на других курсах. А в 2016 году одна минская компания отправила ко мне человека, который пытался пройти собеседование на джуниора, но не прошёл. А потом выяснилось, что при этом он преподаёт Java на других минских курсах. Это полная катастрофа.

6. Не нужно готовиться к занятию во время самого занятия, если ты преподаватель

Есть некоторое количество курсов, где бывает и такое: преподаватель, у которого ещё базовые вещи от зубов не отскакивают, в начале занятия 10-15 минут чего-то гуглит в гробовой тишине, а затем начинает рассказывать, подсматривая в монитор. Казалось бы, абсурд.

7. Не нужно преподавателю использовать аргумент «потому что так надо»  

Ум пытливого ученика только раззадоривает и раздражает аргумент «так надо», который используют неопытные преподаватели, сами не очень-то понимая, почему именно так.

8. Не нужно давить учеников авторитетом вместо объяснений и ответов на вопросы

Среди преподавателей бывают крутые дядьки с авторитетом или регалиями, но без опыта. Ученики мало что понимают (что естественно) — и начинают задавать вопросы.

Вопросы кажутся таким дядям покушением на их авторитет — и вместо того, чтобы объяснить, дядя начинает рассказывать, какой он крутой. В результате конфликт: ученики ничему не научились, а дядя считает себя оскорблённым, потому что он к ним снизошёл, а эти негодяи ещё и вопросы задают.

9. Не нужно всё время занятия посвящать теории и рассказам

Даже если речь идёт о красивой презентации, где есть примеры кода, — не нужно.

Процентов 80 занятия стоит посвящать практике: начинающему программисту нужно гигантское количество практики.

10. Не нужно на одном занятии смешивать разные темы, даже если оно длится 4 академических часа

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

11. Не нужно преподавать темы, которые уже устарели

Еще в 2015 на некоторых курсах преподавали такие темы как swing или awt — они уже лет 5 (а может, и 10) не используются, морально устарели и никому не нужны, но на них тратят время. Эти же навыки можно освоить и на примере более жизнеспособных и распространённых вещей.

12. Не нужно давать код в отрыве от мира, в котором он используется

Неопытные преподаватели, сами ещё не пройдя огонь и медные трубы, имеют смещённое представление о ценности и красоте кода. Для них код — нечто святое, он во главе угла.  

Однако, помимо кода, есть требования, сроки, тестировщики, менеджмент, бизнес-аналитики, которые в каждой компании взаимодействуют по-своему. Внутри аналогичных процессов в разных компаниях есть гигантские расхождения. И человеку в этом нужно ориентироваться. Если он приходит на работу, считая, что код — это центр вселенной, ему придётся туго. Надо учить человека тому, что ИТ — это огромная индустрия, где код лишь маленькая часть.

13. Не нужно бросать ученика после того, как он закончил курсы, если он ещё не достиг цели

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

Павел Вейник. Фото: Андрей Давыдчик.

Важно: действительно ли программистом может стать любой?

У некоторых из тех ребят, кто учился программировать в одно время со мной, есть иллюзия: мол, все, кто приходит в программирование, должны «гореть», а люди из других дисциплин тупо хотят денег — они плохие, их нельзя пускать. Понабежало леммингов в программирование, портят общий уровень! Ответ такой: ничего они не портят.

В любой отрасли на сотню обычных работников приходится один крутой специалист. Для «обычных» людей есть гигантское количество рутинных задач, которые скучны для умников. В Беларуси огромная доля аутсорса, который всасывает серядняков, облизывается и просит ещё.

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

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

Кроме того, ведь есть реальность, в которой живут белорусы. Программирование здесь — отдушина, единственная общедоступная отрасль, где можно почувствовать себя финансово лучше. Поэтому в нашей стране технические способности легко трансформируются в житейские блага. Захлопывать эту область перед носом тех, у кого нет технических способностей, несправедливо, нечестно и негуманно. Это снобизм: мол, я родился технарём, я лучше. Ещё не фашизм, но с оттенком «мы, рожденные технарями, белые люди, а остальные пусть как хотят».

Если человек хочет обучаться и работать в ИТ, пусть обучается и работает — он найдёт своё место.

Резюме

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

 

Колонка подготовлена при участии Натальи Провалинской

 


*Мнение колумнистов может не совпадать с позицией редакции.

Место солидарности беларусского ИТ-комьюнити

Далучайся!

Читайте также
8 онлайн-курсов и интенсивов для Product Manager (февраль, 2024)
8 онлайн-курсов и интенсивов для Product Manager (февраль, 2024)
8 онлайн-курсов и интенсивов для Product Manager (февраль, 2024)
Собрали проверенные онлайн-курсы и интенсивы для Product Manager. В этой подборке: курсы от действующего PM в Microsoft, актуальная специализация по управлению продуктами в сфере AI, курсы для начинающих специалистов и лайфхаки как проходить собеседования на позицию продакта.
2 комментария
11 лучших сертификаций Coursera, чтобы освоить новую специальность (август, 2023)
11 лучших сертификаций Coursera, чтобы освоить новую специальность (август, 2023)
11 лучших сертификаций Coursera, чтобы освоить новую специальность (август, 2023)
Проанализировали Coursera в поисках лучших профессиональных программ на 2023 год, прохождение которых позволит получить востребованную специальность. Рассказываем, на какие направления обратить внимание и как сертификация Coursera помогает изменить вашу карьеру.
1 комментарий
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digitaldefynd мы составили список курсов по Java, которые подойдут как новичкам, так и людям с опытом программирования, чтобы освоить этот востребованный язык.
7 курсов для будущих и практикующих разработчиков игр на Unity (июнь 2023)
7 курсов для будущих и практикующих разработчиков игр на Unity (июнь 2023)
7 курсов для будущих и практикующих разработчиков игр на Unity (июнь 2023)
Вместе с Digitaldefynd составили список полезных курсов, сертификаций и тренингов, которые помогут освоить профессию разработчика игр на Unity с нуля, а также прокачать свои навыки тем, кто уже работает в гейм-индустрии. 

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.