Чому я кодував кожен день протягом року, що я дізнався, і як ти теж можеш це зробити.

Я прагнув змінити кар’єру. Сьогоднішній світ зовсім не такий, як той, в якому виросли наші батьки. Отже, багато кар’єрних порад, які давали мені батьки, просто більше не стосувалися ландшафту, який ми маємо зараз.

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

Я твердо вирішив зробити це. Це означало не відкладати це. Я збирався почати негайно, щоб ще через 10 років я не озирнувся назад і не сказав “хотів би, щоб я розпочав це набагато раніше”.

Тому я вирішив кодувати щодня протягом одного року. Дозвольте розповісти вам про свій досвід.

Початок

Я розпочав із дослідження досліджень кодування. Я знайшов речі, такі як Codecademy та freeCodeCamp, безкоштовні ресурси для промокання ніг. Там було багато чому навчитися, і це була довга подорож, яка вимагала великої дисципліни. Але, я думав, чим більше роботи я зараз докладу до цього, тим більше це окупиться згодом.

А потім я виявив статтю, яка розповідає про цей виклик під назвою # 100DaysOfCode . Існує дві основні вимоги для того, щоб виконати виклик:

  1. Кодуйте мінімум годину щодня протягом 100 днів поспіль
  2. Щодня твітуйте свій прогрес за допомогою хештегу # 100DaysOfCode

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

Таким чином, я почав твітнути зі свого акаунта twitter.com/PolarisTLX щодня, а також у групі у Facebook.

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

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

Окрім цього, засновник # 100DaysOfCode вітає вас зробити його своїм. Тому, щоб справді пришвидшити навчання та досягти значного прогресу у досягненні моєї мети - знайти роботу розробника, я насправді присвятив себе вирішенню проблеми повний робочий день, а не лише одну годину на день. І після цього я досяг тієї магічної позначки в 100 днів.

Однак я все ще не був готовий до роботи. Мені просто потрібно було багато чого навчитися. Але я робив великий прогрес і твердо вирішив продовжувати, поки нарешті не отримав цю роботу. Тож я просто вирішив продовжувати йти 150, 200, 250 днів ...

Основні досягнення

І ось я досяг 365 днів! Ось кілька основних речей, які я зміг досягти, кодуючи щодня протягом року:

  • Провів десятки підручників, курсів та книг з кодування
  • Розв’язав понад 100 алгоритмів та завдань кодування інтерв’ю
  • Заробив сертифікати “ Front End Developer” та “ JavaScript Algorithms and Data Structures Projects” від freeCodeCamp
  • Брав участь у дводенному хакатоні, де проект був відібраний для презентації членам правління компанії. Потім вони вирішили просунути його до наступного етапу розвитку
  • Отримали участь у програмі розробки програмного забезпечення на повний робочий день із коефіцієнтом прийнятності менше 1%
  • Внесла свій внесок у розширений навчальний план бета-версії freeCodeCamp
  • Написав зміст курсу до нової навчальної програми проекту Odin для Рубіну, щоб допомогти іншим прагнутим розробникам навчитися кодувати
  • Побудував працюючий клон Facebook, весь інтерфейс і інтерфейс повністю з нуля, і перекласти його на Heroku як один із моїх проектів у моєму портфоліо
  • Я отримав мій перший регулярний потік доходу, працюючи на клієнта віддалено, що призвело до постійного найму

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

Нелегкий виклик

Залишення попередньої роботи для досягнення своїх цілей означало, що у мене було більше часу - але це також означало, що у мене було більше на зв'язку. Багато людей вступають у це з великими амбіціями і ставлять перед собою високі цілі, яких вони не можуть досягти. Тому для багатьох людей дотримуватися рекомендованої години на день, мабуть, найкраще.

Але те, що я спостерігав, полягає в тому, що навіть за найосновнішими критеріями більшість людей, які намагаються зробити цей виклик, зазнають невдачі. Багато людей починають # 100DaysOfCode з прагнення влаштуватися на роботу програмістом (буквально десятки тисяч людей з усього світу), але мало хто з них насправді досягає своєї мети.

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

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

  • 30 днів JavaScript
  • 30-денна реакція
  • спінінги, такі як 180-денний код
  • Слабкі групи каналів, які присвятили себе роботі з певною книгою кодування, а також мали на меті робити щотижневу главу та обговорювати / порівнювати нотатки.

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

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

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

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

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

То як я це зробив - і як ти можеш?

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

  • надаючи вашому прогресу певну структуру та підзвітність за допомогою чогось типу # 100DaysOfCode
  • встановлення невеликих додаткових цілей та їх досягнення на цьому шляху
  • парне програмування
  • пошук груп, до яких можна приєднатися та вчитися разом

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

Найголовніше, що я зробив

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

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

Інші речі, які мені допомогли

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

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

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

Застереження

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

“Ви можете пропустити день тут і там за незапланованими ситуаціями, але не більше ... Вам дозволено пропустити день (але потім складіть його, додавши ще один день до кінця 100). Мета - стати послідовними, незалежно від того, що тобі кидає життя ». - Олександр Каллавей, творець # 100DaysOfCode

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

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

Ви можете майже подивитися, які дні я пропустив, прямо на моїй сторінці профілю GitHub: //github.com/PolarisTLX. Але деякі прогалини відображають час, коли я був у віддалених регіонах без доступу до Інтернету і не міг зафіксувати код у GitHub. Але я вирішив завантажити книгу кодування на планшет, який переконався, що він повністю заряджений перед виходом. (Це не мій улюблений спосіб вивчення коду, але може бути приємно змінювати метод навчання потроху і раз у раз пробувати інший носій.)

Нарешті, одна група днів раніше відсутня. Це сталося тому, що я видалив сховище GitHub, коли мене розчарував конфлікт злиття, і просто вирішив видалити сховище та замінити дані новим. Я не підозрював, що це викреслить із запису майже тиждень комітів. * перекидання столу *

Моя 365-денна підсумок прогресу

Отже, за 365 днів я просунувся через такі досягнення:

  • навчитися користуватися редактором коду та створити прості статичні веб-сторінки
  • побудова функціональних калькуляторів та погодних додатків
  • побудова простих інтерактивних 2D-ігор на платформі
  • отримати задоволення від повномасштабної розробки з кількома мовами, фреймворками та операційними системами та створити повний сайт соціальних мереж RESTful з нуля (де користувачі можуть зареєструватися за вибраним паролем, розміщувати, лайкувати та коментувати, завантажувати власні фотографії, створювати події, надсилати та приймати запити друзів та запрошення на події з іншими користувачами тощо)
  • створення навчального матеріалу для допомоги іншим прагнутим розробникам навчитися кодувати.

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

Сподіваюся, вам сподобалось читати про мою подорож. Я настійно рекомендую вам спробувати виклик # 100DaysOfCode. Якщо вам сподобався допис, поплескайте? поширювати інформацію та мотивувати інших.