TL;DR
1. Изучите профессиональные инструменты и рабочий процесс
2. Изучите партнерскую программу и работайте в команде
3. Задавайте вопросы и используйте советы других способности и навыки
4. (Бонус) Создайте профессиональную сеть

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

Безусловно, самое важное, чему вы научитесь, — это как использовать Git и GitHub для управления процессом разработки. Вторым по важности является ваш фактический редактор кода — мы использовали VSCode, хотя вы можете выбрать альтернативу, например Sublime. Третье, но не менее важное, это знакомство с интерфейсом командной строки (CLI) с помощью вашего терминала. Большинство людей в моей программе использовали Mac, хотя у нас было несколько пользователей Windows и несколько человек на Linux. У меня есть и MacBook Pro, и ноутбук с Windows, и я без проблем использую один и тот же набор инструментов на обеих платформах.

Изучение Git и GitHub имеет решающее значение. Вы должны узнать, как расширить VSCode для обработки коммитов непосредственно из VSCode, и вы должны ознакомиться с тем, как перемещаться по вашей машине с помощью терминала. В первую неделю нашего курса мы все были сосредоточены на том, как работать БЕЗ МЫШИ и управлять нашими машинами с помощью клавиатуры. Хотя поначалу это пугает, вы сможете быстро и эффективно перемещаться между страницами и приложениями, используя только клавиатуру.

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

Вывод здесь таков: быть профессиональным разработчиком — это не только знание определенного языка. Речь идет о знании того, что находится в вашем наборе инструментов, а также о том, как и когда использовать эти инструменты для выполнения поставленной задачи. В очной школе вы должны работать как профессиональный разработчик, используя те же инструменты, которые вы будете использовать в своей новой трудовой жизни.

Узнайте, как работать в команде
В хорошей школе кодирования с личным присутствием некоторые или все лабораторные работы должны выполняться в команде или с использованием парного программирования. Парное программирование — это способ кодирования, при котором два разработчика одновременно работают над одним и тем же кодом. Как правило, это делается, когда один разработчик печатает, а другой управляет процессом, давая инструкции и проводя необходимые исследования, чтобы определить, какой код необходим. Обычно используется таймер. Пары обычно переключаются каждые 20 минут, фиксируют код, а затем меняются ролями. Погуглите Техника помидора (или прочитайте Мифический человеко-месяц), чтобы узнать больше о парном программировании.

Эта техника может показаться вам сложной. Я сделал, сначала. Трудно оставаться в своей роли и верить, что ваша пара дает вам хорошие инструкции, и вам может быть сложно, когда наступает ваша очередь «говорить, а не печатать». Работа в парах — отличный способ научиться работать с разными людьми. Вам нужно проявить терпение, поскольку люди часто имеют разные стили общения или обучения, даже скорость набора текста. Обучение управлению этим потенциальным разочарованием является частью процесса. Объединение в пары может быть очень полезным и является отличным методом, если вы не очень сильны в определенном типе кода — вы можете учиться друг у друга!

Командные проекты обычно представляют собой более крупные проекты. Во время моей 20-недельной школы кодирования мы создали 4 командных проекта. Обычно в команде от трех до пяти человек. В отличие от работы в паре, каждый член команды обычно работает над частью кода. Например, вы можете обрабатывать CSS, строительные леса или основные функции. Например, даже если вы не самый сильный разработчик React, вы все равно можете внести ключевой вклад в команду, сосредоточившись на своей сильной стороне.

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

Ваши инструменты могут помочь. Git — это контроль версий. GitHub — это сотрудничество. Часть вашего опыта в школе кода должна заключаться в том, чтобы получить опыт использования GitHub для управления своим кодом. Ваша история коммитов, файлы readme и проекты, хранящиеся на GitHub, скорее всего, будут рассмотрены любыми потенциальными работодателями. Профессиональное программирование, помимо прочего, связано с общением — gitHub предоставляет историю этого, которую все могут увидеть. Это показывает, что вы научились работать прозрачно, писать надежный код и оставлять полезные сообщения для вашей команды.

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

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

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

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

Чтобы пройти очную программу, вам нужно будет научиться читать документацию, чтобы изучить основы, или установить пакеты NPM, или выяснить, как использовать инструменты, которые вам понадобятся для сегодняшней лабораторной работы. Вы должны не только знать, какие вопросы задавать, но и знать ответ, когда видите его! Это может быть проблемой само по себе.

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

Правило для нас было 15 минут. Если вы потратили 15 минут на поиски или попытки найти ответ в ветке StackOverflow, СПРОСИТЕ. Большим преимуществом очных школ является доступность знаний ваших сокурсников или преподавателей. Воспользуйтесь этим — это то, за что вы платите.

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

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

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

Подходит к концу
В большинстве городов доступно множество школ программирования, и еще больше доступно в Интернете. Обратите внимание, я совсем не против самообучения. На самом деле, продолжение обучения разработчику станет основной частью вашей новой карьеры. Я прошел несколько курсов по Treehouse, Code Academy, Udemy и Khan Academy как самостоятельно, так и в рамках подготовки к школе кода. Мне больше всего понравились курсы и платформа Treehouse, но все они оказались полезными.

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

Я решил посетить Alchemy Code Lab, которая является филиалом программы CodeFellows. Алхимия расположена в центре города, напротив Пауэлла — в самом сердце технологической сцены Портленда. Alchemy проводит множество встреч и мероприятий в своем пространстве, что является дополнительным преимуществом.

Программа Alchemy — это более 800 часов тщательного профессионального обучения MERN-стеку, направленного как на чистый код, так и на построение команды, индивидуальное решение проблем и TDD-тестирование с помощью Mocha, Chai и Jest. Полный курс Alchemy представляет собой программу из трех частей, посвященную, соответственно, глубокому погружению в ванильный JavaScript, разработку приложений SPA и RESTful API, а также полнофункциональные приложения React/Redux с MongoDB + Mongoose. В наших проектах также использовались Vue.js, GraphQL, GatsbyJS и Firebase.

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

Не стесняйтесь подписываться на меня в Твиттере @markalope.