В адрес онлайн-курсов можно часто услышать обвинения от "матерых" программистов: "Вы готовите кодеров, за которыми потом все переделывать приходится!".
Не отстают и представители классического образования:
«Упор на практику уводит слушателей от теории – кодер в программиста никогда не
вырастет». Иными словами, формируется позиция, что кодерство – это
ремесленничество, ничего общего не имеющее с «настоящим программированием».
Однако, давайте разберемся, насколько же справедливы эти обвинения?
Не секрет, что большинство слушателей онлайн-курсов – это
подростки, студенты и свитчеры. То есть люди, которые стремятся получить
профессию, которая позволит им зарабатывать достаточно приличные деньги. Именно
по этой причине курсы построены, в основном, на большом количестве практических
занятий - такой подход позволяет слушателю максимально быстро достичь порога
вхождения в профессию.
Курсы учат понимать код, понимать основные принципы
работы машины, дают представление об основных инструментах - то есть дают необходимый
минимум знаний, без которого программиста из человека уж точно не получится. В
то же время, мы видим ряд противников такого подхода к преподаванию
программирования в школах и, особенно, вузах. В чем же проблема?
Классическая методика преподавания основана на принципе
«Сначала теория, потом практика». То есть предполагается, что
слушатель/студент/ученик сначала должен ознакомиться с теоретическими основами,
изучить фундаментальные знания в различных смежных областях (например, если мы
говорим о программировании, в области математики) – и только потом уже
приступать к практической реализации полученных знаний. И с точки зрения
идеалистических теорий все, вроде бы, правильно. Однако, что нам демонстрирует
суровая реальность? А в жизни мы видим, что теоретическую часть
слушатели/студенты/ученики просто пропускают мимо ушей.
Нет, они, конечно, могут прекрасно сдать зачет или
экзамен – но тут же забывают все, что им рассказывали, как только получают
оценку. Просто потому, что они абсолютно не понимают: для чего им это все?
«Опыт и практика – великая сила», - вот какая сентенция движет ими. Ведь всем
же известно, что на рынке IT выше ценится не тот специалист, у которого оценки
в дипломе лучше, а тот, у которого опыта работы больше и портфолио «толще». Так
зачем забивать себе голову какими-то диффурами второго порядка, если за их
знание тебе лишний доллар не заплатят?
Далее, человек, который пропустил/забыл теорию,
приступает к практике. И вот тут мы подходим к самому важному.
Для того, чтобы научиться писать простой код высшая
математика действительно не нужна. Однако, когда речь идет о действительно
серьезных задачах (я уже не говорю о масштабных проектах, где приходится
столкнуться с построением сложной архитектуры) – тут без нее не обойтись. Но ее
ведь уже прошли, старые конспекты, скорее всего, потеряны, а в памяти все уже
порядком истерлось. И что делать?
Как показывает практика (моя – в том числе) знания
гораздо выше ценятся учениками в том случае, если они понимают, где их потом
применить. Поверьте, когда эти «кодеры» столкнуться необходимостью выучить
«вышку», потому что она окажется полезной на практике – они ее выучат!
Вот простой пример из жизни. Когда-то группа ребят,
слушатели нашего курса JavaGr8, обратились с проблемой. Им надо было разработать
относительно простую игрушку для планшета: велосипедист едет по горам то вверх,
то вниз. Соответственно, поворотом планшета изменяется направление его
движения. И вот с изменением движения, как раз, не складывалось.
Естественно, я пояснил ребятам, что если им надо
элементарно «вверх-вниз», то это решается достаточно простыми инструментами, а
вот если им необходимо еще и изменение скорости велосипедиста в зависимости от
изменений ландшафта – тут уже придется воспользоваться дифференциальными
уравнениями. «А что это?», - спросили меня «разработчики», которые эту тему на
высшей математике прошли еще с полгода назад. При чем крайне удивились этому
факту – они просто «забыли» материал за ненадобностью. Но когда поняли его
значение – тут же выучили снова. И, уж поверьте, больше не забудут.
В этом кроется основная проблема! Теоретические
дисциплины необходимо преподавать так, чтобы были четко видны точки их
практического приложения. В противном случае, в глазах слушателей это будет не
обучение чему-то важному, а сотрясание воздуха. А это, согласитесь, два
совершенно разных процесса.
К сожалению, смена подходов пока не вышла для нашей
образовательной системы на первое место. Так, например, я лично знаком с одним
уважаемым профессором, который читает будущим программистам высшую алгебру – и
ни слова не говорит им о том, что это основа современной криптографии. Просто
потому, что сам об этом не задумывается.
А теперь давайте ответим на вопрос, который стоял перед
нами в самом начале статьи. Является ли кодерство «тупиковой ветвью» развития
специалиста в сфере IT? Ответ очевиден: отнюдь нет!
Онлайн-курсы по изучению языков программирования – это не
путь наименьшего сопротивления и ремесленнические училища. Это, скорее, курс
молодого бойца для тех, кто хочет связать себя с IT-отраслью. Ведь нельзя
отправлять новобранца на выполнение боевой задачи не научив его стрелять,
верно?
Кодерство – это просто первый шаг. Оно, как бы,
приоткрывает дверь в мир программирования, дает возможность посмотреть на него,
по-настоящему понять, подходит ли он тебе, интересно ли тебе решение сложных
задач. Вот только дверь эта достаточно тяжелая и необходимо приложить усилия,
чтобы открыть ее полностью. И без тренировок (читай, изучения той же
математики) ты в волшебный мир «настоящего IT» не попадешь!
Рубрика "Блоги читачів" є майданчиком вільної журналістики та не модерується редакцією. Користувачі самостійно завантажують свої матеріали на сайт. Редакція не поділяє позицію блогерів та не відповідає за достовірність викладених ними фактів.