Як я закінчив всю навчальну програму freeCodeCamp за 9 місяців, працюючи повний робочий день

Протягом минулого року я закінчив усю навчальну програму freeCodeCamp, працюючи повним робочим днем ​​викладачем. У цій статті я розповім, як мені вдалося це зробити. Зокрема, як я організував свій час і які додаткові матеріали використовував.

Передумови

По-перше, минула історія. Я не був абсолютно новим у кодуванні. Я виріс у невеликій технологічній компанії.

Мій батько заснував власну компанію ще до мого народження, де вони проводили різні заходи в галузі технологій, такі як виправлення комп’ютерів, налаштування Інтернет-з’єднань та мереж для інших компаній, викладання комп’ютерних курсів та створення адміністративних програм для компаній. Це було маленьке містечко, тож вони в основному були “технічними хлопцями” для всього міста.

Офіси компанії були в нашому будинку, тому я буквально виріс серед комп’ютерів та людей, які їм сподобались. Я почав гратися з Visual Basic ще в дитинстві (один із хлопців у компанії навчив мене, як ним користуватися), і я проводив увесь свій вільний час в Інтернеті, спілкуючись з колегами-ботаніками.

Коли мені було близько 12 років, один з цих ботаніків надіслав мені електронний посібник з веб-розробки (величезний файл .txt, який в основному займався HTML), і я використав його для створення власного фан-сайту. У нього навіть був один із тих крутих лічильників відвідувань.

Я розмістив його на Geocities, отримав безкоштовну коротку URL-адресу та перерахував на Yahoo та AltaVista (це були найбільші на той час).

Після цього відбулося життя, і я повністю відмовився від ідеї бути програмістом, оскільки обставини вимагали більш «реалістичного» підходу. Зараз я не буду вдаватися в подробиці, але в основному мені довелося кинути навчання та влаштуватися на роботу.

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

Як я вирішив змінити кар’єру

Я люблю викладати. Це корисна професія, цікава та весела. Але це має і свої мінуси. Спочатку все здавалося викликом, але через стільки років, зробивши це, я почав відчувати, що не маю мети. Що я вже не рос і не вчився.

Я відчував застряг. Наче моя робота була точно того ж року в рік. Я просто переглядав ці клопотання. Це також не дало багато можливостей для переїзду, що стало для мене дуже важливим згодом.

У 2013 році я познайомилася зі своїм чоловіком, а наступного року ми вирушили у тримісячну подорож по рюкзаках до Європи, що є абсолютно іншою публікацією в блозі, але в основному це був надзвичайно низький бюджет, і ми мали приголомшливий досвід. Ми любили Європу, і ми вирішили, що повернемося в чергову довгу подорож.

Минав час, ми займалися іншими справами, і тоді я знайшов Codecademy і почав з нею гратися, іграти з ідеєю стати штатним розробником. Я вже мав певний досвід створення веб-сайтів лише з HTML і CSS, але без JavaScript. Я читав багато історій успіху в Інтернеті, але все одно не вважав це справжньою кар'єрою, навіть не на довгий шлях.

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

Там ми зустріли купу розробників. Це було божевілля. Здавалося, кожен диван-серфер, з яким ми зустрічалися, був якось в ІТ - або менеджером програмного продукту, і розробником, і тестувальником тощо. Усі вони заохочували нас зайнятися технологіями. На той час ми вже вирішили, що хочемо переїхати до Європи, тому багато хто з них говорили нам: «Ви могли б знайти тут роботу. Тут розробники затребувані, нам їх потрібно багато ».

До закінчення поїздки ми прийняли рішення записатись на 2-річний технічний сертифікат у нещодавно заснованому технічному університеті неподалік від нашого міста. В основному програма була Java, тому, повернувшись, ми розпочали курс Java в Cousera. Перший модуль насправді був курсом JavaScript, тому насправді ми негайно зачепили JavaScript.

Поки ми вивчали JavaScript, ми чекали початку навчального року в березні 2018 року. Університету було лише 50 місць, тож ми дуже посвятили себе і навчились заздалегідь. Ми їздили, здавали тести, проходили курси, а потім довелося чекати, поки вони вирішать. Ми отримали найвищі оцінки серед усіх кандидатів, але ці оцінки не змінили. Місця будуть призначені за допомогою лотерейної системи. Мій чоловік увійшов, а я залишилася осторонь.

Він вирішив, що вважає за краще вчитися самостійно, його більше не цікавить Java, оскільки він був підключений до JavaScript, тому ми почали вчитися самостійно.

Ми почали з Codecademy, але він був занадто ручним для нас (у нас не було преміум-рахунків). Десь ми читали про freeCodeCamp. І ми почали це, спочатку дуже повільно (на отримання першого сертифіката у мене пішли місяці, правда, посередині була змінена навчальна програма, і я кинув свій ноутбук і мав його відремонтувати). Після того, як закінчились літні канікули, і я повернувся до повної зайнятості, все стало важко.

Працюючи повний робочий день і роблячи freeCodeCamp на повній швидкості

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

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

Перше посвідчення зайняло місяці, частково тому, що я чекав, щоб потрапити до Університету, а почасти тому, що я працював 10 годин на день протягом перших 3 місяців навчального року.

На жаль, я не міг просто кинути роботу і вчитися на повний робочий день, оскільки мені потрібно було оплачувати рахунки, тож мені довелося по-справжньому розібратися в 3 речах:

  1. Управління часом
  2. Дисципліна
  3. Організація

Управління часом

Я розпочав роботу о 7 ранку, тому більшість днів я починав вставати о 4:30. Я розпочав день із викликів freeCodeCamp та кави. Іноді я також читав з книги або робив інші підручники, залежно від того, над чим я працював на даний момент. Я також вчився під час обідньої перерви та після роботи, але змирився з тим, що не був таким продуктивним протягом тижня через роботу. Тож протягом тижня я робив переважно короткі завдання, читав тощо. А я працював над проектами у вихідні, святкові дні та вільний час.

Якби у мене було 30 хвилин, я читав би 30 хвилин. Якщо мені було 15, я вчився протягом 15 хвилин. Я використовував кожну вільну хвилину свого дня для навчання.

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

На щастя після червня, мій робочий час скоротився з 10 -12 до 8, тому я зараз працював за звичайним графіком і там я почав набирати темп.

Дисципліна

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

Найкраща порада, яку я можу дати вам для боротьби зі спокусою читати статті в Інтернеті, полягає в наступному: якщо у вас в голові виникне запитання на кшталт "як літають літаки?" (що зазвичай є типом запитання, яке мене захоплює і засмоктує протягом 30 хвилин), запишіть це десь і пообіцяйте собі, що зможете прочитати все про це після того, як закінчите те, що робите.

У 99% випадків вам більше буде все одно, бо ці запитання просто з’являються у вашому мозку, оскільки він хоче відволіктися. Проштовхніться, і ви переможете це.

Інший аспект дисципліни - вибирати навчання, а не інші речі. Це не дуже весела частина. Мені довелося відмовитись від багатьох, багатьох речей, які мені подобалося навчати, і я не можу дочекатися, коли зможу повернутися до них. Я зробив це лише тому, що хотів якомога швидше стати розробником (див. Мотивацію нижче), але навіть якщо ви не в поспіху, як я, ви можете виявити, що витрачаєте багато часу на те, що навіть хоча вони приємні та приємні, забирайте занадто багато часу.

Вам доведеться розставити пріоритети та зробити важкий вибір.

Мотивація

У мене був дуже сильний мотиватор, який ставав розробником та рухався до Європи. Це була моя мета довгий, довгий час, і я дійшов до того моменту, коли мене розчарувало те, що я її не отримав. Всі мої друзі виїхали з міста, у мене тут практично немає сім'ї, я відчував себе ізольованим і хотів виїхати.

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

Мої захоплення дуже практичні та продуктивні: садівництво, йога, кулінарія. У мене повинна бути причина робити їх (я хочу безкоштовні овочі, болить спина, я голодний). Якщо ти схожий на мене, тобі потрібно буде знайти морквину, щоб продовжувати рухатись.

Потратьте трохи часу на роздуми над цим, що саме ви хочете досягти, закінчивши freeCodeCamp? Що ви хочете змінити чи отримати через це у своєму особистому житті?

Навчальна програма + Додаткові ресурси

Нижче наведено деякі додаткові ресурси, якими я користувався під час подорожі freeCodeCamp. Майте на увазі, що це не вичерпний список, тому що я зробив багато гуглів, і що деякі з цих курсів не є безкоштовними.

Адаптивний веб-дизайн: Це була частина, з якою я вже мав певний досвід, тому це було легко та весело. Я використовував деякі додаткові ресурси, особливо для Flexbox. Моє улюблене місце для цього - Інтернетинг - це важко.

Алгоритми JavaScript та структури даних: Одного разу, коли я потрапив до модулів JavaScript, мене зачепило. Все було надзвичайно весело, я багато чому навчився і прагнув застосувати це на практиці.

Для цього розділу я використовував переважно книги. Я вже мав достатньо вправ з freeCodeCamp, але мені потрібні були додаткові пояснення. На початку JS також є маса вправ.

  • Початок JavaScript 5-го видання
  • Ви не знаєте JS
  • Програмування основ за допомогою JavaScript, HTML та CSS
  • Документація JavaScript

На той час, коли я потрапив до цього розділу, я також приєднався до програми "Summer of Code" (1 мільйон жінок до технологій). Я вивчив базовий Python та базовий до розширеного JavaScript, що дуже допомогло, особливо в Promises.

Вивчення Python також допомогло мені зміцнити деякі основні концепції програмування. Я серйозно рекомендую вам, коли ви впевнені в JavaScript, спробувати нову мову, лише її основні поняття. Згодом вам стане набагато комфортніше, як тільки ви знатимете, як робити те саме з різними інструментами.

JavaScript Frameworks: Цей розділ теж був чудовим, оскільки дав мені основу в React та Redux. Я вже відвідував курс React на Udemy, React 16.6 - Повне керівництво (включаючи React Router & Redux).

Я настійно рекомендую цей і інші курси того самого автора. Він неймовірно ґрунтовний, і його пояснення чудові. Це був один з небагатьох курсів Udemy, де я насправді стежив за проектом, який він робить: я зазвичай переглядаю відео та застосовую принципи до всього, над чим я працюю.

На 1 мільйон воментотех ми провели тиждень React, який в основному був рідним React, і тоді я почав з ним гратися. На той час я також почав працювати над своїм допоміжним проектом зі своїм чоловіком, який, як ми вирішили, буде PWA з React.

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

API та мікросервіси: Цей розділ став для мене великим відкриттям і все змінив. До цього модуля я був впевнений, що хочу бути розробником інтерфейсу, але після вивчення Node.js я почав думати про те, щоб бути розробником бек-енду або Full Stack. Створення API - це просто так весело, і ви бачите результати так швидко. Я почав будувати свої перші невеликі проекти Full Stack, і я був дуже схвильований.

Деякі ресурси, якими я користувався:

  • Повний курс розробника Node.js (друге видання)
  • Node Girls Intro to Backend Development with Express
  • Вузол Документи
  • Експрес-документи
  • NodeSchool
  • Вступ до Node.js
  • REST & GraphQL API API в Node.js, v2 (з використанням Express & MongoDB)

Протягом цього часу я також був волонтером для “1MWTT”, і мене попросили створити додаток Probot для бортових добровольців з Node. Це також дало мені певну практику з Node, що було дуже цікаво.

Якість та інформаційна безпека: Цей модуль також відкрив око. До цього часу я ніколи в житті не писав жодного тесту. Зараз я люблю писати тести, і навіть дуже зацікавився розробкою, керованою тестами.

Я в основному використовував документи для цього розділу, але тоді я вирішив протестувати і свій інтерфейс, і я знайшов цей дивовижний курс на Udemy, який я не можу рекомендувати. Інструктор - безумовно найкращий інструктор, якого я коли-небудь бачив на Udemy. Я не можу дочекатися, щоб споживати будь-які інші курси, які вона випустить у майбутньому.

- Документи Чай

- Реакція тестування за допомогою Jest та ферменту

Візуалізація даних за допомогою D3: це був найскладніший сертифікат. Пояснення були хорошими, але потрапивши до проектів, ви виявляєте, що проблеми стосуються лише першого проекту, а для решти ви певні самі. І хороших ресурсів в Інтернеті немає. В основному я читав документи та користувався навчальними посібниками. Ось ресурси, які нарешті отримали мене завдяки цій сертифікації:

- Підручники D3.js від d3Vienno

- Документація D3

Поради щодо закінчення навчальної програми

Підводячи підсумок, ось що мені найбільше допомогло у здійсненні моєї мети - закінчити навчальну програму:

  • Використовуйте навчальну програму як дорожню карту, але доповнюйте її іншими ресурсами
  • Не застрягайте надовго: задайте питання, Google, пара-програма.
  • Встановіть реалістичні цілі на кожен день і тиждень. Не бийся, якщо тижня ти повільніший: життя трапляється. Нехай це не збиває вас з курсу.
  • Пам’ятайте про свою мотивацію: саме вона проштовхне вас у важкі дні.
  • Пріоритети: вам доведеться скоротити час, який ви витрачаєте на інші справи.
  • Не забудьте взяти вихідні. Вони життєво важливі для навчального процесу. І висипайтеся!

Після freeCodeCamp я почувався трохи загубленим. Це була дорожня карта, яка вела мене через шлях від вчителя до розробника.

Після кількох днів роздумів та планування я присвятила себе своєму допоміжному проекту, який будую разом із чоловіком. Ми вчимось і отримуємо задоволення, і ми дуже раді цьому.

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

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

Якщо ви відчуваєте те саме і можете повернути гроші, будь ласка, подумайте про пожертви на freeCodeCamp тут.