Я прохожу девятую неделю 13-недельного иммерсивного курса по веб-разработке в General Assembly в Атланте. Я немного знал язык программирования Python до того, как начал изучать курс, но все это было самоучкой, и я не применял язык за пределами онлайн-руководств. Ранее на этой неделе я представил свое первое комплексное приложение с полным стеком. Я мог бы написать тома обо всем, что я узнал между этими двумя пунктами, но я хотел бы поделиться тремя вещами, которые я узнал о себе во время этого курса.

Для контекста, моим первым проектом была версия Jeopardy, которую я создал с помощью HTML, CSS и JavaScript. Это определенно раздвинуло границы моих возможностей на тот момент, но задача была очень захватывающей. Примечание автора: с ответами не спорят; все они, несомненно, правы.

Для своего второго проекта я создал Fitbrary: веб-приложение, которое позволяет пользователям бороться с монотонностью фитнеса, создавая тренировки и просматривая тренировки, созданные другими. Я добавил Node.js с Express к инструментам, которые использовал в первом проекте для создания рендеринга на стороне сервера. Мне казалось, что после этого проекта я могу называть себя (младшим) веб-разработчиком. Это был первый раз, когда я использовал базу данных (MongoDB) для хранения данных, вводимых пользователем, и представления информации пользователю.

Я добавил React.js в свой набор навыков для Due Point, моего третьего проекта, который представляет собой веб-приложение для создания и просмотра карточек. Этот проект расширил мое понимание того, что я могу построить. React позволил мне модулировать мой интерфейс и хирургическим путем обмениваться данными между клиентом и сервером. Я также достиг своей цели, разработав функцию обзора, которая представляет карточки пользователей в случайном порядке. У пользователя есть возможность удалить карты из колоды, на которые он ответил правильно, или положить карты, которые он неправильно ответил, обратно в колоду и перетасовать.

Три моих главных вывода:

1. Внимание к деталям

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

2. Подробное планирование - ваш друг

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

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

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

3. Системное мышление - это все

Моя проповедь системного мышления не уступает веганам и кроссфитерам.

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

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

Веб-разработка и системное мышление действительно соединились для меня при создании Due Point. Я смог применить системное мышление, чтобы понять, что React делает на интерфейсе, что делает Node.js / Express на сервере и как они обмениваются данными. Как только я смог изолировать причинно-следственные связи между компонентами (как компонентами React, так и компонентами приложения в целом), я смог резко сократить время устранения неполадок. Для меня это был огромный прорыв.

Мне еще предстоит пройти долгий путь

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

Мой профиль GitHub (содержит все репозитории проектов): https://github.com/jacksonmcgehee