Защо е толкова трудно да напуснете зоната си на комфорт, за да следвате мечтите си на разработчици?

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

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

Научихме как да използваме Wordpress за един ден, но далеч не знаехме какво всъщност правим. Започнах да правя първия си макет, тъй като имах ясна визия за фиктивната компания, която измислих: Barkingham Palace!

Barkingham Palace, петзвезден курорт за кучета. Да, кучета.

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

Започнах с тема, но скоро осъзнах, че не обичам да използвам предварително проектирани оформления. Така че преминах към Elementor и накрая трябваше да започна да използвам някакъв CSS за малки персонализирани ефекти.

Тук животът ми се обръща.

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

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

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

Докато не срещнах CSS grid. Grid и Flex определено ме спряха за секунда. Първите няколко оформления не се получиха точно както си ги представях. Ресурсът, който ми помогна да го преодолея, беше „CSS бележки за професионалисти»“ (Щракнете за безплатно изтегляне). Много подробна книга за CSS, която силно препоръчвам на всеки, който иска да овладее CSS.

След 3 месеца интензивно учене се почувствах най-накрая готов да се справя със следващата си цел: Светият JavaScript.

След като се присъединих към freecodecamp, скоро получих това, което наричам „Google - Отравяне“. Сигурен съм, че всички познавате усещането, когато почувствате някаква болка и започнете да търсите в Google симптомите си, само за да разберете, че най-вероятно няма да оцелеете още една седмица... Е, същото важи и за търсенето на „Как да станете уеб програмист“.

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

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

Умът ми стана най-големият ми враг. Вече не можех да видя бъркотията във функцията. Бях си поставил график за овладяване на JS за 2 месеца и опитът да реша едно просто функционално предизвикателство за половин ден се превърна в голямо отваряне на очите: Няма бързо решение за това. Няма такова нещо като „О, искам да стана разработчик само за 6 месеца, както всички скъпи тренировъчни лагери продължават да викат там. JS не е като да прочетете рецепта и да направите вечеря. Това щеше да отнеме много време и самодисциплина. И преди всичко търпение с проклетото ми несигурно аз.

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

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

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

Идеята ми беше да създам bullet planer. Обичам bullet planners и ги имам във всякакви форми и размери у дома. Все още предпочитам ръкописни бележки, но това не означаваше, че някой друг не би искал да прави същото на компютър.

Carpe Diem се роди. Това ме накара да практикувам всички CSS, които научих досега, внедрявайки всички малки компоненти и всъщност ги карайки да работят — проследяване на приема на вода, произволно показван цитат от моите активи, табло за настроение, възможност да изтеглите ежедневния си лист или да направите прост списък със задачи, инструмент за проследяване на работното време - беше най-възнаграждаващото нещо за правене. Повечето от нещата, които научих досега, не покриваха това, което се опитвах да направя с този проект, но той ми даде основа, която постигна целите наполовина. Другата половина трябваше да изследвам и кодирам сам. Проба и грешка в най-добрия случай.

Това беше много важен урок: Ученето е по-добро чрез правене.

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

Накратко — през последните 8 месеца се подготвих за изпита „Програмиране на Microsoft 70–480 в HTML5 с JacaScript и CSS3“. Не взех изпита в края, но те имат много добро учебно ръководство и провеждането на практическите изпити ми помогна да запомня повечето концепции и да изградя здрава основа.

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

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

Но вие не го правите.

Което ме води до друг научен урок: Вие не знаете всичко. И това е добре.

Програмирането не е нещо, за което се подготвяте колкото можете и след това знаете, че ще преминете. Най-вероятно изобщо няма да преминете в началото. Ето защо отстраняването на грешки е толкова голяма част от кодирането. Става дума за НАКАРАНЕТО на нещата РАБОТЕЩИ, те няма да работят само защото знаете цялата теория на езика за програмиране наизуст.

Мисля, че езиците за програмиране се наричат ​​„езици“ с причина. Те трябва да се научат като истински говорим език. Първо научавате всички думи, след това се опитвате да съберете първите си изречения и след като успеете да направите това, трябва да разберете граматиката, бъдещето и миналото време, изразите... След като разберете колко време отнема да научите нов език и стигнете до определена точка на владеене, ще сте наясно колко време отнема да овладеете кодирането. Много от нас, включително и аз, си падаме по рекламите и статиите, които казват, че всеки може да се научи да кодира и да си намери работа за 6-12 месеца. Но това е заблуда (няколко изключения тук и там) и това, което го прави още по-лошо, е натискът, който тези думи оказват върху всеки от нас.

Ако ми кажат, че мога да бъда Frontend разработчик след 6 месеца, ще си дам 2 месеца за HTML и CSS и още 4 месеца за JS и Bootstrap и може би малко Node.js. Може да успея да премина през първата част навреме, но щом JS ме удари като айсберг, Титаник може да не успея да изпълня графика и това ще ме накара да се почувствам като губещ и изобщо не съм създаден за това. Тук се крие опасността от погрешни възприятия относно кодирането.

Някои от най-честите грешки, които правят повечето новородени разработчици са

  1. Опитвате се да научите всичко наведнъж. Съсредоточете се върху едно нещо и когато се почувствате удобно да го използвате, преминете към следващото. Бебешки стъпки. Опитайте се да се съсредоточите върху една област на развитие и се опитайте да я овладеете. Ако сложите твърде много в чинията си наведнъж, това само ще доведе до объркване и ще забави процеса на учене.
  2. Изчакване да станете експерт, преди да навлезете дълбоко във водите на кодирането. Повечето от нас чакат да завършат „този“ курс или да получат „този“ сертификат, за да се почувстват валидирани. Всеки започва с ниска увереност и съмнения, но ако имате идея за уебсайт или приложение СЕГА, тогава познайте кога е правилното нещо да го създадете? СЕГА. Най-добрият начин да изградите увереност е да изградите набор от умения, като действително карате нещата да се случват.
  3. Отказване точно преди да е „щракнало“. Твърде често ще се чувствате сякаш сте изправени пред огромна стена. Трябва ви много търпение, за да научите програмирането. Неуспехите, бъговете и грешките са част от това пътуване и ви правят това, което желаете да бъдете: добър програмист. Не забравяйте, че ние решаваме проблеми, а не се отказваме.
  4. Учете за работата. Ако единственият ви фокус е как и колко скоро ще намерите работа и решенията ви какво да научите се основават на пазара на труда, а не на вашите лични таланти и предпочитания, вие сте настройвайки се за провал. За да си добър в нещо, трябва да го направиш за себе си. Защото те изпълва. В един момент исках да овладея Java, защото повечето работни места, където живея, го изискват. Но открих любовта си към FrontEnd и React и въпреки че може да изглежда, че ограничава възможностите ми за работа, сигурен съм, че ще бъда по-добър в това, отколкото в нещо, от което не се интересувам напълно.
  5. Писане на код без план. Създаването на структура на приложение, преди всъщност да започнете да пишете първите редове код, ще ви помогне много. След като имате общ преглед и знаете точно какво трябва да прави всеки компонент, ще ви бъде по-лесно да го кодирате по съответния начин.

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

Но колеги бъдещи разработчици: ОТКАЗВАМ ДА СЕ ОТКАЖА.

Най-накрая намерих нещо, което наистина ми харесва. Поставя ме в онова чувство на ПОТОК, за което прочетох в някакъв супер интелигентен пътеводител за живота. Усещането, когато времето и всичко около вас стават неуместни и замъглени и опитвайки се да решите компонент в продължение на 8 часа, ви се струва като 8 минути. Удовлетворението, което изпитвам всеки път, когато направя нещо да функционира, но завършвам цяло приложение.

Присъединяването към „Жените, които кодират“ ме накара да осъзная колко много жени има навън, които са открили любовта си към кодирането, но са толкова изгубени и затрупани от всички учебни ресурси и техния вътрешен критик. Това трябва да се справи с малки деца, които скачат на главата им, докато се опитват да напишат функция. Ядосани съпрузи и приятели, чувствате се пренебрегнати, защото предпочитате да научите Redux, вместо да гледате телевизия или да общувате. Искам да уведомя всеки един от вас там:

ПРОСТО ГО НАПРАВИ.

Това не е спринт, никой няма да ти предложи работа след 8 месеца работа. Отделете време, опитайте нещата, намерете своя собствена ниша и се опитайте да бъдете възможно най-добри в нея. Създавайте неща, създавайте още неща, създавайте толкова много неща, че можете да изберете кои проекти от десетките искате да включите в портфолиото си. Когато почувствате, че искате да се откажете - отстъпете. Бъдете търпеливи със себе си. Спете, прочетете нещо несвързано и не мислете за код за ден-два. Работи като чар.

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

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

Реших да документирам това необикновено пътуване. Искам да запиша всичките си преживявания и стъпки, които предприемам по този път, така че всеки път, когато отново се удавя в съмнение, да мога да си припомня какво ме доведе тук на първо място — Любовта към кода.