Рассказ о том, как я переключился на карьеру веб-разработчика, и краткий обзор некоторых ресурсов, которые я использовал (Udacity, Coursera, Khan Academy)

Лето 2015 года. После непродолжительной работы в течение 6 месяцев в качестве стажера по маркетингу в довольно крутом стартапе в Дублине я решил вернуться в свою родную страну без реального плана.

Будучи выпускником отдела маркетинга, я начал искать работу в сфере маркетинга, и в течение этого периода я чувствовал себя обязанным посетить новые курсы веб-разработки на Khan Academy, веб-сайте, который я раньше использовал для изучения некоторых основ программирования. Я прошел несколько курсов и через пару недель заметил, что трачу 5 или 6 часов в день на изучение этого материала.

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

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

Со свежим чувством приверженности и особой мотивацией вернуть себе автономию я увеличил количество учебных часов с 5 или 6 в день до 8-12 часов. Этот процесс длился несколько месяцев, и в итоге я прошел через него. множественные эмоциональные состояния: от возбуждения и мотивации до периодических периодов легкого отчаяния до ощущения, что я теряю постоянно ослабевающее чувство здравомыслия, а затем снова к возбуждению и так далее. Взад и вперед. Снова и снова. Несколько раз (слава богу, что мама готовит).

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

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

Академия Хана

Сначала я выбрал Khan Academy из-за того, как легко было начать. То, как это работает, тоже было отличным: я писал код, и вывод немедленно обновлялся в маленьком окне. Несколькими годами ранее я пытался изучать C ++, читая статьи, что было довольно сложно, если вам некому было помочь. Однако на этот раз у меня была довольно удобная визуальная поддержка, и не было никакого процесса компиляции / сохранения / запуска, в отличие от других языков программирования или методов обучения. Это позволило мне сосредоточиться только на обучении и обучении.

Однако многие вещи были для меня непонятны: меня очень расстраивало то, что я не мог понять разницу между собственным синтаксисом JS и синтаксисом, принадлежащим сторонним библиотекам (которые использует KA). Мне также показалось немного странным, что я не мог понять, как сделать проекты, над которыми я работал, доступными где-либо еще за пределами среды Kahn Academy.

В любом случае, поскольку я ранее прошел базовый курс JS, я перешел ко всему остальному: я проверил курсы по HTML / CSS, SQL и jQuery, и я научился использовать программирование для создания игр. Особенно интересным был курс «Моделирование природы», где студенты учатся применять программирование для создания анимаций, имитирующих различные явления, такие как гармоники, магнетизм и генерация частиц.

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

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

Плюсы

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

Минусы

  • Проблемы программирования казались плохо разработанными, поскольку контент становился все более сложным.
  • Учителя и проблемы иногда были слишком дружелюбными / ребячливыми, что, безусловно, отлично работает для младших школьников. Однако, учитывая, что часть материала была слишком сложной, это было просто странно. Представьте, что на «Улице Сезам» обсуждались такие понятия, как непертурбативная перенормируемость и ковариантность диффеоморфизмов. (Кстати, я совершенно не понимаю, что означают эти слова).
  • Было немного сложно получить помощь и задать вопросы. Что очень понятно, учитывая, что все равно все бесплатно.
  • Способ составления задач требовал, чтобы учащиеся выполняли их иногда очень специфическим образом (вы могли написать правильные решения, которые не были бы приняты алгоритмом оценивания).
  • Он очень зависит от своей конкретной среды, из-за чего студентам немного сложно использовать свой код где-либо еще (хотя это возможно).

Udacity vs Team Treehouse

Итак, после завершения всего, что я должен был закончить в Khan Academy, я хотел перейти к ресурсам, которые казались более профессиональными. Пытаясь понять, что для меня наиболее разумно, читая обзоры и мнения, я сузил выбор до Udacity и Team Treehouse.

Команда Treehouse казалась очень хорошо организованной. Несколько более профессиональная и отточенная версия Khan Academy. Udacity казался больше и немного запутаннее (по крайней мере, в то время). В конце концов, я выбрал Udacity, потому что он, казалось, был больше ориентирован на обучение всему новому набору навыков, а не на определенных языках или инструментах. Кроме того, все содержимое Udacity бесплатное (хотя только в платной версии есть обучение, оценивание, проверка кода и т. Д.), Тогда как Team Treehouse требовала ежемесячной платы (что на самом деле казалось очень доступным).

Udacity

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

1 - Введение в информатику

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

2 - Языки программирования

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

3 - Веб-разработка

Этот довольно интересный, потому что ему преподает один из основателей Reddit. Его собственный опыт разработчика часто использовался для того, чтобы сделать несколько очень полезных замечаний, что было довольно забавно. Однако весь курс казался поспешным, так как слишком много сложных концепций двигались слишком быстро. Тем не менее Стив Хаффман как учитель дал четкие объяснения.

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

Coursera

Моей целью было записаться на курсы Udacity Front End Nanodegree, но я решил попробовать ввести HTML CSS, JS от Coursera после того, как некоторые друзья порекомендовали его мне. Я чувствовал, что изучение одних и тех же концепций из разных источников может быть полезным.

Несмотря на то, что учитель очень тщательно объяснил и, казалось, четко понимал точку зрения студентов, изучающих этот контент, курс казался слишком традиционным и совсем не адаптированным для онлайн-обучения. И у Khan Academy, и у Udacity были новаторские способы преподавания. В первом использовалась вышеупомянутая система двойных блоков (код и вывод), а во втором были видеоролики, на которых учителя рисуют и пишут на доске (на самом деле, планшете) при объяснении концепций. Курс Coursera мало чем отличался от лекции, снятой на пленку. Но, как я уже сказал, содержание было объяснено очень четко, что было действительно приятно.

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

Назад к Udacity

К настоящему времени я потратил около 6 недель на онлайн-обучение. Я, наконец, собирался погрузиться в конкретную область так, чтобы она была структурирована так, чтобы максимизировать ценность работы. В этом случае, ознакомившись с курсами Front-End Nanodegree от Udacity.

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

Мне очень понравилась идея, лежащая в основе Nanodegrees: их структура была сосредоточена на том, чтобы студенты выполняли несколько сложных проектов во время обучения на связанных курсах. Это означало, что у вас была свобода создать что-то самостоятельно и поместить это в свое портфолио (хотя некоторые из этих проектов частично настроены для вас ранее).

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

Это была самая важная часть моего учебного процесса, поэтому я кратко расскажу, как все прошло. Nanodegree был разделен на 6 проектов, которые студенты должны были завершить:

1 - Создание сайта-портфолио

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

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

Что касается проекта, я закончил его в соответствии с их спецификациями и улучшил дизайн после поиска вдохновения в Интернете. Вы можете проверить это здесь: http://pesteves8.github.io/

2 - Интерактивное резюме

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

Курс знакомит с несколькими важными концепциями, такими как сторонние библиотеки (jQuery) и использование JSON в качестве структуры данных, при этом вкратце требуя от студентов немного взаимодействовать с внешним API (Google Maps). Сам проект был очень полезен для меня, так как я фактически использовал его как свое онлайн-резюме. Я также сделал из него PDF-версию.

3 - Клон классической аркадной игры

Я действительно любил эту. Содержание вспомогательного курса (Объектно-ориентированный Javascript) было намного сложнее, но я совсем не возражал, потому что преподаватель был действительно хорош. Этот курс прояснил множество очень запутанных понятий о Javascript. Что касается проекта, это было действительно весело, и через несколько месяцев после его завершения я все равно иногда возвращался к нему, чтобы что-то изменить или добавить. Я был очень благодарен учителю за ясные объяснения. Не стесняйтесь играть, конечный результат: https://pesteves8.github.io/frontend-nanodegree-arcade-game/

4 - Оптимизация веб-сайта

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

5 - Карта района

Поддерживающий курс для этого проекта был аналогичен курсу об объектно-ориентированном Javascript. Отличный учитель, очень медленные ясные объяснения и отличный баланс между легкими, юмористическими и более серьезными вещами. Учитель, Бен Джаффе, казалось, довольно хорошо понимал, что чувствуют студенты во время курса. Этот курс был непростым, поскольку он знакомит с фреймворками одностраничных приложений (SPA).

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

6 - Тестирование считывателя каналов

Это небольшое введение в тестирование. Нечего сказать. Это было коротко и мило.

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

Наконец, я решил изучить кое-что, о чем постоянно упоминали в Интернете (например, AngularJS), и в итоге создал собственный проект. Он называется mrMDB и представляет собой агрегатор iMDB, Metacritic и Rottentomatoes. Учитывая мой интерес к кино, я просто подумал о создании чего-то, что я бы использовал.

Я также убедился, что изучил еще несколько наиболее часто упоминаемых инструментов и концепций, которые найду в Интернете. Такие вещи, как AngularJS, ECMAScript 2015, Webpack, препроцессоры CSS, модульный JS и т. Д.

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

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

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

Результат

После всего этого я начал рассылать резюме. Это заняло некоторое время, но, в конце концов, я получил пару ответов, и, приняв один из них, я получил еще 2 или 3. Вот и все, в чем я участвовал. Затем, через 6 месяцев после начала моей новой карьеры, я получил продление контракта и повышение (действительно, очень хорошо).

После этого я зарабатывал столько же, сколько и любой другой программист моего уровня, меня часто посещали в Linkedin, и я чувствовал себя вполне комфортно с тем фактом, что у меня была работа, которая мне нравилась, в довольно безопасной отрасли. Между прочим, эта работа была сосредоточена на Angular, и мне также требовалось быстро изучить и понять внутреннюю разработку с помощью C # /. NET.

С тех пор я закончил Full Stack Web Developer Nanodegree, а после этого я прошел Senior Web Development Nanodegree. Следует отметить, что я не приложил и половины усилий к этим Nanodegrees, как я сделал с разработкой Front-End Web Development. Я просто хотел убедиться, что лучше понимаю некоторые концепции, в которых я еще не разбирался.

Заключение

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

Опять же, у меня была возможность остаться в это время у родителей, чего не смогли бы сделать многие люди с семьями и счетами, которые нужно оплачивать. Я хочу сказать, что на самом деле я не собираюсь говорить что-то вроде «Хочешь чего-то добиться? Это просто: усердно работайте, делайте это! НЕ БЫТЬ КИСКОЙ! » или что-то в этом роде. Жизнь каждого человека индивидуальна, и я хорошо осведомлен о своих удачных обстоятельствах.

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

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

Ага, это определенно захватывающие времена!

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