Скільки часу займає безкоштовний табір коду?

Кінець зими я провів у каюті на сонячних батареях з пічним підігрівом у Північній Юті. Душу не було, але ми встановили супутник на дах і зуміли втягнути швидший Інтернет, ніж моя квартира в Сан-Франциско. Я вирішив навчитися кодувати.

Я хотів використати ізоляцію, щоб дізнатися щось нове. Я технічно налаштований настільки, наскільки пам’ятаю, але мої минулі спроби кодування дали не вражаючі результати.

Я вивчив деяку C ++ у середній школі, але здебільшого писав гігантський повторюваний код, бо не розумів функцій. Я пройшов курс Visual Basic .NET у нижчих класах, але пам’яті про те, що там відбувалося, майже не пам’ятаю. Кілька років тому я пройшов курс Codecademy з JavaScript у гамаку в Гватемалі.

Я думаю, що цей звивистий шлях не до кінця навченого мене якось підготував. Я також отримав диплом з комп'ютерної графіки, який був набагато більше зосереджений на дизайні, анімації та моделюванні, ніж на кодуванні, але це дало мені деякі фундаментальні знання HTML / CSS.

Про "навіщо кодувати" написано багато, тому я не буду бити тут мертвого коня.

Коротка версія така: розумні люди, схоже, погоджуються з тим, що знання кодування - це множник сили майже для всього іншого у вашому житті.

Покопавшись в Інтернеті, щоб визначити найкраще місце для початку, я вирішив розпочати роботу через Free Code Camp. На другому місці вийшов The Odin Project, але Reddit, здавалося, погодився, що FCC є сильнішою відправною точкою. І з якоїсь причини я довіряю розуму вулика Reddit, коли справа доходить до цього.

Тож я поставив невелику початкову мету - 2 години на день і встановив RescueTime, щоб відстежувати себе. Ось короткий погляд на те, як це відбувалося.

ДЕНЬ 1

Я швидко пропрацював перші три розділи. HTML5 / CSS, Responsive Design with Bootstrap та jQuery мали загальний час завершення 13 годин, але за даними RescueTime я їх вибив лише за чотири. У цей момент я задумався, чи не роблю щось не так, але вирішив привітати себе і продовжувати рухатися вперед.

3–4 ДЕНЬ

Я ходив на перекладі і плавно рухався по розділу Basic Javascript. Рано вранці 3-го дня я вперше відчув застрягання під час вправи «Пошук профілю», що передбачає використання циклу для ітерації масиву об’єктів. Але до 22:30 я пройшов майже половину сценарію створення базового алгоритму (і, згідно з даними RescueTime, я витратив загалом 12 годин 20 хвилин на табір Free Code).

Наступного ранку я почав перебирати решту основних алгоритмів, писаючи деякі рішення протягом 3-5 хвилин. У чаті FCC я підтвердив, що багато людей починають відносно швидко і сповільнюватися з часом, оскільки відносна складність зростає (таким чином, передбачуваний час завершення стає більш реалістичним).

Тим не менш, до ночі четвертого дня я завершив алгоритми загальною сумою 18 годин на FCC (і, за оцінками, 22 години загальної кількості робочого часу, витраченого на інші дослідницькі ресурси, такі як Mozilla Developer Network. Оцінка на цей момент було 75 годин.

Мій початковий мікроціль - 2 години на день - змусив мене думати, що я закінчив 100 годин роботи до того часу, як покинув свою криївку в штаті Юта. Тепер, коли я справді надихнувся роботою, яку провів 75% там, де хотів бути, всього за чотири дні.

ДЕНЬ 17

Я перейшов у режим основного зниження голови і протягом двох тижнів не робив жодних записів про прогрес. Погана новина полягає в тому, що там мало що повідомляється, але хороша новина полягає в тому, що FCC тримав мене в потоці протягом двох тижнів підряд. До цього моменту я заповнив скелетний портфель (зараз трохи м’якіший) і створив машину з випадковими цитатами, а також справді жахливий додаток для погоди, натхненний Власником кілець. 17-го дня я подав свій переглядач Вікіпедії. Навчитися користуватися API було весело та корисно. Виявляється, ви можете створювати речі середньої складності, не розуміючи внутрішніх серверів або баз даних (ви можете просто підключити чужі)!

23–24 ДЕНЬ

Працюючи через проміжні алгоритми, я виявив, що починаю бачити різницю між чистим і потворним кодом. Я також почав вбудовувати в свій код більше приміток для подальшого перегляду. Якось так довго мені потрібно було зрозуміти, що console.log ("тести") завжди виплескується на консолі розробника JS у браузері. Я почав використовувати //repl.it для запуску коду, який відображав би журнали консолі як чіткий вихід. Зараз соромно, але привіт - я не дозволив мені це зупинити, і тепер ти знаєш краще.

Я вперше розбив свій браузер, працюючи через Sum of All Primes. Незважаючи на це, я врешті-решт розробив цю проблему і відчував себе справді чудово, вирішивши 99% простої функції без жодних зовнішніх досліджень.

31–33 ДЕНЬ

Я знайшов завдання розширеного алгоритму досить… ну… просунутими. Я був дуже в захваті, коли всього за 90 хвилин закінчив розширений алгоритм "Дружні дати". У двох із цих вдосконалених алгоритмів я посилався на певні функції від StackOverflow, щоб допомогти з чистотою мого коду. У той час, коли я переживав, це може повернутися мені боляче, але багато ресурсів, з якими я стикався, стверджують, що чудовим програмістом стає здатність задавати конкретні запитання пошуковій системі. Наприклад, створення JS-версії алгоритму Heap's з нуля було б математикою високого рівня та новим винаходом колеса. Пошук моделі JavaScript, з якої я міг працювати, дозволив мені фактично закінчити будівництво автомобіля.

На 33 день я завершив останнє з найсучасніших завдань кодування. Наступний проект (перший із проектів Advanced Front End Development) вимагав побудови калькулятора JS. Було приємно заглибитися в сторону HTML / CSS. Я вирішив цю проблему завдяки кодуванню в прямому ефірі на каналі FCC Twitch і в підсумку завершив проект із живою аудиторією з 24 осіб. Це був чудовий досвід, який вимагав від мене пояснення мого коду під час написання. Живе кодування також має необхідну підтримку імпульсу. Це винагороджує стиль кодування "швидко рухайся і розбивай речі" за більш важкий метод.

ДЕНЬ 40

Кодування гри Tic-Tac-Toe виявилося (для мене) найбільш виснажливим проектом з усіх. Для мене кодування ШІ було не дуже веселим чи задовольняючим. На мій погляд, мій кінцевий результат мав слабкий ШІ та інтерфейс нижчого рівня. Тоді я думав, чи, можливо, побудова таких інтерактивних речей просто не є моєю пристрастю.

ДЕНЬ 45

Я божевільно працював над остаточним проектом, який вимагав копію JavaScript гри Саймона 1970-х років, укомплектовану необов’язковим «строгим режимом» та зростаючою швидкістю гри. Я твердо вирішив зробити це винятковим. На момент написання цієї статті я все ще відчуваю, що мій Саймон - одна з найкрасивіших версій. На 45 день я закінчив проект і взяв свій сертифікат Front End Development!

Підсумкова статистика:

77 годин довідки та навчання

67 годин розробки програмного забезпечення

41-годинне спілкування (включаючи чат FCC)

= 185 годин протягом 45 днів (або ~ 4 години / день)

Я закінчив навчальний план приблизно в половині часу.

Я не можу рекомендувати програму Free Code Camp Front End Dev. Незалежно від того, скільки часу у вас знадобиться, це безкоштовно, його легко розпочати, і в ньому є розумна та доступна спільнота (якщо я так кажу).

Я відчув себе інтелектуально голодним, а навчання кодуванню забезпечило задоволення старим розумовим м’язам. Я повертаюся до Сан-Франциско і маю намір продовжити цю подорож у галузі технологій.

Якщо ви вчитесь кодувати, ставіться до своєї освіти як до роботи, якою вона є. Слідуйте за мною та повідомте мені, як я можу допомогти! Ніколи раніше величезні здобутки ітеративного прогресу не були настільки чіткими, як при навчанні кодуванню.