Программа 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, который давал очень ценные советы по работе с приложением. :)