УкрРус

Что такое кодерство?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Присоединяйтесь к группам "Обозреватель Блоги" на Facebook и VKontakte, следите за обновлениями!

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

Наши блоги