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

➡️ Github Repo доступен здесь ⬅️

📄 Содержание

«Скажи мне, и я забуду, научи меня, и я могу вспомнить, вовлекай меня, и я учусь».

- Бен Франклин

Немного предыстории

Увидев полученные сертификаты на странице о FreeCodeCamp, я понял, что создание внутреннего сертификата должно быть непросто.

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

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

Некоторые данные

Прежде чем описывать свои основные выводы, я хочу привести некоторые данные.

Я собирал данные с помощью WakaTime, который легко интегрируется в ваш редактор и отслеживает ваше время, которое вы тратите на Repos.

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

Глядя на Github, я уже начинал с этого проекта в декабре 2016 года.

Так что имейте в виду, что даже данные, которые я показываю, не соответствуют моим реальным усилиям!

Числа

  • Я потратил на это приложение около 120 часов.
  • Большая часть времени (13 часов) ушла на создание файла маршрутов. В основном реализует REST API.
  • Второе место с затраченными 12 часами занял файл NewPoll.js для внешнего интерфейса. Это произошло благодаря усилиям по интеграции нового опроса в экосистему React & Redux, в результате чего я занял 3-е место.
  • С 12 часами на уток для Redux. Файл ducks содержит большую часть кода, относящегося к Redux, т.е. ActionCreators, Действия, Редукторы. Неизменяемое состояние и асинхронные действия требуют очень много времени, чтобы понять и правильно реализовать.

Смотрите сами результаты WakaTime.

Опять же, особенно для интересующихся новичков, в целом я потратил время на кодирование с мая до настоящего времени (середина августа):

  • За это время я потратил около 240 часов на кодирование
  • большая часть этого в JavaScript
  • большая часть его использует код Visual Studio
  • в среднем 2 часа в день

Рассматривая это в перспективе

Помните, что это лишь очень небольшой объем моих усилий.

  • Это на Github.
  • Слишком поздно отслеживается с помощью WakaTime.
  • Просто отслеживание времени в редакторе собственно кодирования.

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

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

Общие и мотивационные выводы

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

Если вы потратите более 250 часов на кодирование (+ сторонние проекты и код в работе) за 4 месяца, то получите примерно 60 часов в месяц и 15 часов в неделю.

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

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

Я не гений, но, конечно, не тупой. (По крайней мере, по некоторым тестам: D)

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

Выводы для начинающих

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

Почему это так?

Для меня в каждом проекте есть свои ключевые выводы. В этом проекте это было соединение интерфейса и бэкенда и использование Redux в React. Чтобы следить за процессом обучения, я заставляю себя взяться за следующее приложение. Повторно используйте то, что я узнал, и сможете увидеть новые проблемы в ином свете.

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

Ссылки

  • Репозиторий на Github доступен здесь.
  • Живая версия результата доступна здесь.
  • Документация строительства здесь.

Спасибо, что прочитали мою статью! Не стесняйтесь оставлять отзывы!

Большое, большое спасибо Edo Rivai, который давал очень ценные советы по работе с приложением. :)