Юлиус Цервик изучал основную учебную программу Launch School с апреля 2017 года по август 2018 года. Он участвовал в программе Capstone с сентября 2018 года по январь 2019 года. За это время его команда развивалась проект SpaceCraft. После Capstone он устроился на работу в DigitalOcean в марте 2019 года и продолжает там работать.

Большую часть ноября и начало декабря 2019 года Юлиус отвечал на вопросы сообщества Launch School в формате Спроси меня о чем угодно.

Вот как было оформлено обсуждение (с точки зрения Юлиуса):

Около года назад« Санни Битти (выпускник школы Launch и Capstone) разместил AMA , приглашая всех задавать ему вопросы. Я присоединился и нашел все вопросы и ответы действительно полезными, так как в то время я заканчивал основную учебную программу и подавал документы в Capstone. Я хотел вернуть эту идею, и поэтому в течение следующего месяца я буду отвечать на вопросы всех, у кого они есть! Так что, если у вас есть вопрос, который поможет вам и другим лучше понять Launch School, Capstone или разработку программного обеспечения в целом, задавайте их! »

Поступающие вопросы относились к следующим областям:

  • Запустить школу
  • Базовая учебная программа против Capstone
  • Capstone опыт
  • Стоит ли этого Launch School, даже если я не могу сделать Capstone?
  • Учебные привычки
  • День из жизни инженера
  • Непрерывное обучение / идти в ногу с меняющимися технологиями
  • Неполный рабочий день vs очное обучение
  • Ваша первая роль в разработке программного обеспечения
  • Поиск работы

@KrunalPatel

1) Я знаю, что вы работаете всего 7 месяцев, поэтому, возможно, еще слишком рано спрашивать, но обнаруживаете ли вы, что вам нужно идти в ногу с меняющимися технологиями?

Честно говоря, мне не приходилось идти в ногу с меняющимися технологиями, а нужно было учиться технологиям и предметам, которые были для меня новыми. Я присоединился к команде разработчиков программного обеспечения в DigitalOcean, которая занимается управлением IP-адресами, частными сетями и мониторингом нашего сетевого трафика. Кроме того, большая часть нашего кода написана на языке Go, и мы много используем как MySQL, так и Docker, все из которых я могу изучить очень быстро.

«Навыки, которые я приобрел в LaunchSchool, подготовили меня достаточно хорошо, чтобы выучить эти вещи быстро».

Итак, последние 7 месяцев я в основном был сосредоточен на изучении этих технологий наряду с основами работы с сетями. И, насколько я могу судить, ни один из них не меняется так быстро, как технологии веб-разработки, такие как JavaScript или фреймворки, такие как React или Rails. При этом навыки, которые я получил в LaunchSchool, подготовили меня достаточно хорошо, чтобы выучить эти вещи быстро.

2) Как часто вам нужно осваивать новый навык для работы?

Я все время осваивал новые навыки для работы, некоторые из которых, как я знал, мне нужно было освоить, а другие возникали неожиданно. Придя в DigitalOcean, я знал, что мне нужно довольно быстро изучить Go, инструменты командной строки, Docker и MySQL. И во время обучения мне было предложено изучить некоторые темы, например, основы работы с сетями.

Но иногда возникают ситуации, требующие от меня узнать то, чего я не ожидал. Например, в первые два месяца мне пришлось освоить несколько сценариев Bash для выполнения различных задач, а затем я более глубоко погрузился в git, чтобы улучшить свой рабочий процесс. И после моего первоначального подключения мне было поручено изучить Prometheus, Grafana и LightStep, чтобы улучшить мониторинг и оповещение нашего сервиса.

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

@JulietteSinibardy

1) Что бы вы сделали, если бы не подавали заявку на участие в программе Capstone? Как вы думаете, вы могли бы создать (что-то вроде) космический корабль без дополнительной помощи Capstone (возможно, через немного больше времени)?

Хороший вопрос, я знал, что хотел сделать Capstone как минимум 8–10 месяцев перед подачей заявки, поэтому я специально принял решения, чтобы помочь в этом. Если бы я не подал заявку в Capstone, то, думаю, после завершения основной учебной программы я бы посвятил некоторое время просто работе над проектами. Может быть, обратиться к другим студентам в Slack, которые также заканчивали Core, чтобы они также поработали над проектами.

Я думаю, мне было бы сложно сказать, что я на 100% мог бы сделать что-то столь же сложное, как SpaceCraft, не делая Capstone. Хотя содержание Capstone может со временем меняться в зависимости от того, как отрасль оценивает и нанимает инженеров-программистов, включенные в него темы алгоритмов, структур данных и проектирования систем позволили размышлять и строить более сложные проекты.

Кроме того, огромным преимуществом является работа в команде, у всех членов которой одинаковый график, приверженность и конечные цели. Кроме того, инструкторы Capstone отлично справляются со своей задачей, направляя исследования и фокус каждой команды при создании своего проекта. Трудно переоценить, насколько полезно, чтобы кто-то вроде Криса сказал, что «эта идея может столкнуться с проблемами X, Y и Z», о которых вы не думали, или сказал: «вы беспокоитесь о потенциальной проблеме за 100 шагов, сосредоточьтесь на том, что перед вами ».

Я не думаю, что для одного или нескольких студентов невозможно построить что-то вроде SpaceCraft, не выполнив Capstone, но это, вероятно, займет больше времени и будет подвержено большему количеству камней преткновения в процессе. Но я думаю, что существует огромное количество возможных проектов, которые могут быть реализованы со степенью Core Grade, которые произведут впечатление на компании, менеджеров по найму и разработчиков программного обеспечения. В хорошем проекте важнее всего не быть наиболее технически впечатляющим, но иметь возможность четко объяснить процесс, через который вы прошли при создании проекта, объяснить свои технические решения и выйти на улицу, чтобы продемонстрировать свою работу, выступая на митапах или выставляя вышла подробная статья (и то, и другое мы сделали для SpaceCraft).

2) Я слышал, что инженеры-программисты часто проводят некоторое время, выполняя смежную работу, например, проводят часы на собраниях, посвященных Agile-историям. Как вы думаете, сколько вы занимаетесь программированием на вашей нынешней работе? Примерно 50, 60% вашего времени? (И под кодированием я имею в виду: стоять лицом к компьютеру, думать о проблеме, не обязательно писать код.)

Это зависит от дня, но, к счастью, у меня обычно есть несколько дней в неделю, и я трачу большую часть своего времени на размышления о проблемах, которые мне нужно решить, и их кодирование. Например, на этой неделе в моем календаре всего 5–7 часов встреч. Если взять 1 час в день на обед, то в результате из 40-часовой недели у меня будет 28–30 часов (или 70–75% своего времени) на программирование / решение проблем.

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

@FabioSelmi

1) Я только что закончил вводный курс и собираюсь записаться на Ruby 101. Поскольку я работаю полный рабочий день, меня больше всего беспокоит то, что я не смогу изучать достаточно, чтобы создавать эффективные изучать привычки.

Каким был ваш график работы по основной учебной программе? Какой самый эффективный инструмент / привычка помогала вам больше всего на протяжении всего пути?

Хороший вопрос, я чувствую, что большая часть обучения в Launch School - это повторное изучение того, как учиться, и определение того, что лучше всего подходит для вас. На самом деле я изучал Основной учебный план полный рабочий день, с небольшим периодом (~ 1 месяц) в начале, когда я все еще был на своей предыдущей работе, но решил уйти. Во время Core я обычно стремился изучать 4–5 часов в день целенаправленно и целенаправленно. Иногда, если я чувствовал себя действительно хорошо в этот день, я занимался 6 часов, но не заставлял себя.

«Я чувствую, что большая часть обучения в Launch School - это повторное изучение того, как учиться, и поиск того, что лучше всего подходит для вас».

Учеба, работая полный рабочий день, определенно может быть сложной задачей, и я вижу ваше беспокойство по поводу того, что вы не можете «учиться достаточно, чтобы выработать эффективные учебные привычки». Вместо одной привычки / инструмента я вам советую:

  • Во-первых, усвоите, что Launch School будет долгим путешествием (обычно 1-2 года для многих студентов), что хорошо, потому что вы сможете сформировать привычки за этот период времени. Вы можете начать с реализации одной привычки (например, Anki, о которой я упоминаю ниже) в течение одного месяца, а затем добавить другую в следующем месяце. Эти привычки пригодятся вам как студенту и разработчику программного обеспечения.
  • На каждую неделю ставьте цель по количеству часов, которые вам нужно учиться. Если я правильно помню, рекомендуемое количество - 10–15 часов в неделю. Так что поместите эту цель где-нибудь, чтобы вы могли видеть (для меня это был блокнот на моем столе) и отмечайте свои часы после каждого дня. Я обнаружил, что наличие этого передо мной каждый день поддерживало меня в мотивации и обеспечивало прогресс.
  • Когда вы все-таки учитесь, сделайте упор на глубокое и осознанное изучение. Под этим я подразумеваю убрать все отвлекающие факторы (телефон, социальные сети, закрыть все вкладки браузера, кроме тех, которые используются для изучения LS). Ваша цель должна заключаться в том, чтобы сосредоточить все свое внимание и всю силу мозга на материале, который вы изучаете, таким образом, вы можете изучать только 10–15 часов в неделю, но качество этих часов будет высоким. Полностью погрузитесь в содержание и делайте заметки о том, что вы понимаете, а что не понимаете. Вернитесь к тому, что вам не совсем понятно. Это обычно называется глубокой работой, и есть отличная книга по теме под названием Глубокая работа Кэла Ньюпорта, которая была очень полезна для меня и по праву могла быть единственной самая важная привычка, которая мне помогла (но я буду продолжать).
  • Я настоятельно рекомендую вам начать использовать Anki в учебе (https://apps.ankiweb.net/). Это бесплатное приложение, которое позволяет создавать колоды карточек для изучения. Однако его мощная особенность заключается в том, что он распределяет карточки в зависимости от того, насколько хорошо вы на них отвечаете. Если вы знаете ответ сразу, вы можете настроить отображение карточки через несколько дней, неделю или даже несколько месяцев. Если вы не ответите правильно, он может снова появиться через несколько минут. Это так полезно, потому что со временем вам будут бросать вызов только те карточки, которые вы плохо знаете, или вы увидите карточку прямо тогда, когда собираетесь ее забыть, которая укрепит вашу память. . Я думаю, что Anki особенно важен для студентов, которые учатся, работая полный рабочий день, потому что тогда вы можете легко просматривать важный материал за 10–15 минут в день, и вы все равно будете помнить его через несколько месяцев, когда будете изучать другие курсы.

Вот отличная статья об использовании Anki: http://augmentingcognition.com/ltm.html

Статья немного длинная, но основные моменты:

  • Вы можете использовать Anki, чтобы узнать и запомнить все.
  • Сделайте каждую карту как можно меньше (атомарно); они должны легко запоминаться.
  • Практикуйтесь каждый день.
  • Храните все свои карты в одной колоде; Это гарантирует, что вы все время просматриваете последовательно, а перетасовка темы также улучшит вашу способность вспоминать материал.

Я действительно мог бы продолжать и продолжать с эффективными учебными привычками (может быть, мне стоит сделать Tech & Talk по этому поводу?), Но вот несколько последних быстрых советов:

  1. Не выделяйте и не делайте заметок только для того, чтобы делать заметки.
  2. Сначала просмотрите материал, затем начните с начала и прочитайте еще раз более внимательно.
  3. Повторяйте упражнения, на которые вы ответили неправильно, и только те. Сосредоточьте свое время на проблемах, которые доставили вам больше всего хлопот.
  4. Обобщите материал, который вы только что выучили, и изучите интеллект-карту. И то, и другое более эффективно, чем просто делать заметки на ходу.

Наконец, вот несколько ресурсов, которые помогут выработать эффективные учебные привычки:

@PabloVent

1) Я хотел узнать ваше мнение о том, «Стоит ли того Launch School, даже если я не могу делать Capstone?» Я хорошо разбираюсь в 101, но не уверен, смогу ли я сделать Capstone; логистически для меня немного сложно. Так что я должен думать о своих проектах в конце ядра. Не поймите меня неправильно. Я бы с удовольствием снялся в Capstone. Спасибо

Краткий ответ: Совершенно верно!

Длинный ответ: Да, безусловно. Качество материала в Core намного выше, чем у других ресурсов (на самом деле я прошел учебный курс по кодированию и немного прошел FreeCodeCamp до LaunchSchool, и оба были намного ниже по качеству), и оценки заставят вас действительно знать материал намного лучше, чем другие. Это позволит вам опередить выпускников курсов для начинающих по программированию и даже тех, кто закончил колледж со степенью CS (многие ученые степени не так хорошо преподают программирование или разработку программного обеспечения).

«Качество материала в Core намного выше, чем у других ресурсов».

Было много бывших учеников LaunchSchool, которые закончили только Ядро и получили отличную работу. Вот один пример: https://launchschool.com/posts/fa4307e3

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

Когда придет время создавать свои проекты, я бы посоветовал иметь в виду следующее:

  • Найдите проблему, с которой столкнулись вы или другие люди, и подумайте, сможете ли вы ее решить. Проект моей команды был построен, потому что мы чувствовали, что у людей не было никаких вариантов с открытым исходным кодом для совместного программирования в сети (https://spacecraft-repl.com/).
  • Уделите много времени изучению проблемы, пониманию ее деталей и возможных решений.
  • После того, как вы создадите свой проект, напишите статью или пример из практики, подробно описывающий ваш проект и процесс, который вы прошли для его решения. Часто это производит большее впечатление на работодателей, менеджеров по найму и инженеров, чем сам проект! (Https://hackernoon.com/building-spacecraft-a-real-time-collaborative-repl-deebcf084ed9)
  • Продемонстрируйте свою работу, выступив на встрече! И, если возможно, запишите свою презентацию, чтобы вы могли поделиться ею в Интернете и с потенциальными работодателями.

Все вышеперечисленное поможет любому проекту выделиться, если он достаточно техничный. Это означает, что это больше, чем просто приложение со списком дел, базовый веб-сайт или клон популярного веб-приложения (во многих учебных курсах по программированию учащиеся создают клоны Reddit, Instagram, Netflix и т. Д.). И если вы столкнетесь с некоторыми препятствиями, помните, что у вас есть большое и поддерживающее сообщество нынешних и бывших студентов в Launch School Slack и форуме, которые ответят на вопросы или, если возможно, помогут.

@AndrewVil

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

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

Я закончил книгу «Введение в программирование» из подготовительного курса, сейчас прорабатываю «Учимся программировать» Криса Пайна, но, похоже, я стараюсь уделять максимум 4 часа качественного обучения в день.

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

Исходя из вашего опыта, что вы думаете о полных и неполных занятиях?

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

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

Так что я уволился с работы и вернулся к родителям через всю страну. И что интересно, я обнаружил, что со временем я действительно смог увеличить количество часов, которые я мог бы заниматься каждый день! Без работы, которая истощала мою умственную и физическую энергию, а также способности высыпаться и отдыхать, у меня было больше энергии, чтобы вкладывать ее в учебу, и постепенно я перешел с 4 часов в день на 5, затем 6 и несколько дней (хотя не часто) У меня хватило 7–8 часов! Учеба похожа на упражнение для вашего мозга, и чем больше вы будете делать это последовательно (без перегрузок), тем больше вы сможете делать с течением времени.

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

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

Я никогда не сожалел о том, что решился учиться на дневном отделении, и я думаю, что это прекрасная возможность. Только мои 2 цента :-)

@RyanSchaul

Я уверен, что вам было неудобно, когда вы только начали свою работу… много чего нужно было принять и т. д. Сейчас, спустя 7 месяцев, как вы себя чувствуете? Вы чувствуете себя более комфортно / уверенно? Или вы все еще (если вообще были) немного напуганы и каждый день пьете из пожарного шланга?

О боже, хороший вопрос. Если честно, это действительно может зависеть от недели или дня. Когда я начал работать в DigitalOcean, мне нужно было многое быстро изучить, например, язык Go, больше использовать Docker, основы компьютерных сетей, инструменты командной строки Linux, распределенные системы, наши внутренние инструменты и Vim (хотя это был мой собственный выбор: D).

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

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

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

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

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

Https://www.freecodecamp.org/news/am-i-a-real-software-engineer-yet-a0f38a2248c0/

@YuXia

1) Что вы нашли действительно полезным для ваших способностей к поиску работы или вашей текущей работы в 5-месячном заключительном проекте? (навыки, нетворкинг, навыки поиска работы и т. д.)

На самом деле я написал подробную статью о своем поиске работы здесь: https://jzerwick.svbtle.com/how-i-navigated-the-job-hunt-and-landed-my-dream-job

Оглядываясь назад, я думаю, что потратил бы больше времени на создание небольших практических проектов с использованием фреймворков, которые я изучил во время Capstone (Ruby on Rails & React). Хотя для собеседований у меня было не так много домашних проектов, многие компании задавали вопросы об этих фреймворках во время экранов телефонов. К тому же, если DigitalOcean не сработала, в моем портфеле было несколько других компаний, которые активно использовали эти фреймворки.

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

2) Вы все еще используете Ruby в своей текущей работе? Когда вы начинаете искать работу, считаете ли вы, что специализация только одного языка программирования действительно имеет значение, или работодатели предпочитают людей, которые быстро учатся и хотят изучать новые языки? (Я спрашиваю об этом, потому что когда читаю некоторые описания вакансий, язык, который они требуют / сильно предпочитает, не входит в мой набор навыков, просто хочу знать, как работодатели уравновешивают их при фильтрации кандидатов). Любой опыт поиска работы полезен!

Я не использую Ruby на своей нынешней работе прямо сейчас, но могу в ближайшие несколько месяцев, так как моя команда обновляет старый проект, который был забыт и был написан с использованием Ruby on Rails. Последние 7 месяцев вся моя работа была в основном на языке Go, который мне пришлось выучить во время обучения в DigitalOcean.

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

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

Чтобы узнать больше о поиске работы, я бы порекомендовал прочитать мою статью о поиске работы, которую я разместил выше. Еще одна замечательная статья Санни о поиске работы, которая вдохновила меня (они похожи по структуре, но имеют некоторые отличия): https://hackernoon.com/what-it-took-to-land-my- мечта-разработка-программное обеспечение-работа-17c01240266b

3) Оглядываясь назад на это путешествие в LS: что, по вашему мнению, вы должны были сделать раньше?

Я думаю, что мне следовало пообщаться с сообществом раньше. Вначале я был немного застенчив и хотел поставить в приоритет завершение некоторых курсов, прежде чем болтать в Slack, а это означало, что я начал публиковать сообщения в #general только тогда, когда был на первом курсе JavaScript. Забавная история, мой первый пост в Launch School Slack был ответом на пост Ин Чи Гуи, который хотел объединиться и попрактиковаться в вопросах JavaScript. В итоге мы много болтали, присоединились к той же группе Capstone, были в той же команде, которая создавала SpaceCraft, и, в конце концов, оба присоединились к DigitalOcean (он работает в той же команде, что и Санни)!

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

@Tzvi

Я еще рано учусь (120); Я учусь полный рабочий день и стремлюсь к вершине. Я все время задаюсь вопросом, следует ли мне дополнять свое обучение другими курсами или книгами не из Launch School.

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

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

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

«Я бы посоветовал сосредоточить все свои усилия на материале Launch School. Это невероятно глубоко, и тебе будет чему поучиться ».

Может быть очень заманчиво изучать другие предметы, я сам довольно часто этим занимался. Но в конце концов я обнаружил, что это отвлекало меня и мешало моим усилиям в изучении материала Школы запуска. Что касается Capstone, то покрываемый там материал может со временем меняться. Это связано с тем, что Capstone помогает студентам ориентироваться на определенный тип компании (более конкурентоспособная, более качественная разработка), и вопросы / темы, по которым они проводят собеседование, могут измениться. Прямо сейчас многие из них проверяют знания алгоритмов и структур данных с помощью задач кодирования, но это может измениться в будущем.

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

Я написал статью о некоторых дополнительных книгах и ресурсах, которые могут помочь вам в дальнейшем изучении содержания Launch School, а также о некоторых ресурсах, которых следует избегать: https://medium.com/launch-school/my-list-of-books -resources-for-ls-student-72e468c41188

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

Хорошей отправной точкой будет Tech & Talk, которую я дал в Советы и приемы командной строки (https://launchschool.com/gists/b05ad752), в конце которого также есть некоторые ресурсы. Слайды доклада можно найти в конце дополнительной статьи, которую я написал здесь: https://jzerwick.svbtle.com/leveraging-the-command-line-for-increased-productivity

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

@RyanSchaul

Еще один вопрос. В прошлом я всегда учился гораздо быстрее на работе, чем учился до этого (бакалавриат и юридический факультет были моим прошлым опытом). Когда я приступил к работе, я действительно начал повышать свой уровень и многому учиться. Я думаю, что это произошло из двух основных вещей (в моем случае): 1. Выполнение реальной работы, 2. Больше скинов в игре.

Я могу представить, что это верно и для этого. Это было для вас? Теперь, когда вы начали работать, ваш уровень повысился быстрее, чем когда вы учились? Capstone может быть исключением, потому что это довольно интенсивно. Возможно, вы могли бы сравнить и Core, и Capstone.

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

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

Кроме того, хотя я изучил более широкий круг вещей с момента работы в DigitalOcean (компьютерные сети, микросервисы, Go, более продвинутые методы тестирования, awk, sed, многое о командной строке, распределенных системах, MySQL и т. Д.), Я определенно у меня не было возможности изучить их слишком глубоко во время работы из-за быстрого темпа работы. Так что мне часто приходится уделять время вне работы, чтобы лучше понимать вещи и оставаться впереди всех.

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

Но, как я уже сказал, мне кажется, что я очень быстро повышаю свой уровень после работы и на порядок быстрее, чем Core. Но единственная причина, по которой я могу это сделать, - это огромное количество часов, которые я посвятил изучению Ядра, повторению тем, с которыми у меня были трудности, снова и снова, и выявлению моих слабых сторон / пробелов в моих знаниях, так что что я могу улучшить. Потому что, когда вы знаете основы до мозга костей и не спотыкаетесь об области видимости переменных, объявлениях переменных, передаче по значению или передаче по ссылке, отсутствии практичной структуры решения проблем (PEDAC потрясающий) или чего-то еще включены в Core, то вы сможете больше сосредоточиться на изучении более сложных тем или новых технологий.

Итак, вы правы, в определенный момент X объем обучения может быть менее эффективным, чем этот объем на работе. Но нюанс в том, что (1) эти часы обучения сделают ваше обучение на работе еще быстрее, и (2) вам может потребоваться повысить сложность обучения. Посмотрите, сможете ли вы решить еще более сложные проблемы программирования, создать проект с еще более продвинутыми функциями и найти больше способов проверить свое понимание.

Надеюсь это ответит на твой вопрос!

@Tzvi

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

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

Мой вопрос: как вы рекомендуете уравновесить желание полностью понять все уровни и функции, которые возникают, когда вы пишете программу и используете ваши ограниченные ресурсы времени и энергии. Как определить, сколько достаточно?

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

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

Если вы действительно хотите понять все уровни и функциональные возможности, возникающие при написании программы, вы собираетесь учиться в течение многих лет. Чтобы понять это количество деталей, вам потребуется изучить языки программирования более низкого уровня, такие как C, затем языки сборки (машинного уровня), такие как MIPS, затем компьютерную архитектуру, электротехнику и, наконец, физику. Есть также операционные системы, структуры данных и алгоритмы, дискретная математика и многое другое, что вам нужно охватить. Стоит ли изучать все это сейчас, когда ваша цель - получить роль разработчика программного обеспечения начального уровня в веб-разработке, особенно когда вы не будете использовать 90% этого огромного объема знаний в своей работе? Я бы сказал, что это не так.

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

«На данный момент я рекомендую вам доверять процессу Launch School. Если вы сосредоточитесь на изучении материала до совершенства, вы уже будете знать больше, чем большинство других, кто работает в индустрии разработки программного обеспечения ».

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

Надеюсь, этот ответ поможет вам в учебе!

@JohnIsom

1) Я хочу больше узнать о Capstone и о вашем опыте в этой сфере. Что вы делали в Capstone в большинстве случаев? Проводили ли вы большую часть своего времени, работая над проектами, изучая материалы и концепции, проводя дискуссии, имитирующие интервью и т. Д., И сколько времени вы потратили на каждую из этих различных «тем»?

Я, конечно, могу рассказать о своем опыте в Capstone, но, пожалуйста, имейте в виду следующее предостережение: содержание и структура Capstone не высечены на камне. Capstone разработан с конкретной целью: подготовить участников к поиску работы, нацеленному на ведущие инженерные компании. Когда я прошел через Capstone (и я думаю, что это все еще актуально), многие из этих компаний использовали задачи кодирования, основанные на алгоритмах и структурах данных, собеседования по системному дизайну и небольшие проекты (проект забрать домой) для оценки кандидатов, и поэтому мы рассмотрели эти темы. . Но мы не можем точно сказать, как все изменится в будущем, и поэтому материалы в Capstone со временем станут движущейся мишенью для отрасли в то время. Capstone уже изменился с тех пор, как я завершил его в декабре 2018 года, и теперь он длиннее на несколько недель.

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

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

2) Какие материалы вы выучили / над которыми работали? Вы тратили большую часть своего времени на изучение фреймворков более высокого уровня? Вещи, которые сейчас популярны и могут не появиться в следующем году? Больше фундаментальных факторов с примесью некоторых из предыдущих? Опираясь на свои предыдущие знания или изучая совершенно разные вещи? Структуры данных и алгоритмы? И каково будет соотношение между этими разными видами тем? Я понимаю, что цель Capstone - помочь студентам начать конкурентоспособную карьеру, и мне интересно, как это выглядит.

Я рассмотрел материал, который мы изучили в своем ответе на вопрос (1) выше, а также соотношение между различными темами. Когда мы рассматривали полнофункциональные приложения, мы изучали и использовали фреймворки (Ruby on Rails, React), которые в то время были наиболее распространенными в отрасли (и я подозреваю, что они все еще остаются). Несмотря на это, я бы не сказал, что Capstone склоняется к освещению того, «что актуально сейчас и, возможно, не будет в следующем году». Все, что мы рассмотрели, имеет проверенный опыт использования в отрасли и часто востребовано компаниями, нанимающими разработчиков. Мы больше не изучали основы, вместо этого мы использовали то, что узнали в Core, как основу для быстрого изучения более сложных тем. Таким образом, мы в основном изучали новые темы все вместе, а не то, что уже было в Ядре.

Я очень сомневаюсь, что Capstone когда-нибудь сможет охватить технологию, которая находится на переднем крае или только недавно стала популярной. Если бы это было правдой, Capstone & Launch School преподавала бы Rust, Golang, Vue.js, базы данных NoSQL, Svelte и т.д. отрасли лет, чтобы пробовать новые технологии, потому что они хотят увидеть, жизнеспособны ли они и имеют ли они проверенный послужной список.

Как я сказал ранее, обычно Capstone охватывает алгоритмы, структуры данных, проектирование систем, базы данных, распределенные системы, приложения с полным стеком и проект Capstone. И обычно структура будет состоять из пары этих тем на определенный период времени, прежде чем будет представлена ​​следующая пара. В конце бэкэнд-курсов в Core есть видео Криса (или в начале фронтенд-курсов, я не могу точно вспомнить какие), в котором более подробно рассказывается о Capstone. Это связано с тем, что для многих студентов Capstone может быть очень далеким будущим (мне потребовалось 1,5 года, чтобы закончить Core), и лучше сосредоточиться на том, что перед вами, а не на том, что ждут месяцы или годы.

3) Кроме того, если вы можете ответить на этот вопрос, каковы ваши рекомендации, чтобы стать разработчиком программного обеспечения в Нью-Йорке (где вы работаете) по сравнению с другими городами по всей стране? Есть ли там масса возможностей для разработчиков программного обеспечения?

Нью-Йорк - фантастическое место для разработки программного обеспечения, и здесь есть масса возможностей (насколько я вижу прямо сейчас). Он фактически превзошел Сан-Франциско как лучший технологический город в США в начале этого года! Https://www.bloomberg.com/news/articles/2019-02-04/new-york-beats-out-san-francisco-to-be-world-s-best-tech-city

Если вы хотите устроиться на работу в Нью-Йорке, я настоятельно рекомендую заняться Capstone, поскольку рынок труда Нью-Йорка - это именно то, для чего создан Capstone. Практически все, чему я научился и что практиковал в Capstone, всплыло во время моих собеседований, и я чувствовал себя очень подготовленным. Тем не менее, есть много общего с рынком труда в Нью-Йорке и других городах, таких как SFO, Остин, Сиэтл, Портленд и т. Д. (Судя по тому, что я слышал).

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

Поэтому действительно важно не только иметь в своем портфолио сильный проект, но и понимать весь процесс его создания и принятые вами технические решения. Вот почему многие выпускники Capstone напишут технический документ или статью по своему проекту, объясняя все, и это действительно детали, которые впечатляют работодателей. Не многие из них будут смотреть на написанный вами код, но многие из них прочитают статью или официальный документ и зададут вопросы по проекту. Так что сосредоточьтесь на процессе и деталях и тренируйтесь объяснять их просто кому угодно. Подумайте о всевозможных вопросах, которые вам могут задать, и приготовьте на них ответы. Необязательно иметь точные ответы, но предусмотрительность поможет ДОЛГО.

Уф! Это было довольно много вопросов! Надеюсь, вы нашли их полезными :-D

@JustinZeng

Проект Capstone оказался огромным в плане собеседований и интереса со стороны работодателей. Тем не менее, отчасти это была техническая глубина проекта, но я бы сказал, что не менее важны были усилия моей команды по продвижению проекта. Я дал много этой информации в своем ответе на вопросы Джона Исома выше, но помимо написания белой книги и статьи о нашем проекте, каждый из нас также представил наш проект на Meetups. Мы также записали наши презентации и разместили их на наших личных веб-сайтах и ​​в LinkedIn. Я также включил это видео во многие свои электронные письма (как холодные представления, так и последующие действия) инженерам и менеджерам по найму, и оно оказалось очень эффективным для получения ответа и собеседования. Не думаю, что без него я бы получил столько интервью, сколько получил.

Для получения дополнительной информации о том, как я продвигал свой проект, ознакомьтесь со статьей, которую я написал о моем поиске работы: «https://jzerwick.svbtle.com/how-i-navigated-the-job-hunt-and-landed-my -работа моей мечты"

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

Да! Фактически, компания, в которой я сейчас работаю (DigitalOcean), очень удаленная! Более 60% наших сотрудников работают удаленно, и у меня есть свобода работать, где я хочу, хотя я выбрал штаб-квартиру в Нью-Йорке. И есть много компаний, которые все более охотно относятся к удаленной работе, хотя есть еще много компаний, которым требуется, чтобы вы работали в их офисе.

@Tzvi

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

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

«Launch School - это больше, чем просто обучение разработке программного обеспечения. Мои ~ 2 года обучения в Launch School привели к изменениям, которые были не просто изучением новой области, я также много узнал о себе ».

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

Я открыл для себя Anki и с тех пор использую его, чтобы быстро изучать новый материал и сохранять то, что я узнал по мере продвижения по Ядру. Я до сих пор использую его, когда изучаю новые технологии и читаю книги по работе в DigitalOcean! Я подробно расскажу об Anki в своем ответе на вопрос Фабио Селми выше, так что проверьте это, чтобы узнать больше об этом.

В начале изучения Ядра я прошел онлайн-курс Learning How To Learn и обнаружил, что методы, описанные в курсе, были чрезвычайно полезными (написание заметок, повторение с интервалами с помощью карточек, разбиение на части и получение много спать). Во время учебы в колледже я пришел к мысли, что для достижения успеха мне нужно посещать слишком много уроков и просто «много работать», жертвуя сном. Этот подход с треском провалился для меня, и во время Launch School я всегда старался спать по крайней мере 8–9 часов в сутки, если это было возможно. Курс больше посвящен исследованиям, но, по сути, полноценный сон не только даст вам заряд энергии для продолжения обучения, но и поможет укрепить связи между темами в вашем мозгу!

Наконец, я прочитал книгу Кэла Ньюпорта Deep Work, и она изменила правила игры. Еще раз, я подробно остановлюсь на этом в своем ответе на вопрос Фабио Сельми выше, но это оказало на меня огромное влияние. Это также хорошо сочетается с концепциями, изложенными в разделе Как учиться: потратьте определенное количество целенаправленных часов на изучение нового материала, а затем убедитесь, что вы достаточно выспались, чтобы укрепить эти новые связи.

О людях: Во время обучения в Launch School мне пришлось преодолеть страх упустить по сравнению с тем, что делали другие люди моего возраста. Большинство других людей, которых я знал, имели работу и очень много работали над ней в надежде получить повышение. Другие брали отпуск, чтобы путешествовать по миру и получить новый опыт. Между тем, я с родителями возвращался домой каждый день, изучая Launch School. Это было трудное приспособление, и временами мне казалось, что моя жизнь стоит на месте по сравнению с другими, даже когда я продвигался по курсам. Но я понял, что мой путь отличался от других, и это нормально. Я предпочел двигаться медленно в данный момент (во время учебы в Launch School), чтобы я мог двигаться быстрее позже (когда Я получаю отличную работу с более высоким карьерным ростом). И в результате теперь у меня есть гораздо лучшая работа, которую я люблю, и я получаю много новых возможностей, которых у меня не было раньше!

Оглядываясь назад, я думаю, что часть этого пути заключалась в признании того, что многие люди (включая нас самих) хотят сравнить то, что у них есть и где они находятся в жизни, с другими. И если что-то не складывается, наша жизненная позиция «неправильная». У меня было несколько друзей, которые не понимали, почему я ухожу учиться в Launch School, когда у меня была работа (хотя она и была ужасной. Они всегда спрашивали меня: «Так когда же ты закончишь и каков твой план?». Они не могли Не совсем понимаю, почему кто-то вырывался из «крысиных бегов жизни», чтобы заняться чем-то другим, что также имело некоторую неопределенность в конце. В конце концов, я перестал информировать их о моем прогрессе из-за этого разрыва связи, и почувствовал себя намного лучше от этого. Итак, я смог обрести гораздо более здоровое состояние и мировоззрение, когда просто сосредоточился на том, что я думаю о своем прогрессе, а не на том, что думают другие.

О себе: Лично я понял, что я слишком быстро продвигался по жизни и никогда не находил времени, чтобы сделать шаг назад и обдумать свой путь. Мои первые 25 лет жизни были безжалостным переходом из средней школы в колледж (во время которого я перепрыгнул через несколько специальностей и посвятил себя слишком большому количеству организаций / внеклассных занятий) к работе, которая привела меня к месту, в котором я нашел ... что я не был счастлив. И я понял, что у меня есть выбор: я могу либо просто решить, где я был на плохой работе, у которой не было особых возможностей в области, которая мне не нравилась, либо я мог воспользоваться шансом пройти школу запуска для что-то лучше. И за следующие 2 года очного обучения я проанализировал многое в своей жизни.

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

@DerickGross

  1. Считаете ли вы, что ваш опыт работы в SpaceCraft специально подготовил вас к той роли, которую вы взяли на себя в Digital Ocean?

Я не думаю, что SpaceCraft действительно подготовил меня к моей роли в DigitalOcean, как Core & Capstone в целом. На собеседовании я набрал очки за использование Docker в SpaceCraft, поскольку Docker так широко используется в индустрии программного обеспечения, но что действительно впечатлило их, так это техническая глубина SpaceCraft и то, насколько хорошо я мог рассказать о технических решениях, которые мы приняли при его создании. .

Могут быть ситуации, в которых заключительный / личный проект помогает получить определенные роли и подготовить вас к ним. Я думаю, что если вы хотите работать фронтенд-разработчиком, вам понадобится более широкий портфель фронтенд-проектов (на основе моих наблюдений за поиском работы), или если вы пытаетесь найти работу в машинного обучения / искусственного интеллекта, тогда вам нужно будет доказать свои навыки в этой области. Но в целом, я думаю, что работа над SpaceCraft подготовила меня в целом к ​​любой потенциальной работе, которую я мог бы получить из-за технической глубины и количества необходимых исследований, а также приобретения опыта работы в команде.

2) Пройдя процесс поиска работы и узнав о проектах других студентов Capstone, чувствуете ли вы, что сосредоточение внимания на различных навыках / методах / технологиях могло бы привести вас по другому пути к другому (без сомнения, замечательно! ) возможность?

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

Я думаю, что если вы хотите получить определенные роли, вам нужно будет соответствующим образом исказить свою учебу. Если вы хотите работать в основном над интерфейсными технологиями, вам следует действительно хорошо знать React или интерфейсный фреймворк и иметь сильное портфолио проектов, демонстрирующих вашу работу. Если вы хотите работать в DevOps, потратьте время на изучение Docker, Kubernetes, CI / CD и языка сценариев (Ruby, Python).

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

@DrewHolbrook

Спасибо, Юлиус, это действительно здорово. Я часто задаюсь вопросом, каково это быть инженером-программистом. Буду ли я чувствовать себя так, будто все еще учусь в Launch School, решаю проблемы, учусь и узнаю что-то новое? Или это будет совсем другое создание и поддержка реальных инструментов и приложений в команде? В этой связи мне очень любопытны эти три темы, которые вы затронули:

  1. День из жизни инженера-программиста.

Обычно я прихожу на работу около 9 утра и начинаю свой день с проверки электронной почты и Slack. По утрам обычно не бывает встреч, поэтому я стараюсь потратить 2 часа на работу над своими задачами. Мы следуем гибкому процессу разработки программного обеспечения, что означает, что мы выполняем двухнедельные «спринты» с частями работы, определенными в «тикетах». Поэтому я попробую кодировать на 2 часа один или несколько билетов. Кроме того, все в моей команде опубликуют сообщение на нашем канале команды Slack с подробным описанием того, над чем мы работали вчера, над чем мы планируем работать сегодня, и если мы заблокированы в чем-либо (например, нам нужна помощь по тикету).

Около 12 часов мы пообедаем в офисе Нью-Йорка, и я возьму немного еды. Я также возьму 10-минутный мысленный перерыв от компьютера: гуляю на улице или найду место в офисе, чтобы почитать.

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

В 16:00 я начинаю сворачивать свой день и записывать, над чем мне нужно поработать завтра. К 17:00 я обычно выхожу за дверь и возвращаюсь домой.

2) Каково работать профессиональным инженером-программистом?

Работать профессиональным инженером-программистом интересно и сильно отличается от учебы в Launch School. Я обычно не работаю над проектами с нуля, поскольку каждая команда в DigitalOcean отвечает за поддержку и создание определенных сервисов (небольших систем), которые вместе составляют общую программную систему DigitalOcean. Моя работа обычно заключается в создании новых функциональных возможностей в системе моей команды (система управления IP-адресами, написанная на Go), что означает, что я создаю новые конечные точки API, код, который обрабатывает и обрабатывает запросы из других систем и запросы к нашей базе данных.

Моя работа также будет включать в себя рефакторинг частей системы, которые стали слишком сложными или содержат ошибки (я думаю об этом, как о «уходе за садом», ха-ха), или проведение некоторых исследований для будущих проектов. Прямо сейчас моя команда проверяет, может ли CockroachDB заменить MySQL для нашей системы, и мы проводим некоторые исследования, что является хорошим изменением темпа.

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

3) Чем я занимаюсь на работе / Чем занимается моя команда.

Я работаю в группе программно-определяемых сетей в DigitalOcean, которая обслуживает множество сетевых систем, таких как управление IP-адресами, брандмауэры, балансировщики нагрузки и виртуальные частные облака (частные сети для клиентов). Моя роль заключается в проекте управления IP-адресами, который обрабатывает каждый IP-адрес в DO.

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

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

Я надеюсь, что это было легко! Мне приходилось несколько раз объяснять вышесказанное моим друзьям и семье, не имеющим отношения к программному обеспечению, ха-ха.

@PabloVent

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

Я практиковался в тестировании программирования в реальном времени, возвращаясь к практическим задачам курса и переделывая почти все из них. Если были какие-то проблемы, с которыми я боролся, я записывал их и практиковал снова. Обратите внимание: после первого раунда повторения задач я практиковал только те задачи, которые пытался решить в течение 45 минут. Я также рассчитал время, когда работал над ними, чтобы увидеть, смогу ли я решить эту проблему за 45 минут. Причина этого в том, что во время оценки (которая, как я полагаю, длится 1 час) я знал, что буду медленнее, потому что буду нервничать и буду говорить о своем процессе решения проблемы своему интервьюеру, что может занять больше времени, чем можно было ожидать.

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

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

Я написал статью, описывающую процесс, который использовал здесь: https://jzerwick.svbtle.com/why-you-need-an-interview-script

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

@MarkusUnger

Учитывая, что вы сейчас работаете в DO в основном с серверной частью / инфраструктурой, есть ли какие-либо технологии, языки или основы, которые вы хотели бы изучить во время Core или Capstone, потому что они кажутся необходимыми для backend- похожая работа?

На самом деле нет ничего, что я бы изменил во время Core или Capstone из того, что я помню. Я думаю, что оба они уже хороши, и любые рекомендации будут скорее отвлекать, чем поучить. Когда вы закончите Core, у вас появятся основы, необходимые для быстрого изучения навыков и технологий, связанных с серверной частью / инфраструктурой, которые необходимы для выполнения заданий, связанных с серверной частью.

«Когда вы закончите Core, у вас появятся основы, необходимые для быстрого освоения навыков и технологий, связанных с серверной частью / инфраструктурой, для выполнения заданий, связанных с серверной частью».

Сказав это, как только вы закончите с Core / Capstone, я рекомендую следующее:

@StephanieCunnane

Недавно на одном из каналов Slack вы сказали, что не хотите начинать карьеру в компании FAANG (Facebook, Apple, Amazon, Netflix, Google). Помимо того факта, что полный процесс собеседования может занять месяцы, почему еще вы изначально хотели избегать этих компаний?

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

Причина этого в том, что эти компании огромны, с сотнями, если не тысячами, инженеров, и обычно инженеры более низкого уровня задействуются в несложных проектах, которые поддерживают существующие проекты без особых возможностей для обучения или создания новых вещей. Я имею в виду, что кто-то должен делать грязную / утомительную работу по обслуживанию Gmail и Календаря Google!

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

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

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

@Tzvi

Есть какие-нибудь мысли по поводу новой версии JS?

Я больше не подписан на Launch School, поэтому я не могу подробно изучить новый трек JS, но в целом я доверяю тому, что Крис, менеджеры по тестированию и все остальные, кто работает в Launch School, делают с новым треком. Хотя я лично люблю трек Ruby + JS и считаю изучение двух языков плюсом, я также понимаю, что для людей, которые знают, что они будут сосредоточены на JS в своей карьере, новый трек является долгожданным дополнением. .

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

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

Я полагаю, что я могу посоветовать, что если вы с самого начала увлечены изучением JS или если вы очень уверены, что захотите работать фронтенд-инженером или с JS, то продолжайте и следите за JS. Если вы, возможно, хотите оставить свои варианты открытыми для внутренней разработки и хотите, чтобы в вашем резюме было два языка, то сделайте дорожку Ruby + JS.

Независимо от того, какой трек вы выберете, будьте уверены, что оба они обладают наиболее важными особенностями Launch School: основанный на мастерстве подход к изучению основ с фантастической группой технических специалистов, которые предлагают поддержку, а также чудесно поддерживающим сообществом LS!