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

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

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

Классическая методика преподавания основана на принципе "Сначала теория, потом практика". То есть предполагается, что слушатель/студент/ученик сначала должен ознакомиться с теоретическими основами, изучить фундаментальные знания в различных смежных областях (например, если мы говорим о программировании, в области математики) – и только потом уже приступать к практической реализации полученных знаний. И с точки зрения идеалистических теорий все, вроде бы, правильно. Однако, что нам демонстрирует суровая реальность? А в жизни мы видим, что теоретическую часть слушатели/студенты/ученики просто пропускают мимо ушей.

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

Далее, человек, который пропустил/забыл теорию, приступает к практике. И вот тут мы подходим к самому важному.

Для того, чтобы научиться писать простой код высшая математика действительно не нужна. Однако, когда речь идет о действительно серьезных задачах (я уже не говорю о масштабных проектах, где приходится столкнуться с построением сложной архитектуры) – тут без нее не обойтись. Но ее ведь уже прошли, старые конспекты, скорее всего, потеряны, а в памяти все уже порядком истерлось. И что делать?

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

Вот простой пример из жизни. Когда-то группа ребят, слушатели нашего курса JavaGr8, обратились с проблемой. Им надо было разработать относительно простую игрушку для планшета: велосипедист едет по горам то вверх, то вниз. Соответственно, поворотом планшета изменяется направление его движения. И вот с изменением движения, как раз, не складывалось.

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

В этом кроется основная проблема! Теоретические дисциплины необходимо преподавать так, чтобы были четко видны точки их практического приложения. В противном случае, в глазах слушателей это будет не обучение чему-то важному, а сотрясание воздуха. А это, согласитесь, два совершенно разных процесса.

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

А теперь давайте ответим на вопрос, который стоял перед нами в самом начале статьи. Является ли кодерство "тупиковой ветвью" развития специалиста в сфере IT? Ответ очевиден: отнюдь нет!

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

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

 

Читайте все новости по теме "Техно блог" на Обозревателе.

Редакция сайта не несет ответственности за содержание блогов. Мнение редакции может отличаться от авторского.

Наши блоги