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

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

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

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

Суши-повара могут тренироваться в течение 10 или более лет, прежде чем стать полноценным itamae. Ученики могут потратить несколько лет на то, чтобы просто довести до совершенства процесс приготовления риса, прежде чем им позволят приблизиться к разделочной доске. Докажите свою компетентность в рисовании, и следующий этап развития - это wakiita, что буквально переводится как «около доски». На этом этапе вы изучаете широкий спектр навыков и процессов, включая владение hocho (клинком). Проработав несколько лет в качестве вакиита, ученик мог, наконец, достичь уровня итамяэ и заработать право самостоятельно стоять перед разделочной доской.

На пути к итамяэ меня поразили две основные вещи:

  1. Стремление к мастерству на каждом этапе пути.
  2. Насколько высока планка достижений.

Эти две вещи связаны между собой. На самом деле они неразрывно связаны. Конечно, не каждый хочет быть мастером itamae. Если вы просто хотите иметь возможность приготовить суши дома или для своих друзей, то простое следование рецепту, вероятно, настолько высоко, насколько вам нужно с точки зрения уровня навыков. Если вы действительно хотите покорить вершины, вы должны следовать этому пути; коротких путей нет.

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

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

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

  • Недели 1–3: основы программирования
  • Неделя 4: объектно-ориентированное программирование
  • Неделя 5: Базы данных
  • Неделя 6: HTML и CSS
  • Недели 7–8: Веб-разработка.
  • Недели 9–10: проект
  • Недели 11–12: поиск работы.

Эти виды учебных программ кажутся мне образовательным эквивалентом простого запуска rails new или create-react-app. Там есть контурная структура, но в ней отсутствует какая-либо глубина. Если вы посмотрите, как мало времени тратится на каждую тематическую область, вы действительно думаете, что это даст вам достаточно глубоких знаний, на которых можно строить карьеру?

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

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

Так как же нам это сделать? Мы тратим время на то, чтобы действительно понять, чего ведущие ИТ-работодатели хотят от новых сотрудников:

  • Быть продуктивным за очень короткое время.
  • Быстро наращивать технический стек и кодовую базу компании.
  • Решать задачи масштабно и с высоким уровнем сложности
  • Чтобы хорошо работать в команде

Имея такое понимание, возникает вопрос, как добиться качества кандидата, отвечающего этим критериям?

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

Опять же, это простая идея, но добраться до этого уровня далеко не так просто. В своих Capstone-проектах наши команды должны решать сложные задачи разработки программного обеспечения. Эти проекты не связаны с объединением нескольких общедоступных API в красивом интерфейсе или созданием другого приложения CRUD. Они требуют исследования, планирования и разработки решения с нуля. Наши команды Capstone создали децентрализованные системы облачного хранения P2P, реплики REPL для совместной работы в реальном времени и текстовые редакторы, платформы бессерверных приложений и многое другое.

Для этого они должны были уметь:

  • Используйте обучение Just In Time, чтобы быстро овладеть продвинутыми концепциями
  • Решение проблем на высоком уровне
  • Эффективно работать в удаленной команде

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

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

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

  1. Обеспечение студентами достаточного уровня мастерства, необходимого для продвижения вперед, оценивается с помощью собеседований в режиме реального времени и других тестов, которые отражают реальные процессы выбора работы.
  2. Помощь студентам в формировании навыков и знаний для сдачи оценивания достигается с помощью анализа кода, циклического обучения, целенаправленной практики и упора на построение сильных ментальных моделей и объяснение технических концепций с ясностью и точностью.
  3. Чтобы убедиться, что созданная нами система работает оптимально, постоянно просматривая наш контент. Мы используем цикл «обратная связь-анализ-улучшение», который, по сути, является формой непрерывного развертывания нашей образовательной программы.

Идея Launch School проста: предоставить прилежным студентам структуру, в рамках которой они могут развить навыки и знания, необходимые для поиска лучших вакансий в области разработки программного обеспечения и начать долгую карьеру. Так же, как и путь от новичка к itamae, за простотой этой идеи скрывается много сложностей с точки зрения уровня образовательной инженерии, которая входит в планирование, реализацию, поддержку и постоянное повторение и улучшение. эта структура. Причина всей работы, которая проводится в этой структуре, заключается в том, что, когда выпускники Launch School, наконец, встают перед разделочной доской, они знают, что принадлежат ей.

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