В начале июня этого года я записался на курс General Assembly Immersive Web Development в Лондоне. Двенадцать недель обучения программированию, завершающиеся четырьмя проектами, еще кучей знаний и слегка расплавленным мозгом.

Курс предназначен для людей, которые еще не являются веб-разработчиками, но хотели бы ими стать, при этом большинство выпускников получают какую-либо работу в области кодирования. Многие из новых студентов вообще не занимались программированием раньше — возможно, в лучшем случае бесплатный курс JavaScript Codeacademy — в то время как другие вообще ничего не делали. Он начинается с фундаментальных знаний HTML, CSS и JavaScript — с некоторыми дружественными компаньонами, такими как jQuery (мой любимый), SASS/SCSS и Bulma. Затем мы переходим к node.js для серверной части, с некоторой помощью. из express.js и noSQL MongoDB. Затем идет AngularJS, а затем, наконец, ReactJS (который также является моим фаворитом). О, и давайте не будем забывать о тестировании внешнего и внутреннего интерфейса, добавленного в смесь!

До того, как я начал GA, я проходил стажировку в области маркетинговых исследований, закончив четырехлетнее музыкальное образование в Гилдхоллской школе музыки и драмы менее чем за год до этого. И вдруг я обнаружил, что просыпаюсь в 5:30 утра, чтобы ровно в 9 утра заняться ежедневным стендапом. После этого учебный день начинался с проверки домашнего задания, чтобы обсудить любые проблемы, с которыми мы столкнулись в задании. Затем нужно было изучить еще больше контента до конца дня. Это будет состоять из классов, кода и упражнений в классе — либо индивидуальных задач, либо групповых усилий. Занятия заканчивались в 17:00, но день точно на этом не заканчивался! У нас будет пара часов домашней работы сегодня вечером, в результате чего я не приду домой до тех пор, пока мне не захочется ничего, кроме как прыгнуть прямо в постель.

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

Проект 1: Оркестр «Герои»

Проект 1 должен был стать браузерной игрой, построенной на технологиях HTML, CSS и JavaScript, которые мы уже изучили в ходе курса. У нас была неделя, чтобы построить его индивидуально.

Le Héros Orchestral — это оркестровая интерпретация Guitar Hero. В игре пользователь присоединился к вымышленному l’Orchestre Philharmonique d’Amiens, возглавляемому их свирепым дирижером М. Энмаршем. Пользователь играет первую партию гобоя из оперы Чайковского Сцена 9 из оперы "Лебединое озеро" в концертной площадке по своему выбору (выбранной из списка). Просто они должны играть ноты в нужное время на своем компьютерная клавиатура. Это после, возможно, прохождения некоторых вводных страниц, чтобы установить сцену, а также введения в элементы управления в форме прослушивания.

Le Héros Orchestra построен на HTML5, CSS3, JavaScript (ES6) и jQuery. Он использует шрифты Google для типографики, Photoshop для графики и образцы Logic Pro и EastWest для звука.

Играйте в Le Héros Orchestral на GitHub Pages или смотрите репозиторий на GitHub

Проект 2: Поклонники

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

Aficionadu — это приложение для обзора ресторанов, созданное по мотивам ресторанов TripAdvisor. В настоящее время в нем есть несколько ресторанов в Лондоне и Манчестере. Зарегистрироваться могут как рестораны, так и рецензенты, что позволит ресторанам управлять своими учетными записями, а пользователям добавлять отзывы с фотографиями и временными метками. Aficionad также поддерживает модерацию комментариев.

Серверная часть Aficionadu построена на node.js, express.js и MongoDB. Внешний интерфейс визуализируется в EJS, а стилизация выполняется с помощью SASS (SCSS) и Bulma. Он использует Google Fonts для своей типографики. Aficionad развернут на Heroku.

Найдите место, где можно поесть, на Aficionadu на Heroku или на GitHub.

Проект 3: Фестинат

Festinate был первым групповым проектом курса. Это был более крупный и длительный проект, который должны были построить три человека за десять дней. Задача состояла в том, чтобы создать одностраничное приложение с полным стеком, полностью поддерживающее RESTful.

Festinate — это мобильное приложение-компаньон для фестиваля, разработанное, чтобы помочь посетителям фестиваля и упростить их работу. Он может похвастаться системой друзей, а также такими функциями, как совместное использование автомобилей и возможность пользователям добавлять свои собственные фестивали. Festinate объединяет четыре API: Filestack, Mapquest, Nominatim и Dark Skies.

Как и Aficionadu, серверная часть Festinate построена на node.js, Express и MongoDB. Интерфейс обрабатывается с помощью AngularJS. Опять же, он был оформлен с помощью SASS (SCSS) и Bulma и использует несколько шрифтов Google. Мы также использовали Mocha, Chai и nyc/istanbul для тестирования серверной части. Наконец, он был развернут на Heroku.

Откройте для себя Festinate на Heroku или посмотрите репозиторий на GitHub.

Проект 4: Орбитальный

Orbital был моим последним проектом на WDI, и еще одним, который я завершил в одиночку за неделю. У нас была возможность пойти в группе, но у меня была очень сильная идея для этого проекта, которая витала в воздухе какое-то время, так что это не имело особого смысла. Как и Festinate, Orbital — это одностраничное приложение RESTful с полным стеком.

Orbital — это мобильное приложение для знакомств, основанное на Tinder. Пользователи регистрируются, и их сразу же встречает система «нажмите влево / нажмите вправо», что позволяет им сопоставлять или «отклонять» других пользователей, отфильтрованных на основе их предпочтений. Только когда два пользователя взаимно коснулись правой стороны, у них есть возможность отправлять друг другу сообщения во встроенном в приложение мессенджере. Orbital также имеет непревзойденные, а также подробные профили пользователей, включая возможность загрузки нескольких фотографий.

Опять же, Orbital интегрирует Mapquest и Nominatim, чтобы найти город пользователя на основе его почтового индекса и рассчитать расстояние между ним и вошедшим в систему пользователем (нет функции карты, однако Mapquest Direction API вычисляет это). Он также интегрирует GIPHY API в свой мессенджер, позволяющий пользователям отправлять друг другу гифки.

Наряду с серверной частью node.js, express.js и MongoDB, Orbital может похвастаться интерфейсом ReactJS. Опять же, серверная часть была всесторонне протестирована, и я планирую попробовать выполнить тестирование передней части с помощью JSDOM и Enzyme. Он разработан с помощью SASS (SCSS), но на этот раз я решил держаться подальше от Bulma и других фреймворков CSS. Вместо этого Orbital имеет более традиционное, но забавное позиционирование. Есть даже несколько поплавков и просветов!

Посмотрите, сможете ли вы найти любовь на Orbital в Heroku или просмотрите репозиторий на GitHub.

Итак, это все здорово, но каков план на данный момент...?

Короткий ответ: продолжать кодирование!

Менее короткий ответ: продолжать программировать, но не сойти с ума, потому что у вас есть другие дела.

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

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

Первое начинание, которым я занимаюсь, — это изучение Python. Короткая беседа с инструктором в GA вдохновила меня взглянуть на это, и я уже большой поклонник. Я также изучаю React Native, с которым я все еще очень хорошо разбираюсь… Помимо того, что я планирую попробовать другие языки, такие как Swift и Java, и каким-то образом занять более высокое место в Codewars на Python, чем на JavaScript, я, конечно, все еще освежаю в памяти вещи, которые я уже знаю.

Я полагаю, это подводит меня к тому, почему этот профиль и этот пост существуют. Во время GA я думал о ведении блога, но так и не решился из-за того, насколько напряженным и плавящим мозг часто может быть курс. В каком-то смысле я очень раздражен тем, что каким-то образом не нашел на это времени. Но никогда не поздно начать. Будучи выпускником WDI всего пару недель, я не могу не думать, что это только начало. Раньше мне нравилось программировать, но теперь я люблю это больше, чем мог себе представить. А так как у меня зависимость от кодирования и от новых языков программирования, мне не терпится увидеть, что у меня получится!