Как преминах от начинаещ до софтуерен инженер за 9 месеца, докато работех на пълен работен ден

В тази публикация ще споделя как преминах от нула (ish) до шестцифрена оферта за софтуерно инженерство за девет месеца, докато работя на пълен работен ден и се самоуча.

Винаги, когато започвах да чета история за успех, веднага търсех да намеря произхода на автора, надявайки се да отговаря на моя. Никога не намерих някой, който да има същия произход като мен, и най-вероятно моят няма да съвпада точно с вашия.

Въпреки това се надявам, че моята история вдъхновява другите и действа като ценна точка от данни, която може да бъде добавена към вашия набор от истории за успеха.

Пълно разкриване

Взимах курс по Visual Basic for Applications (VBA) в гимназията (преди девет години). В моя първоначален инженерен курс (преди седем години) научих някои C, Python, Matlab и Labview. Завърших добър университет със специалност химическо инженерство и добър среден успех (преди три години). Не бях правил програмиране извън училище, в гимназията или колежа, докато не реших, че искам да уча миналата година.

След колежа си намерих работа като технологичен инженер в рафинерия. Работих там, докато не смених кариерата си в Софтуерно инженерство.

Защо исках да сменя кариерата си

Наслаждавах се на решаването на технически проблеми, но знаех, че искам да вляза в света на бизнеса / стартирането в даден момент. Винаги съм държал мисълта за MBA в съзнанието си, но всеки път, когато гледах цената на най-добрите училища, интересът ми отслабваше.

На 27 май 2017 г. отново се огледах за MBA и по някакъв начин попаднах на софтуерното инженерство. Изглеждаше перфектно.

Софтуерните инженери имат все по-голямо търсене, заплатите са страхотни и това е идеалната индустрия, от която да влезете в стартиращия свят, без да се нуждаете от тон начален капитал. Всичко, от което се нуждаете, е компютър и вашите възможности са неограничени (вид).

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

Бях чувал за хора, които напускат работата си и посещават bootcamp, но колкото повече чета за него онлайн, толкова повече осъзнавах, че можете напълно да научите всичко сами, ако сте ангажирани и съсредоточени.

Може да спорите, че губите от мрежовите и кариерни съвети, предоставени от bootcamp. Това може да е вярно, но имах късмета, че живеех в района на залива, което ми позволи да присъствам на няколко срещи, така че се свързах по този начин.

Освен това най-лошият случай беше, че щях да осъзная, че не мога да го направя сам и след това щях да напусна работата си, за да присъствам на лагер за зареждане.

Целта

Трябва да имате цел. Особено ако се опитвате да научите, докато работите на пълен работен ден. Лесно е да оставите вашето обучение да се влачи и продължава, ако нямате външен натиск, който да ви тласка. Така че трябва да създадете вътрешен натиск. Вашата цел трябва да бъде проста и количествена. Трябва да направите достатъчно изследвания, за да си поставите разумна цел. Моят беше следният:

Вземете работа за софтуерен инженер в рамките на една година със същата или по-добра заплата от тази, която изкарвам в момента.

Планът

След като имате цел, имате нужда от план, който да ви помогне да стигнете дотам. Тук консумирате колкото се може повече истории за успех. Нито един от тях няма да отговаря на вашата точна ситуация, но можете да получите съвет от всеки един. Разработих (и повторих) плана си, използвайки ресурси като subreddit learnprogramming, форум freeCodeCamp и Medium.

На 27 май 2017 г. реших, че ще навляза в кодирането, и първо се гмурнах в главата. Този ден реших да започна да влагам не повече от 40 часа седмично в работата си, за да имам време да кодирам след работа и през почивните дни. За ваш късмет направих доста добра работа, документирайки напредъка си.

Моят план, чрез много итерации, в крайна сметка изглеждаше по следния начин:

  1. Вземете курс Intro to CS, за да получите солидно базово разбиране на основните концепции за CS
  2. Следвайте freeCodeCamp, докато не мога да създам самостоятелно пълни стек уеб приложения
  3. Refactor за почистване на кода, добавяне на тестване, фокус върху разширени концепции
  4. Принос към отворен код
  5. Подгответе се за интервюта за работа

За начало планът ми беше прост. По това време си мислех, че ще следвам Техническото ръководство на Google, затова започнах с препоръчания им уводен курс Udacity CS101.

Месец 0 - Udacity CS101, Харвард CS50

Височината на това голямо решение ми даде тон енергия. Бих започнал да кодирам веднага щом се прибера от работа и нямаше да спра, докато си легна. И след това отново през целия уикенд. Udacity CS101 проследи процента на завършеност, което беше голям мотиватор за мен. Регистрирах процента си на завършеност всеки ден след кодирането. Завърших първите 75% за 10 дни. Последните 25% бяха тежки в рекурсия и беше малко по-трудно за мен. Като цяло ми отне 20 дни, за да завърша Udacity CS101.

Докато приемах Udacity CS101, бях започнал да чета subreddit на learnprogramming доста тежко. Четох, че е важно разработчиците-самоуки, които искат да направят промяна в кариерата си, да бъдат активни онлайн. Реших да създам нови акаунти в Twitter, Reddit, Stack Overflow, Medium и Quora, използвайки пълното си име, за да мога да изградя онлайн присъствие.

Също така реших да спра да чета разсейващи медии като Instagram, Facebook и непрограмиращи подредакти. Бих проверил телефона си само за програмиране, свързани с новини и публикации. Това беше от решаващо значение, за да се уверя, че научавам за най-добрите учебни пътеки и учебни ресурси. Именно поради това разбрах за Harvard CS50 на edX.

Първоначално се задоволих само с един въвеждащ курс, но изглежда всички препоръчаха Harvard CS50, затова реших да се потопя в следващия. Студентите от CS в други училища бяха преминали този курс и казаха, че са научили повече в CS50, отколкото година или две в техния университет, изучаващи CS. Общият консенсус беше, че курсът е труден, но си заслужава. До края на месец 0 бях завършил първите 5 лекции и домашни задачи.

Месец 1 - Харвард CS50, Linux, 1st Meetup, freeCodeCamp

Завърших CS50 около половината месец. Няма да коментирам прекалено много моя опит с CS50, защото тук написах задълбочен пост за моя опит.

TLDR: Страхотен курс, горещо го препоръчвам. Дейвид Малан е отличен лектор и има много ресурси, които да ви помогнат да го преодолеете. Започвате в C, преминавате към Python и след това завършвате с уеб разработка. Много е плътен и има много материали, но мисля, че си заслужава.

След CS50 реших да настроя своя XPS 15 за двойно зареждане на Windows и Ubuntu. Това беше разочароващ уикенд. Забърках дяловете си и почти иззиках лаптопа си. Бях близо до изваждането на лаптопа си и получаването на нов.

Бавно се отучих от Windows и в крайна сметка използвах единствено Ubuntu. Исках да се принудя да се чувствам комфортно с командния ред, който според мен е работил до известна степен, но все още ми предстои дълъг път.

Започнах 100 дни код, за да съм сигурен, че съм фокусиран и кодиран всеки ден.Важно е да документирате напредъка си. Ако напредвате всеки ден, това няма да изглежда много, но когато погледнете назад месец или няколко месеца, ще разберете, че всъщност сте постигнали доста напредък, който ви мотивира да продължите напред.

Знаех, че работата в мрежа ще ме направи или разбие, затова събрах смелост да отида на първата си среща за кодиране. Никога не бях ходил на срещи, камо ли на срещи за кодиране. Бях толкова изнервен, че след като карах там, паркирах и тръгнах към вратата, почти се обърнах и се прибрах.

Помогна, че това беше първата среща за групата. Бързо разбрах, че няма причина да се изнервям. Никой не се познаваше, никой не осъждаше и всички бяха нетърпеливи да се научат. Това беше началото на срещата. В крайна сметка посетих над 50 срещи за 9 месеца.

Радвам се, че започнах да ходя по-рано на срещи. Повечето хора започват да посещават срещи едва когато търсят работа, но в този момент е почти късно. Има толкова много причини да започнете рано. За да назовем само няколко:

  1. Развиването на взаимоотношения отнема много време. Ранното започване означава, че имате връзки, които могат да гарантират за вас, когато търсите работа по-късно
  2. Говоренето за програмиране с непознати е чудесен начин да се подготвите за интервюта
  3. Можете да научите нови рамки, инструменти и учебни ресурси от хора, които са пред вас. Това може да повлияе на вашия бъдещ учебен план.

По това време в моето кодиране имаше известна несигурност. Това беше когато трябваше да реша какъв софтуерен разработчик искам да бъда.

В крайна сметка избрах уеб разработката, защото изглеждаше, че има голямо търсене, а също и много онлайн ресурси. След като разбрах това, трябваше да разбера какво да правя по-нататък. Някои хора препоръчаха на този етап да помисля за уеб приложения, които исках да създам, и след това да започна. Някои хора препоръчаха The Odin Project или freeCodeCamp.

Човекът, който ръководеше седмичната среща, на която присъствах, познаваше Руби и искаше да прави проекти с Руби. Това беше голяма причина, поради която взех решение да вляза ол-ин в проекта The Odin.

И след два дни по-късно отхвърлих тази идея.

Това е един от недостатъците на преминаването на самоукия маршрут. Една минута си мислите, че знаете по какъв път трябва да поемете, но след това на следващия ден се чудите дали това е правилният ход.

Прочетох, че Ruby изпада в немилост и доказах това, като потърсих задания за Ruby срещу JavaScript, така че в крайна сметка стартирах freeCodeCamp. Единственото нещо, което ме притесни при freeCodeCamp, беше, че те измислиха идеи за проекти, така че всеки кемпер прави същите проекти. Първоначално това ме засягаше, защото исках да се откроя на вербуващите. Обаче в крайна сметка обичах freeCodeCamp и сега горещо го препоръчвам. За повече подробности относно моя опит и препоръки по отношение на freeCodeCamp, разгледайте моя запис тук.

Месец 2 - YDKJS, freeCodeCamp Front End, React

Започнах да чета You Don't Know JavaScript, защото всички го препоръчаха като допълнение към freeCodeCamp. Трябваше да препрочета няколко раздела, тъй като е доста плътен, но това е перфектен ресурс за изучаване на лексикален обхват, затваряния, обещания и всички части на JavaScript, за които чувате и искате да научите, но никога не го правите, защото изглеждат трудни.

Завърших предната част на freeCodeCamp. Форматът на контролния списък и очакваното време за завършване ми помогнаха да ме мотивират да завърша бързо. Също така ме сърбеж да премина към следващия раздел и да науча React. Това обаче означаваше, че моите проекти имат минимален стил. Направих каквото беше необходимо, за да изпълня потребителските истории и нищо повече.

Погледнато назад, може би трябваше да се съсредоточа върху това да направя проектите по-привлекателни. Може би това би ми помогнало да науча по-задълбочено CSS.

Следващата стъпка беше изучаването на React и бях доста напомпан.

Бях чувал толкова много за това и бях готов да се съчетая с готините деца. Въпреки това бях малко колеблив предвид проблемите с лицензирането по това време. Наистина се радвам, че това вече не е проблем. Learning React беше трудно за мен. Тогава не знаех за добри уроци (но изглежда, че сега има много).

Опитах се да прочета документите и да следвам заедно с урока за Tic-Tac-Toe на Facebook, но не разбрах всичко това. Казаха ми, че ако това не работи за мен, това означава, че не разбирам достатъчно JavaScript. Тогава се върнах към четенето You Don't Know 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 в проекта за абстракция на слоя за търсене на изображения.

Сърбеше ме да правя пълни стек уеб приложения, така че веднага щом видях заглавието на този проект, имах идея за собствен проект. Бих направил приложение за възел, което да съхранява произволни imgur URL адреси в база данни, и след това да направя преден край, който да извежда зададен от потребителя брой от тези произволни изображения. Това, което всички казват, е вярно: работите по-усилено и имате повече успех, когато работите по проект, който е била ваша собствена идея.

След като го накарах да работя, бях много горд от себе си. Беше грозно и тромаво, но се получи.

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

Най-накрая се почувствах готов да започна да създавам свои собствени полезни и полирани уеб приложения с пълен стек, които да споделям с потребителите и да сложа портфолиото си. Бях толкова готов да започна.

Когато търсех нов ресторант, винаги откривах, че отварям Yelp, за да проверявам отзиви, и след това отварям Maps, за да проверявам техните отзиви. Ами ако направя приложение, което сравнява и двете едно до друго?

Така че направих Yeggle. Използвах Node / Express / React заедно с API на Google Maps и Yelp. Имаше няколко препятствия, които не мислех, че ще успея да преодолея, но в крайна сметка завърших и бях много горд от приложението си. След това го публикувах в Reddit и никой не го интересуваше. Това беше малко неприятно, но не оставих да ме свали.

Месец 5 - StockIT

Този месец не свърших толкова много, тъй като започнах с двуседмична ваканция в Япония и Тайланд!

Но стартирах и завърших следващия си проект. Продължавах да чета колко трудно беше да си намеря работа като самоук разработчик, затова си помислих, че трябва да направя нещо уникално. Спомних си игра, в която графиката на акциите на Dow Jones започна да се развива и вие имаше една възможност да купувате и една възможност да продавате, а целта беше да победите пазара. Целта на играта беше да ви покаже колко трудно беше да победите пазара.

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

Направих видео урок за Pandas и Scikit Learn, който обхваща множество техники за машинно обучение. Първоначално исках да направя някои страхотни техники за дълбоко обучение, но осъзнах, че това отнема масивни набори от данни и повече време, отколкото исках да отделя.

Вместо това се придържах към прост модел на линейна регресия. Мислех, че това ще бъде най-трудната част, но не беше. Да накараш D3 да се държи с React беше трудната част. И двете библиотеки искаха да контролират DOM. Имаше и някои други библиотеки, които помогнаха да се присъединят към двете, но почувствах, че са твърде подути. В крайна сметка използвах D3 за генериране на SVG и React за обработка на DOM, което се получи доста добре за мен.

Този път, когато го споделих с Reddit, всички го харесаха!

Оказва се, че точно като VC, редиторите са всичко това машинно обучение. Цялата любов от Reddit беше голям стимул за доверие. Хората играеха на моята игра и се наслаждаваха на нея!

Месец 6 - сортиране на работа (), Подготовка за търсене на работа

След StockIT се включих в следващия си личен проект. Исках да направя борд за работа, който да обединява по-малките уебсайтове за списъци с работни места, като Fock Overflow, Github и Hacker News. За да добавя собствено уникално завъртане към него, реших да го сортирам въз основа на технологиите, които потребителят искаше в дадена работа и колко силно искаше всеки от тях.

Да приемем например, че търсех работа, която търсеше някой, който знае JavaScript, React и / или Python, и наистина исках да работя с JavaScript и React, но не ми пукаше толкова за Python. Тогава бих могъл да дам на JavaScript 3, React 3 и може би Python 1. 1. След това списъците ще бъдат сортирани по съответния начин.

Срещнах различни препятствия с този проект и трябваше да сменя курса няколко пъти, но в крайна сметка получих продукт, от който бях доволен. Последният ми технологичен стек беше React / Node / Express / MySQL. Публикувах проекта в subreddit на cscareerquestions и получих 650 изгледа, преди да бъде свален, тъй като те не позволяват лични проекти.

„Крайният“ продукт е тук и ако се интересувате да научите повече за моите борби и рефактори, разгледайте публикацията ми тук.

Поради моите проблеми jobSort () зае прилична част от месеца. В крайна сметка взех кафе с приятел, когото срещнах при първата си среща, и той ме посъветва да започна да кандидатствам за работа сега. Прочетох навсякъде, че всички казват, че са чакали твърде дълго, за да кандидатстват. Също така, винаги, когато видях публикация с въпрос кога да кандидатствам, най-горният коментар винаги беше „сега“.

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

Месец 7 - Тестване, търсене на работа

Този месец се съсредоточих върху докосването на моите проекти и кандидатстването за работа. Също така исках да се науча на тестване и Redux.

Добавих flexbox към CodeClub.Social, за да го направя отзивчив. Подобрих мобилния UX в jobSort (). Добавих тестване към jobSort () с mocha / chai / ензим, който беше труден за настройка, лесен за започване и след това труден за получаване на 100% покритие.

До края на месеца бях кандидатствал за 63 работни места. Разгледах това като самооценка. Достатъчно добре ли беше моето портфолио / автобиография? Ако да, върху какво трябваше да работя, за да се подготвя за интервюта? Първоначално кандидатствах за Hacker News: Who is Hiring, и наистина.

В Hacker News използвах jobSort (), за да определя кои листинги да кандидатствам. В действителност, опитах не-софтуерни компании, за да видя дали мога дори да се обадя или интервю някъде.

Отначало кандидатствах бързо и не персонализирах автобиографията си / мотивационното писмо. След това реших да персонализирам мотивационното си писмо и автобиографията си и след това да се опитам да изпратя имейл до някой от компанията. Този метод беше очевидно по-добър от подхода на пушката.

През този месец получих пет обаждания - две от фирми за подбор и три от компании за софтуер, които включват:

  • сключване на договор за DevOps / тестване в дотком компания
  • компания за анализ на храни от серия Б и
  • доста голям и успешен стартъп, който наскоро беше закупен от голяма корпорация

Преминах през HR екрана в две от тях, но никой от тях не даде интервю на място. Бях доволен от трите обаждания и научих много от тях.

Всички споменаха онлайн, че от младите разработчици не се очаква да знаят толкова много от самото начало, те просто трябва да бъдат страстни и развълнувани да учат. Затова си помислих, лесно. Страстен съм и развълнуван да уча. Това, което научих от тези обаждания, обаче беше, че никой не търсеше младши разработчик. Те очакват от първия ден да знаете какво правите.

Тези обаждания ме научиха, че трябва

  • бъдете достатъчно добри, за да добавите стойност от първия ден
  • бъдете достатъчно уверени, за да ги убедите, че мога да добавя стойност от първия ден

Месец 8 - Нощна смяна, Redux, с отворен код, интервю на място

Започнах този месец да работя през нощната смяна за 40-дневен участък на пълен работен ден - 6 дни в седмицата, 12 часа на ден, от 5 до 5 сутринта. Ъъъ.

Знаех, че няма да мога да свърша толкова много този месец, но имах цел и исках да я изпълня, така че не можех да направя един месец почивка.

Реконструирах jobSort, за да използвам Redux, което изненадващо не беше толкова трудно, колкото си мислех, че ще бъде. Слушах много подкасти за него и четох публикации в блогове за него и никога не ми беше логично, докато не започнах да го използвам.

Много харесвам потока от данни с Redux. Интересно е сега да виждаш как хората се оплакват от Redux. Не мисля, че съм квалифициран да изказвам мненията си силно, но харесвам модела на редуктора.

Това трябваше да е месецът с отворен код за мен. Щях да направя първия си принос с отворен код и това би било чудесен принос за една фантастична библиотека. Щях да допринеса за React!

Всички казаха, че е трудна кодова база за четене, камо ли да допринесе. Но трябваше да се откроя, трябваше да бъда уникален. Знаех, че приносът ми няма да бъде значителен, но въпреки това все пак исках да го направя.

Бих започнал с четене на документите докрай и след това изливане през кодовата база. Гледайте всеки брой, всеки PR. Четенето изцяло на документите на React беше страхотно упражнение и се радвам, че го направих. Но бързо разбрах, че проблемът с приноса към React е, че просто няма толкова много „добри първи проблеми“ и те бързо се грабват.

На едно от срещите, на които присъствах, Антъни Нг ми препоръча да изпробвам Downshift, библиотека за автоматично довършване от Кент С. Додс. Това беше играч. Беше точно в моята рубка. Точната трудност, точното количество проблеми, с които да помогнете, не твърде много сътрудници, супер полезен поддръжник, изчистен добре тестван код. На всичкото отгоре това беше идеалното решение на някои проблеми, които имах с приложението си jobSort ().

Около средата на месеца получих имейл от една от компаниите, за които кандидатствах през предходния месец. Те настройват първоначален екран на телефона и след това технически екран на телефона. Търсените от тях технологии бяха точно това, което бях научил - React, Redux и D3. Най-вече просто говорех за своите проекти и защо взех определени решения. След това ме помолиха да дойда на място за интервю. Първото ми интервю на място!

Изобщо не се бях подготвил за интервюта, затова влязох в него с очакването, че няма да получа работата, но ще спечеля ценен опит за интервюиране. Също така бях на три часа сън, тъй като все още работех през нощната смяна, което не помогна. За щастие техническата част не беше бяла дъска, а само едночасова сесия за програмиране на двойки. Това беше доста пряко предизвикателство, но бях много нервен.

Отначало се притеснявах да се уверя, че знам всичко, без да го търся. Когато разбрах, че няма да завърша предизвикателството, осъзнах, че трябва да спра да се притеснявам какво мисли интервюиращият за мен и просто да преливам в Google / stack, за да намеря отговори. В крайна сметка не завърших и си помислих, че се провалих.

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

Месец 9 - Оферта за работа

В крайна сметка получих първата си оферта за работа 9 месеца и 7 дни след този първи ден, когато реших, че ще се потопя първо в програмирането с намерението да сменя кариерата си. Чувствах се уверен, тъй като получих оферта след първото ми интервю на място, но в същото време, ако не взех предложението, какво, ако това беше единственото предложение, което ще получа за няколко месеца? В крайна сметка взех предложението и съм доволен от решението си. Исках да получа пари за кодиране!

Съвети

До този момент аз най-вече споделих историята си с някои поръсени съвети. Шансовете са, че ако четете това, или мислите за промяна на кариерата, или сте в средата на обучението да кодирате с намерение да промените кариерата. Надявам се, че съветите по-долу ще ви помогнат да разработите план или да се придържате към текущия си план и да постигнете целта си.

  1. Разберете какво ви мотивира и го използвайте във ваша полза. За мен това бяха контролни списъци, документиращи моя напредък и взаимодействие с различни програмни общности. Ако не сте мотивирани да постигнете целта си, тогава нищо друго няма значение, защото няма да завършите.
  2. Поставете цели и ги изпълнете. Бих твърдял, че трябва да имате месечни цели и може би дори ежедневни цели. Месечни цели, за да сте сигурни, че сте на път да постигнете основната си цел, и ежедневни цели, за да сте сигурни, че всъщност постигате ежедневен напредък. Една стратегия, която работеше за мен, беше да си поставям ежедневните цели предишната вечер. По този начин не можете да вършите непродуктивна работа по цял ден и да се чувствате като напредък, когато наистина не сте го направили. Принуждава ви да сравнявате ежедневните си постижения с ежедневните си цели.
  3. Отидете на срещите, преди да помислите, че сте готови. Отиването на срещи може да се почувства страшно, но както споменах по-горе. Но като цяло всички са мили и готови да помогнат. Може да намерите хора, които не се интересуват от разговор с вас, но те са малцинството и никой няма да осъди. Освен това всички обичат да дават съвети (както го правя в момента).
  4. Принос към начина с отворен код, преди да мислите, че сте готови. Когато започнете да програмирате за първи път, Github изглежда като това страшно място, на което никога не искате да отидете. Всъщност е много приветлив за начинаещи и е чудесно място да видите добър код и да прегледате собствения си код. Ако все още не сте убедени, вижте публикацията ми, Защо трябва да допринесете за отворен код точно сега.
  5. Започнете да кандидатствате по начин, преди да помислите, че сте готови. Това беше трудно за мен, защото мислех, че съм различен. Мислех, че няма нужда да тествам пазара, за да усетя върху какво да работя. Мислех, че ще знам кога ще бъда готов да кандидатствам. В момента ти казвам. Няма да знаете кога да кандидатствате. Така че може и да започнете сега. Не бива да полудявате и да кандидатствате за 300 компании, преди да научите за цикли. Но трябва да знаете, че най-добрият начин да разберете какво трябва да научите е като кандидатствате и тествате пазара.

Сега се върнете там и кодирайте!