Как завърших цялата учебна програма на 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 места за Uni, така че се посветихме и научихме предварително. Отидохме, взехме тестове, преминахме курсове и след това трябваше да изчакаме, докато те решат. Получихме най-високите оценки сред всички кандидати, но тези оценки не направиха разлика. Петната ще бъдат разпределени чрез лотарийна система. Съпругът ми влезе и аз останах извън него.

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

Започнахме с Codecademy, но беше твърде ръчно за нас (нямахме Premium акаунти). Някъде четохме за freeCodeCamp. И ние го започнахме, първоначално много бавно (първият сертификат ми отне месеци, разбира се в средата учебната програма беше променена и изпуснах лаптопа си и трябваше да го поправя). След като приключи лятната ваканция и се върнах на пълен работен ден, нещата станаха трудни.

Работа на пълен работен ден и правене на freeCodeCamp на пълни обороти

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

Така че това много помогна, когато се занимавах с количеството часове, прекарани в умствена работа (преподаване и учене).

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

За съжаление не можах просто да напусна работата си и да уча на пълен работен ден, тъй като трябваше да плащам сметките, така че трябваше да се справя наистина добре с 3 неща:

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

Управление на времето

Започнах работа в 7 ч. Сутринта, така че започнах да ставам в 4:30 ч. През повечето дни. Започнах деня с предизвикателствата freeCodeCamp и кафе. Понякога също четях от книга или правех други уроци, в зависимост от това върху какво работя в момента. Учих и по време на обедната почивка и след работа, но се примирих с факта, че не бях толкова продуктивна през седмицата заради работата. Така че през седмицата правих предимно кратки предизвикателства, четене и т.н. И работех по проекти през почивните дни, празниците и свободното време.

Ако имах 30 минути, щях да чета 30 минути. Ако имах 15, направих проучване за 15 минути. Използвах всеки свободен момент от деня си, за да уча.

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

За щастие след юни работното ми време беше намалено от 10 -12 на 8, така че сега работех по нормален график и там започнах да набирам темпото.

Дисциплина

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

Най-добрият съвет, който мога да ви дам, за да се преборите с изкушението да четете статии онлайн, е следният: ако в главата ви излезе въпрос като „как летят самолети?“ (което обикновено е въпросът, който ме увлича и всмуква за 30 минути), запишете го някъде и си обещайте, че можете да прочетете всичко за него, след като приключите с това, което правите.

В 99% от случаите вече няма да ви пука, защото тези въпроси просто изскачат в мозъка ви, защото той иска да се разсее. Прокарайте и ще го победите.

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

Ще трябва да дадете приоритет и да направите труден избор.

Мотивация

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

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

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

Прекарайте малко време в мислене за това, какво точно искате да постигнете, като завършите freeCodeCamp? Какво искате да промените или да получите в личния си живот чрез него?

Учебната програма + допълнителни ресурси

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

Отзивчив уеб дизайн: Това беше частта, с която вече имах опит, така че беше лесно и забавно. Използвах някои допълнителни ресурси, особено за Flexbox. Любимото ми място за това е Interneting is hard.

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

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

  • Начало на 5-то издание на JavaScript
  • Не знаете JS
  • Програмиране на основи с JavaScript, HTML и CSS
  • JavaScript документация

По времето, когато стигнах до този раздел, се присъединих и към програмата „Summer of Code“ на „Million Women to Tech“ (1MWTT). Научих основен Python и основен до усъвършенстван JavaScript, което много помогна, особено с Promises.

Изучаването на Python също ми помогна да затвърдя някои основни концепции за програмиране. Наистина препоръчвам, когато се чувствате уверени с JavaScript, да опитате нов език, само основните му понятия. След това ще бъдете много по-удобни, след като знаете как да правите едно и също нещо с различни инструменти.

JavaScript Frameworks: Този раздел също беше страхотен, тъй като ми даде основа в React и Redux. Вече следвах курс React за Udemy, React 16.6 - Пълното ръководство (вкл. React Router & Redux).

Горещо препоръчвам този и други курсове от същия автор. Той е невероятно задълбочен и обясненията му са страхотни. Това беше един от малкото курсове на Udemy, където всъщност следвах проекта, който той прави: Обикновено гледам видеоклиповете и прилагам принципите за каквото и да работя.

На 1 милион womentotech имахме седмица на React, която беше предимно React и след това започнах да си играя с нея. По това време също започнах да работя по страничния си проект със съпруга си, който решихме, че ще бъде PWA с React.

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

API и микроуслуги: Този раздел беше голямо разкритие за мен и промени всичко. До този модул бях сигурен, че искам да бъда фронт разработчик, но след като научих Node.js започнах да мисля да бъда бек енд или Full Stack разработчик. Изграждането на API е просто толкова забавно и виждате резултати толкова бързо. Започнах да изграждам първите си малки Full Stack проекти и бях много развълнуван.

Някои от ресурсите, които използвах:

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

През това време също бях доброволец за „1MWTT“ и бях помолен да създам приложение Probot за доброволци на борда с Node. Това също ми даде малко практика с Node, което беше страхотно забавление.

Оценка на качеството и информационна сигурност: Този модул също отвори окото. Дотогава през живота си не бях писал нито един тест. Сега обичам да пиша тестове и дори много се заинтересувах от разработката, задвижвана от тестове.

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

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

- React тестване с Jest и ензим

Визуализация на данни с D3: Това беше най-трудният сертификат, с ръце. Обясненията бяха добри, но щом стигнете до проектите, разбрахте, че предизвикателствата обхващат само първия проект, а за останалите сте някак сами. И няма много добри ресурси онлайн. Четох основно документите и използвах уроци. Ето ресурсите, които най-накрая ме доведоха до това сертифициране:

- D3.js уроци от d3Vienno

- D3 документация

Съвети за завършване на учебната програма

Като обобщение, това са нещата, които ми помогнаха най-много за постигането на целта ми за завършване на учебната програма:

  • Използвайте учебната програма като пътна карта, но допълнете с други ресурси
  • Не се забивайте дълго: задавайте въпроси, Google, сдвоете програма.
  • Поставете реалистични цели за всеки ден и седмица. Не бийте себе си, ако една седмица сте по-бавни: животът се случва. Не позволявайте да ви отклони от курса.
  • Имайте предвид мотивацията си: тя е тази, която ще ви тласне през тежките дни.
  • Приоритизирайте: ще трябва да намалите времето, което отделяте за други неща.
  • Не забравяйте да си вземете почивни дни. Те са жизненоважни за учебния процес. И спете достатъчно!

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

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

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

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

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