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

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

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

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

Повне розкриття

Я пройшов курс Visual Basic for Applications (VBA) у середній школі (дев'ять років тому). На моєму першокурсному інженерному курсі (сім років тому) я вивчив деякі мови C, Python, Matlab та Labview. Я закінчив хороший університет за спеціальністю хімічна інженерія та хороший середній бал (три роки тому). Я не займався програмуванням поза школою, в середній школі чи коледжі, поки не вирішив, що хочу вчитися минулого року.

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

Чому я хотів змінити кар’єру?

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

27 травня 2017 року я знову погуглив про MBA і якось натрапив на програмну інженерію. Це здавалося ідеальною посадкою.

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

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

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

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

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

Мета

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

Отримайте роботу інженера-програміста протягом одного року з такою ж або кращою зарплатою, ніж я зараз заробляю.

План

Коли у вас є мета, вам потрібен план, який допоможе вам дістатися. Тут ви споживаєте якомога більше історій успіху. Жоден з них не буде відповідати вашій конкретній ситуації, але ви можете взяти поради з кожного. Я розробив (і повторив) свій план із використанням таких ресурсів, як subreddit learnprogramming, форум freeCodeCamp та Medium.

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

Мій план через багато ітерацій закінчився виглядати приблизно так:

  1. Пройдіть курс Intro to CS, щоб отримати глибоке базове розуміння основних концепцій CS
  2. Дотримуйтесь freeCodeCamp, поки я не зможу самостійно створювати повнотекстові веб-програми на рівні портфоліо
  3. Рефактор для очищення коду, додавання тестування, зосередження на передових концепціях
  4. Сприяти відкритому коду
  5. Підготуйтеся до співбесід

Для початку мій план був простим. Тоді я думав, що буду дотримуватися Технічного посібника Google, тому я розпочав із рекомендованого вступного курсу Udacity CS101.

Місяць 0 - Udacity CS101, Гарвард CS50

Висота прийняття цього великого рішення дала мені тонну енергії. Я починав кодувати, як тільки повертався додому з роботи, і не зупинявся, поки не лягав спати. А потім знову всі вихідні. Udacity CS101 відстежував відсоток завершення, що стало для мене великим мотиватором. Я щодня реєстрував свій відсоток завершення після кодування. Я закінчив перші 75% за 10 днів. Останні 25% були важкими при рекурсії, і це було для мене трохи жорсткіше. Загалом у мене знадобилося 20 днів, щоб закінчити Udacity CS101.

Поки я приймав Udacity CS101, я почав досить важко читати підредагування програмування. Я читав, що розробникам-самоучкам, які прагнуть змінити кар’єру, важливо бути активними в Інтернеті. Я вирішив створити нові облікові записи Twitter, Reddit, Stack Overflow, Medium та Quora, використовуючи своє повне ім’я, щоб я зміг створити присутність в Інтернеті.

Крім того, я вирішив припинити читати такі відволікаючі засоби масової інформації, як Instagram, Facebook та непрограмовані субредіти. Я перевіряв би на телефоні лише новини та публікації, пов’язані з програмуванням. Це мало вирішальне значення для того, щоб переконатися, що я дізнавався про найкращі навчальні шляхи та навчальні ресурси. Саме через це я дізнався про Гарвард CS50 на edX.

Спочатку я задовольнявся лише одним вступним курсом, але, здавалося, усі рекомендували Гарвардський CS50, тому я вирішив зануритися в цей наступний. Студенти CS в інших школах пройшли цей курс і сказали, що в CS50 вони дізналися більше, ніж рік чи два в своєму університеті, де вивчають CS. Загальним консенсусом було те, що курс був важким, але того вартий. До кінця місяця 0 я виконав перші 5 лекцій та домашніх завдань.

Місяць 1 - Гарвардський CS50, Linux, 1-а зустріч, freeCodeCamp

Я закінчив CS50 приблизно на половині місяця. Я не збираюся занадто коментувати свій досвід роботи з CS50, тому що я написав тут докладний допис про свій досвід.

TLDR: Це чудовий курс, я дуже рекомендую його. Девід Малан - чудовий лектор, і є маса ресурсів, які допоможуть вам це пройти. Ви починаєте з C, переходите до Python, а потім закінчуєте веб-розробкою. Це дуже щільно, і там багато матеріалу, але я думаю, що воно того варте.

Після CS50 я вирішив налаштувати свій XPS 15 на подвійне завантаження Windows та Ubuntu. Це були неприємні вихідні. Я зіпсував перегородки і мало не замурував ноутбук. Я був близький до того, щоб замовити свій ноутбук і отримати новий.

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

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

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

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

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

  1. Розвиток стосунків займає багато часу. Початок на ранніх термінах означає, що у вас є зв’язки, які можуть поручитися за вас при подальшому пошуку роботи
  2. Розмова про програмування з незнайомцями - чудовий спосіб підготуватися до співбесід
  3. Ви можете вивчити нові основи, інструменти та навчальні ресурси від людей, які випередили вас. Це може вплинути на ваш майбутній план навчання.

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

Зрештою, я обрав веб-розробку, оскільки здавалося, що там великий попит, а також багато Інтернет-ресурсів. Як тільки я це зрозумів, мені потрібно було зрозуміти, що робити далі. Деякі люди рекомендували мені на цьому етапі подумати про веб-програми, які я хотів створити, а потім розпочати. Деякі люди рекомендували The Odin Project або freeCodeCamp.

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

А потім через два дні я відмовився від цієї ідеї.

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

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

Місяць 2 - YDKJS, фронт-енд FreeCodeCamp, React

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

Я закінчив інтерфейсний розділ freeCodeCamp. Формат контрольного списку та приблизний час завершення допомогли мені спонукати швидко закінчити. Мені також свербіло, щоб перейти до наступного розділу і вивчити React. Однак це також означало, що мої проекти мали мінімальний стиль. Я зробив все, що потрібно, щоб виконати історії користувачів і не більше того.

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

Наступним кроком було вивчення React, і я був досить накачаним.

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

Я спробував прочитати документи та слідувати разом із підручником Facebook по Tic-Tac-Toe, але я не зовсім все це розумів. Мені сказали, якщо це не працює для мене, то це означає, що я недостатньо розумію JavaScript. Тоді я повернувся до читання «Ви не знаєте JavaScript», але знову ж таки це було для мене занадто щільно.

Місяць 3 - freeCodeCamp React, CodeClub, Starting freeCodeCamp Back End

Врешті-решт, я просто вирішив пропрацювати проекти freeCodeCamp React, щоб побачити, як це пройшло. Цей код був потворним, але це допомогло мені трохи краще зрозуміти React.

Ті збори, які я відвідував щотижня, вирішили, що вони збираються будувати проекти з повним стеком JavaScript замість Ruby, і вони вирішили, що першим проектом буде створення веб-сайту для групи зустрічей CodeClub.Social.

Я розробив картки, використовуючи React та Meetup API, що дозволяють користувачеві підписатися на наступні три зустрічі з нашого веб-сайту. Мені було трохи важко зробити швидку перерву у freeCodeCamp, щоб зробити це, але це була можливість, яку я не міг пропустити. Я був радий працювати над проектом з невеликою групою людей. Це також допомогло мені вивчити Git та Github.

Перш ніж закінчився місяць, я почав працювати над задньою секцією freeCodeCamp.

Місяць 4 - Готовий freeCodeCamp Back End, Yeggle

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

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

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

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

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

Шукаючи новий ресторан, я завжди виявляв, що відкриваю Yelp для перевірки відгуків, а потім відкриваю Карти для перевірки їхніх відгуків. Що, якби я зробив додаток, який порівнював обидва паралельно?

Тож я зробив Yeggle. Я використовував Node / Express / React разом із API Карт Google та Yelp. Було кілька перешкод, які я не думав, що зможу подолати, але врешті-решт я закінчив, і я дуже пишався своїм додатком. Потім я опублікував його в Reddit, і нікого це не хвилювало. Це було трохи невдало, але я не дозволив мені це збити.

5 місяць - StockIT

Цього місяця я не зробив так багато, оскільки розпочав це двотижневими канікулами до Японії та Таїланду!

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

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

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

Натомість я дотримувався простої моделі лінійної регресії. Я думав, що це буде найскладнішою частиною, але це не так. Примусити D3 жити з React було важкою частиною. Обидві бібліотеки хотіли контролювати DOM. Були деякі інші бібліотеки, які допомогли об’єднати ці дві, але я відчував, що вони були занадто роздутими. У підсумку я використав D3 для генерації SVG і React для обробки DOM, що у мене вийшло досить добре.

Цього разу, коли я поділився нею з Reddit, всі це сподобалось!

Виявляється, як і ВК, редитори - це все про це машинне навчання. Вся любов від Reddit стала значним підвищенням довіри. Люди грали в мою гру і насолоджувались нею!

6 місяць - jobSort (), Підготовка до пошуку роботи

Після StockIT я перейшов до свого наступного особистого проекту. Я хотів створити дошку вакансій, яка об’єднувала б менші веб-сайти з переліком робочих місць, таких як Stack Overflow, Github та Hacker News. Щоб додати до нього свій власний унікальний спін, я вирішив відсортувати його на основі технологій, які користувач бажав у роботі, і наскільки сильно вони бажали кожного з них.

Наприклад, скажімо, я шукав роботу, яка шукала когось, хто знав би JavaScript, React та / або Python, і я дуже хотів працювати з JavaScript та React, але мені було так все одно до Python. Тоді я міг би дати JavaScript 3, React 3 і, можливо, Python 1. 1. Списки тоді будуть сортуватися відповідно.

З цим проектом я зіткнувся з різними перешкодами, і мені довелося пару раз змінити курс, але в підсумку я отримав продукт, яким був задоволений. Моїм остаточним технологічним стеком був React / Node / Express / MySQL. Я опублікував проект у cdcareerquestions subreddit і отримав 650 переглядів до того, як його було видалено, оскільки вони не дозволяють особисті проекти.

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

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

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

7 місяць - тестування, пошук роботи

Цього місяця я зосередився на доробці своїх проектів та поданні заявок на роботу. Я також хотів вивчити тестування та Redux.

Я додав flexbox до CodeClub.Social, щоб зробити його чуйним. Я вдосконалив мобільний UX у jobSort (). Я додав тестування до jobSort () з моккою / чаєм / ферментом, який було важко налаштувати, легко розпочати, а потім важко отримати 100% покриття.

На кінець місяця я подав заявку на 63 робочі місця. Я розглядав це як самооцінку. Чи було моє портфоліо / резюме достатньо хорошим? Якщо так, то над чим мені потрібно було попрацювати, щоб підготуватися до співбесід? Спочатку я подав заявку на Hacker News: Хто наймає, і справді.

У Hacker News я використовував jobSort (), щоб визначити, на які списки подавати заявку. Насправді, я намагався непрограмних компаній, щоб дізнатись, чи можу я десь зателефонувати або взяти співбесіду.

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

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

  • укладання контракту на DevOps / тестування у дотком-компанії
  • компанія з аналізу продуктів харчування серії B, і
  • досить великий і успішний стартап, який нещодавно був придбаний великою корпорацією

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

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

Ці дзвінки навчили мене, що мені потрібно

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

Місяць 8 - Нічна зміна, Redux, відкритий код, інтерв’ю на місці

Цього місяця я розпочав роботу в нічну зміну протягом 40 днів на своїй повній роботі - 6 днів на тиждень, 12 годин на день, з 5 вечора до 5 ранку. Тьфу.

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

Я переробив jobSort, щоб використовувати Redux, що, на диво, було не таким складним, як я думав, буде. Я слухав багато подкастів про це і читав публікації в блозі про це, і це ніколи не мало для мене сенсу, поки я не почав ним користуватися.

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

Це мав стати для мене місяцем з відкритим кодом. Я збирався зробити свій перший внесок із відкритим кодом, і це було б чудовим внеском у фантастичну бібліотеку. Я збирався зробити внесок у React!

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

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

На одній із зустрічей, на якій я був, Ентоні Нг рекомендував спробувати Downshift - бібліотеку автозаповнення Кента К. Доддса. Це був обмінник ігор. Це було прямо в моїй рульовій рубці. Правильна складність, потрібна кількість проблем, з якими можна допомогти, не надто багато співавторів, надзвичайно корисний супровідник, чистий перевірений код. Крім усього іншого, це було ідеальне рішення деяких питань, які виникали у мене із моєю програмою jobSort ().

Приблизно на половині місяця я отримав електронне повідомлення від однієї з компаній, до якої я звертався у попередньому місяці. Вони налаштовують початковий екран телефону, а потім технічний екран телефону. Технології, які вони шукали, були саме тим, про що я дізнався - React, Redux та D3. Я здебільшого просто розповідав про свої проекти та чому я приймав певні рішення. Після цього вони попросили мене приїхати на місце для співбесіди. Моє перше інтерв’ю на місці!

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

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

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

9 місяць - Пропозиція роботи

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

Порада

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

  1. Дізнайтеся, що вас мотивує, і використовуйте це на свою користь. Для мене це були контрольні списки, що документували мій прогрес та взаємодіяли з різними спільнотами програмістів. Якщо вас не спонукає досягти своєї мети, тоді ніщо інше не має значення, бо ви не закінчите.
  2. Складайте цілі та виконуйте їх. Я стверджую, що у вас повинні бути щомісячні цілі і, можливо, навіть щоденні цілі. Щомісячні цілі, щоб переконатися, що ви в дорозі для досягнення своєї головної мети, і щоденні цілі, щоб переконатися, що ви насправді досягаєте щоденного прогресу. Одна зі стратегій, яка працювала для мене, полягала в тому, щоб поставити свої щоденні цілі напередодні ввечері. Таким чином, ви не можете виконувати непродуктивну роботу цілими днями і відчувати, що досягли успіху, коли цього насправді не зробили. Це змушує вас порівнювати свої щоденні досягнення зі своїми щоденними цілями.
  3. Йдіть на зустрічі ще до того, як думаєте, що готові. Йти на зустрічі може бути страшним, але, як я вже згадував вище. Але загалом усі приємні і готові допомогти. Можливо, ви знайдете людей, яким нецікаво спілкуватися з вами, але їх меншість, і ніхто не буде засуджувати. Крім того, всі люблять давати поради (як я це роблю зараз).
  4. Сприяйте відкритому коду, перш ніж ви думаєте, що готові. Коли ви вперше починаєте програмувати, Github здається цим страшним місцем, куди ви ніколи не хочете їхати. Насправді це дуже вітає початківців, і це чудове місце, щоб побачити хороший код та переглянути свій власний код. Якщо ви все ще не впевнені, перегляньте мій пост: Чому ви повинні зробити внесок у відкритий код прямо зараз.
  5. Почніть застосовувати спосіб, перш ніж ви думаєте, що готові. Це мені було важко, бо я думав, що я інший. Я думав, що мені не потрібно тестувати ринок, щоб зрозуміти, над чим працювати. Я думав, що буду знати, коли буду готовий подати заявку. Я тобі зараз кажу. Ви не будете знати, коли подавати заявку. Тож ви можете розпочати зараз. Не варто з глузду з’їжджати і подавати заявки в 300 компаній, перш ніж навчитися циклам. Але ви повинні знати, що найкращий спосіб дізнатися, що вам потрібно навчитися, - це застосувати та протестувати ринок.

Тепер повертайтеся туди і кодуйте!