Рубрики
Без рубрики

Сеть выпускников FreeCodecamp: сеть домородов наложений для выпускников FCC

от Петервейнберга Сеть выпускников FreeCodecamp: сеть домородов наложений для Alumnimy for FCC Alumnimy “Общественный” страница профиля “- видна только для других участников FCCAN в прошлом году, я проводил почти все мое свободное время, изучающее код. Я был постоянным участником FreeCodeCamp, работая над различными проектами, такими как

Автор оригинала: FreeCodeCamp Community Member.

от Петервейнберга

В течение последнего года я проводил почти все мои свободные времену, узнав код. Я был постоянным участником FreeCodecamp, работая над различными проектами, такими как новый Реагировать и Бета Учебные программы, Тестируемые проекты , загруженный CDN передний тестовый люкс.

Но около 3 месяцев назад я устроил навыки моим кодировщиком в большом смысле. У меня были только один критерии: я хотел бы воспользоваться моим самым большим кодировкой.

Окончательный результат является кульминацией по 2 усилиям по обслуживанию, 60 дней разработки, а также сотни часов работы. И, конечно же, проект, который я невероятно взволнован, чтобы представить: Сеть выпускников FreeCodecamp (FCCAN)!

FCCAN – это расширение сообщества FreeCodeCamp, где могут прийти владельцы хотя бы одного сертификата FreeCodecamp.

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

  • Безшовная аутентификация пользователя Отказ Войдите в систему, используя учетную запись GitHUB и проверить своими учетными данными FreeCodeCamp.
  • Возможности наставничества Отказ Дополнительная программа наставничества для перспективных наставников и предписаний.
  • Первый профиль Отказ Определите навыки и интересы кодирования, персональные статистики, статус наставности и многое другое.
  • Поиск участников Отказ Поисковая система, которая поможет вам найти других участников (и потенциальных наставников) на основе навыков, интересов, местоположений и многого другого.
  • Сотрудничество. Ищете помощь в вашем новом приложении? Поделитесь своими проектами с открытым исходным кодом с другими туристами здесь.
  • Не пропадай. Определил потенциальный наставник? Обратитесь через FCCAN Private Chat или посетите публичную комнату, чтобы разговаривать все код.

FCCAN – это платформа, которую поможет вам принять ваши отношения с вашими коллегами на следующий уровень.

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

Наш новый дом – www.fcc-aulumni.com Отказ

Всегда есть комната для улучшения, но мы довольно довольны MVP, которые у нас есть, и мы надеемся, что вы тоже будете.

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

Активное развитие будет продолжаться в этом проекте, поэтому, если вы найдете ошибку или имеете предложение для функции, не стесняйтесь открыть проблему . Если вы заинтересованы в содействии, мы уже собрали Несколько предложений Из нашей команды и бета-тестеров, с которыми мы бы понравились помощь! Пожалуйста, проверьте нашу Руководящие принципы вклада Если вы хотите узнать больше.

Теперь, когда вы видели проект (и создали полностью RAD профиль!), Я надеюсь, что вы будете придерживаться, чтобы услышать нашу историю.

Три месяца назад я думал, что кодировать что-то на этом уровне было то, что я никогда не смогу сделать. Чувство, которое я знаю, что многие туристы могут относиться к.

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

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

За это время я поднял некоторые основные навыки в JavaScript, Rect, HTML5, CSS3 и SASS. Вы можете признать их как некоторые основные навыки, ездили в текущей учебной программе FreeCodeCamp.

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

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

Я обнаружил, что я узнал гораздо более быстрее, когда работал с другими программистами. Так что я добрался до Шанс Макалистер (ака Шанс принят ), отец и организатор Chinging Cohorts Отказ Шанс регулярно чемпионов Групповые проекты внутри когортов, и он настроил меня с командой, которая недавно закончила свой собственный проект.

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

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

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

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

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

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

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

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

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

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

  • Рабочая регистрация пользователя/аутентификация
  • База данных для хранения пользовательских данных
  • Интерфейс для пользователей для ввода, редактирования и поддержания личных данных
  • Способ для пользователей общаться друг с другом в приложении
  • Функция поиска для пользователей найти друг друга
  • Эффективное маршрутизация с одного взгляда к следующему
  • Управление государством управлять сложным состоянием приложения

И это было просто чтобы получить нас от земли! Мое желание сбылось – это было формирование самого сложного и сложного проекта, которое я когда-либо принимал.

Мы определили наш технологический стек и добрались до работы. Мы выбрали Classic FreeCodeCamp, и выбрали REVENTJS в качестве JavaScript Framework, а в полной мере охватывающую этот выбор, redux и React-redux были естественными дополнениями к смеси для управления государством. База данных MongoDB и задний конец Express/Nodejs завершил ядро нашего приложения. Мы загрузили наш проект с помощью React-App-App, сделали некоторые твики для поддержки SASS, установили армию пакетов NPM и были на нашем пути.

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

Тем не менее, через некоторое паре программирование, и, работая очень тесно с моим товарищем по команде, Шон Смит Я смог преодолеть все технологическое препятствие, которое я столкнулся с которым я столкнулся.

После настройки приложения Create-React-App для работы с прокси-сервером наш первый шаг должен был реализовать аутентификацию пользователя и регистрацию. Это была довольно вызов – мы хотели разделить регистрацию от самого приложения (менее чувствительные данные для нас для управления, меньше имена пользователей и паролей для вас). Таким образом, включение в систему на основе GitHub через Passportjs казалось, как путь.

Тем не менее, нам также нужно было реализовать какой-то процесс проверки пользователей, поскольку мы хотели обеспечить обеспечение того, чтобы члены фактически были выпускники FreeCodeCamp (то есть туристы, которые заработали хотя бы один сертификат). После разработки Техника подсчета конечной точки перенаправления Для проверки пользовательских сертификатов с использованием Axios Мы были наконец на нашем пути!

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

Рядом был борьба с государственным управлением. Например, чтобы создать страницу профиля пользователя, ядро пользовательского опыта FCCAN, нам нужно было реализовать функции Crud, или создавать, чтение, обновление и удаление.

Страница предпочтений очень редактирована – над дюжинами полями делает для некоторого сложного состояния, слишком сложную для реагирования на управление в одиночку. Это была работа для Redux. Это означало, что мы управляем штатом на 3 отдельных уровнях, охватывающих оба конца стека: с реагированием на уровне компонентов, с Redux на уровне хранилища, а также с MongoDB на уровне базы данных.

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

Вот еще один отличный пример, который в отличие от нашего примера Crud, использует только реагирование и redux (см. Гиф ниже):

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

Состояние Управляемое локально реагированным, ясно, как только компонент размонтирует, но передает это состояние для redux позволяет сохранить это состояние за пределами жизненного цикла компонента реагирования и передавать его в базу данных по мере необходимости, позволяет сохранить это состояние за пределами жизненного цикла. магазина Redux, который существует по своей природе только до тех пор, пока сохраняется только сеанс пользователя.

Самая сложная реализация функциональности CRUD в приложении FCCAN является нашей функцией чата. Хотя это не может показаться типичной реализацией CRUD, основные принципы одинаковы одинаковы.

В основном база данных является нашим единственным источником правды. Для любого криста, мы публикуем на маршрут, который обрабатывает это действие. Если, и только если, мы получим успешный ответ с сервера (указывая, что база данных актуальна с этим действием), мы передаем обновление в режиме реального времени через сокет. Добыча Одновременно мы отправляем действие, которое выполняет обновление на UI через Redux, где данные чата сохраняются с использованием структур данных ImmutableJS.

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

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

Для более гранулированного контроля над стилем мы дополнены семантическими с помощью некоторых пользовательских стилей SASS и Стильные компоненты Отказ Стильные компоненты представляют собой более новый пакет CSS/JavaScript для реагирования, который позволяет для более интуитивных и условно оказываемых CSS, записанных непосредственно в ваши компонентные файлы. Я настоятельно рекомендую вам проверить это.

После того, как мы сделали нашу основную функциональность, мы были готовы к нашему следующему большим шагам: развертывание.

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

Мы настроили Heroku, подписанные на облако размещенные экземпляры MongoDB и Redis, и после нескольких часов устранения неполадок и 19 коммит, мы достигли другого основного ориентира. Бета-версия FCCAN была наконец живи!

Хотя это было не так великолепно, как я надеялся, это было бы. Как только приложение было жить, некоторые новые проблемы были немедленно доведены до света. Для одной вещи нам нужен гораздо более сильный мобильный интерфейс (который мы не смогли надежно проверить до этой точки). И, конечно же, совместимость кросс-устройств была серьезной проблемой.

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

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

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

Таким образом, вместо того, чтобы вытащить в семантике через CDN, мы используем их инструменты сборки Gup Plop и пользовательские тематические возможности и построили пакет непосредственно в наш проект. Результаты были фантастическими. Сайт отправился с липкого и непрофессионального чувства, к острому и выдающемуся фретодекампере зеленый.

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

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

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

Вместо этого выйдите и найдите то, что дважды или в три раза больше всего, что вы когда-либо делали раньше.

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

Присоединяются ли 1 или 100 человек в сети выпускников FreeCodecamp, это все это стоило. Если вы можете относиться к мышлению, у меня было до того, как я начал разработку этого проекта, я бы побудил вас подумать о том, что представляет вашу следующую самую большую проблему, атаковать его и владеть им! Я надеюсь, что у вас будет так же весело с этим, как я.

Оригинал: “https://www.freecodecamp.org/news/the-freecodecamp-alumni-network-a-homegrown-mentorship-network-for-fcc-alumni-529e4531c34f/”