Когда я подал заявку на участие в учебном курсе по программированию Galvanize Web Developer, нам сказали, что в программе за шесть месяцев уровень трудоустройства составляет 97%, а средняя начальная зарплата составляет 74 174 доллара. Это основано на первом году работы школы (2014 г.), когда ее окончили 73 студента.

В 2015 году закончили обучение 199 студентов, включая меня, и процент зачисления упал до 88%.

В 2016 году высшее образование закончили 395 студентов, процент трудоустройства снова упал до 84%, а заработная плата упала до 70 221 долларов США.

Партнерская программа Data Science упала еще быстрее: с 98% в 2014 году до 90% в 2015 году до 81% в 2016 году.

Сейчас Galvanize увольняет 11% своих сотрудников и смещает акцент на обучение онлайн-студентов и обслуживание корпоративных клиентов.

Я получил высшее образование в лучшей трети своего класса. Директор программы сказал, что у меня «потрясающий проект». Затем я полгода искал работу. Я ходил на ярмарки вакансий. Я представил свой кульминационный проект на технических встречах. Я объединил и собрал сотни визиток. Я подал заявку на сотни вакансий онлайн и дал свое резюме десяткам рекрутеров. Я даже купил пару новых костюмов:

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

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

Моя идея проста. Курсы для начинающих по кодированию должны работать с местными компаниями над разработкой учебных программ для технологического стека каждой компании. Например, компания использует Java и SQL в серверной части, а JavaScript и Angular во внешней. Инженеры компании и участники учебного курса по программированию составили список книг или сообщений в блогах, упражнений, тестов и проектов, чтобы подготовить выпускников к собеседованию в каждой компании.

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

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

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

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

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

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

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

Технологические компании не хотят признавать, что они не знают, чем занимаются их инженеры. Я подал заявку на работу в Angular, и на собеседовании меня попросили понять, в чем состоит большая проблема двоичное дерево на C. Для другого внешнего задания меня попросили решить шахматную задачу, которая требовала рекурсивного программирования. Люди, нанимающие в технологических компаниях, понятия не имеют, что это такое.

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

Или технологические компании ошибочно думают, что то, чем они занимаются, - это ракетостроение, а обучение молодых разработчиков потребует огромных ресурсов. Я помню интервью с Electronic Data Systems (EDS), когда я закончил колледж, и рекрутер сказал мне, что каждый новый сотрудник получает трехмесячную программу обучения стоимостью 100 000 долларов. (Обучение в основном состояло из COBOL.) В том году EDS наняла 2 000 новых выпускников. Я могу посчитать в уме и спросил, откуда компания берет 200 миллионов долларов (это больше, чем прибыль компании). Я не получил эту работу. На самом деле большинство навыков, которые большинство инженеров используют в большинстве технологических компаний, можно получить из нескольких книг и проекта, если студенту сказать, что ему изучать, и получить помощь от наставника.

При приеме на работу новых сотрудников или стажеров требуется много накладных расходов, чтобы ускорить обучение выпускников. У Microsoft и Google есть программы для этого, но «стартапы» (некоторым из которых более 10 лет и в них работают сотни сотрудников) так и не научились эффективно обучать младших разработчиков.