Вопрос, который поднимает ряд важных вопросов о том, как работает индустрия «обучения программированию».

Это хороший вопрос, и связанная статья Bloomberg поднимает ряд важных вопросов о том, как работает большая часть индустрии обучения программированию. Я думаю, что моя роль инструктора и соучредителя в Launch School дает мне хорошие возможности для решения этих проблем. Не только потому, что мы работаем в той же отрасли, но и потому, что мы осознали множество этих проблем, когда только начинали, и приняли сознательное решение действовать по-другому.

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

Краткая история учебных курсов по программированию

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

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

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

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

После этого раннего успеха появилось множество других буткемпов, и индустрия стала быстро разрастаться. Многие из этих новых учебных лагерей вовсе не были избирательными при приеме. Фактически, они продвигали себя на том основании, что вам не нужен какой-либо предыдущий опыт программирования, используя такие лозунги, как «от нуля до программиста-героя за 12 недель». Проблема с этим подходом состоит в том, что при прочих равных условиях переменный ввод с точки зрения способностей ученика приводит к переменному результату. Хотя многим из этих студентов, возможно, все же удалось найти работу, они могли оказаться не тем типом работы, на который они рассчитывали, или, возможно, им пришлось столкнуться с трудностями, когда они оказались на этой работе. Еще раз процитируем статью Bloomberg:

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

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

Работа vs хорошая работа vs карьера

Уровень трудоустройства - большая часть маркетинга учебного лагеря. Как указывается в материале Bloomberg, некоторые учебные лагеря откровенно лгут о показателях их размещения. Другие могут быть правдивыми с точки зрения заголовка, но если вы внимательно посмотрите на детали, вы можете обнаружить, что этот заголовок состоит из заданий, которые нельзя рассматривать как настоящие роли в программировании или разработке программного обеспечения. В статье говорится о цифрах трудоустройства буткемпов:

… Многие придерживаются низких стандартов в отношении того, что считается работой, связанной с кодированием. По словам выпускников, один из распространенных способов добиться результатов - это включить в список программных заданий задания, которые проверяют код на наличие недостатков. Эта механическая работа практически не требует написания кода.

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

Типичная учебная программа краткосрочного учебного лагеря может выглядеть примерно так:

  • Несколько недель по основам программирования (что далеко не достаточно, чтобы изучить фундаментальные концепции программирования до любой глубины)
  • Несколько недель ознакомления с фреймворком или две.
  • Пару недель работы над впечатляющим, но технически простым портфолио-проектом.
  • Пару недель собеседований и поиска работы

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

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

Пейзаж изменился

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

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

Возможен другой подход

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

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

  • Неселективные краткосрочные учебные курсы меняют глубину на продолжительность. Это отсутствие внимания к основам приводит к тому, что я называю «минимально жизнеспособным разработчиком»; это разработчик, который знает пару фреймворков и запомнил, как настраивать определенные инструменты, но на самом деле не обладает глубокими знаниями или навыками, чтобы делать гораздо больше. Этот базовый набор навыков может позволить вам получить работу разработчика низкого уровня, но не нацеливаться на лучшие и более интересные вакансии или начать долгую карьеру, а по мере того, как рынок труда становится насыщенным «минимально жизнеспособными разработчиками», даже теми, кто невысок получить работу на должном уровне становится все труднее. В конечном итоге именно поэтому многие учебные лагеря не оправдывают ожиданий своих студентов в отношении трудоустройства.
  • Подход Launch School к обучению, основанный на мастерстве, делает противоположное: он фокусируется на глубине знаний при понимании того, что создание этой глубины требует времени и не может быть выполнено в рамках жесткой фиксированной продолжительности. Этот подход основан на идее, что сильные основы составляют основу ваших знаний и способностей в программировании. Именно эти основы позволяют вам не только ориентироваться на хорошие должности в области разработки программного обеспечения, но также и продвигаться в рамках этих должностей, чтобы построить долгосрочную и приносящую удовлетворение карьеру.

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

Крис Ли - инструктор Launch School, онлайн-школы для инженеров-программистов. Он имеет более чем 16-летний опыт разработки программного обеспечения, от крупного предприятия до стартапов. Ему нравится программировать, преподавать и говорить о обучении, основанном на мастерстве.

Эта статья изначально была опубликована как ответ на вопрос на Quora. Он повторно размещен здесь для читателей со средним уровнем знаний с тем же вопросом.