Zašto sam kodirao svaki dan godinu dana, što sam naučio i kako to također možeš učiniti.

Tražio sam da promijenim karijeru. Današnji svijet nije nimalo isti kao onaj u kojem su odrasli naši roditelji. Slijedom toga, mnogi profesionalni savjeti koje su mi moji roditelji davali više jednostavno nisu bili relevantni za krajolik koji sada imamo.

Imao sam karijeru u polju u kojem sam uživao, ali u industriji koja umire. Čini se da postoji samo malobrojna industrija koja danas cvjeta. Čini se da su moji prijatelji koji su se bavili softverskom industrijom prilično zadovoljni svojim zanimanjima. Da sam tada znao ono što znam sada , započeo bih taj proces prije 10 godina. Želim biti tamo gdje svijet ide, a ne tamo gdje je bio.

Bila sam odlučna da to ostvarim. To je značilo ne odgađati. Htio sam odmah započeti, tako da se za sljedećih 10 godina ne bih osvrtao i rekao "Volio bih da sam s tim počeo puno ranije".

Tako sam odlučio kodirati svakodnevno jednu godinu. Dopustite mi da vam kažem o svom iskustvu.

Početak

Počeo sam s istraživanjem o učenju kodiranja. Pronašao sam stvari poput Codecademy i freeCodeCamp, besplatne resurse za vlaženje nogu. Puno se toga moglo naučiti i to će biti dugo putovanje koje je zahtijevalo puno discipline. Ali, mislio sam, što više posla uložim u to, to će mi se kasnije isplatiti.

A onda sam otkrio članak koji govori o ovom izazovu pod nazivom # 100DaysOfCode . Dva su glavna zahtjeva da biste ispunili izazov:

  1. Kodirajte najmanje sat vremena svaki dan tijekom 100 uzastopnih dana
  2. Svaki dan cvrkućite svoj napredak s # 100DaysOfCode hashtagom

Dakle, ovo je sustav koji vam daje strukturu, smjernice i javnu odgovornost kako bi vas držao na putu. I činio se kao izvrstan način da se motiviram i nastavim taj napredak.

Stoga sam počeo tweetovati sa svog računa twitter.com/PolarisTLX svaki dan, kao i na Facebook grupi.

Ideja je bila kodirati svaki dan, pretvarajući to u naviku. Ne biste si mogli dopustiti nikakva opravdanja koja biste obično izgovarali kad nešto odgađate. To s vremenom "tjera" značajne korake naprijed kojima biste inače trebali puno više vremena da biste ih postigli ili ih uopće ne biste postigli.

Postoje i dodatne pogodnosti. Budući da kodiranje uključuje koncepte koji se neprekidno nadograđuju, ako prođete nekoliko dana bez kodiranja, izgubit će se prilična količina znanja.

Osim toga, osnivač # 100DaysOfCode želi vam da ga napravite svojim. Dakle, da bih zaista ubrzao svoje učenje i postigao značajan napredak u postizanju svog cilja postizanja tog posla programera, zapravo sam se posvetio provođenju izazova puno radno vrijeme, umjesto samo jedan sat dnevno. I nakon toga dosegao sam taj čarobni znak od 100 dana.

Međutim, još uvijek nisam bio spreman za posao. Jednostavno, trebalo je puno toga naučiti. Ali jako sam napredovao i bio sam odlučan da nastavim dok napokon ne dobijem taj posao. Tako sam jednostavno odlučio nastaviti 150, 200, 250 dana ...

Glavna postignuća

I tako sam dosegla 365 dana! Evo nekih glavnih stvari koje sam uspio postići kodirajući svaki dan tijekom godinu dana:

  • Završio desetke tutorijala za kodiranje, tečajeva i knjiga
  • Riješio više od 100 algoritama i izazove kodiranja intervjua
  • Stekao certifikate " Front End Developer" i " JavaScript Algorithms and Data Structures Projects" od freeCodeCamp
  • Sudjelovao je u dvodnevnom hackathonu, gdje je odabran projekt koji će biti predstavljen članovima uprave tvrtke. Tada su odlučili pomaknuti ga naprijed u sljedeću razvojnu fazu
  • Prihvaćen je u stalni program za razvoj softvera s stopom prihvaćenosti manjom od 1%
  • Doprinošen slobodnom programu FreeCodeCamp beta proširenom nastavnom programu
  • Napisao sadržaj tečaja za novi program Ruby za Odin Project kako bi pomogao ostalim ambicioznim programerima da nauče kodirati
  • Izgradio sam funkcionalni klon Facebooka, cijeli back-end i front-end potpuno ispočetka, i neka ga uživo predstave na Herokuu kao jednom od mojih istaknutih projekata u mom portfelju
  • Uslijedio je moj prvi redoviti prihod, radim za klijenta na daljinu, što dovodi do trajnog zapošljavanja

Ta posljednja točka, dobivanje redovitog dohotka i ta pozicija s punim radnim vremenom , vrhunac je i vrhunac svih mojih prethodnih postignuća koja su me dovela do te točke. Ali ovo nije potraga koju treba olako shvatiti.

Nije lak izazov

Napuštanje mog prethodnog posla da bih slijedio svoje ciljeve značilo je da imam više vremena - ali isto tako značilo je i da imam više na vezi. Mnogi ljudi ulaze u ovo s velikim ambicijama i daju si visoke ciljeve do kojih ne mogu doći. Stoga je mnogim ljudima vjerojatno najbolje pridržavati se preporučenih sat vremena dnevno.

Ali ono što sam primijetio jest da čak i uz najosnovnije kriterije većina ljudi koji pokušaju s ovim izazovom ne uspiju. Mnogi ljudi započinju # 100DaysOfCode sa težnjom da se zaposle kao programer (doslovno deseci tisuća ljudi iz cijelog svijeta), ali malo njih zapravo postiže svoj cilj.

I to unatoč obilju kvalitetnih resursa i vodiča, od kojih su mnogi čak i besplatni . Jednostavna je stvarnost da većina ljudi svoje ciljeve ne vidi do kraja. Oni propadaju prvenstveno zbog nedostatka odlučnosti i izgovora.

Otkrio sam i pridružio se mnogim skupinama ispunjenim ljudima koji su pokušavali naučiti kodirati. Neki od njih koje sam pronašao su:

  • 30 dana JavaScript-a
  • 30 dana reakcije
  • izdvajanja poput 180-Days-of-Code
  • Slack grupe kanala koje su se posvetile radu kroz određenu knjigu kodiranja, zajedno s ciljem da svakog tjedna rade poglavlja i raspravljaju / uspoređuju bilješke.

U svakoj od ovih grupa sudionici su aktivni, entuzijastični i odlučni da će učiniti sve što je potrebno da se taj posao dobije ... prvih tjedan dana.

Tada izlike i kašnjenja i nedolaska počnu brzo pljuštati. Razgovori su sve tiši i tiši, postovi i ažuriranja postaju rjeđi. Sve ove nove mini zajednice počele bi urlati poput krijesa, a zatim bi se brzo prigušile do svijeće i zatreperile.

Često bih se potrudio pokušati ohrabriti druge da nastave s entuzijazmom i zamahom. Ponudio bih pomoć bilo kojem članu koji je zapeo na nečemu ili mu je potrebna pomoć. Dao bih alternativno objašnjenje koncepta s kojim su se borili (čak i ako nisam administrator ili vođa tima).

Iz mojih zapažanja tijekom godinu dana bavljenja time, procjenjujem da od svakih 10 000 ljudi koji svake godine počnu učiti kodirati putem interneta širom svijeta, manje od 100 izdrži više od nekoliko mjeseci.

Oni koji odustanu neće postići svoje ciljeve. Oni koji su odlučni i nastave tako biti će oni koji će dobiti posao.

Pa kako sam to učinio - a kako ti možeš?

Postoji nekoliko stvari koje vam mogu pomoći da ostanete na putu i postignete svoje ciljeve. Neki od njih su gore opisani i uključuju:

  • dajući vašem napretku određenu strukturu i odgovornost s nečim poput # 100DaysOfCode
  • postavljanje malih inkrementalnih ciljeva i njihovo postizanje putem
  • programiranje u paru
  • pronalaženje grupa kojima će se pridružiti i zajedno učiti

Iako ove skupine zapravo nisu izdržale i uspjele u cjelini, ipak mi je bilo korisno pridružiti se. Nisam namjeravao dopustiti da niska angažiranost i porazi drugih ljudi oko mene utječu na moju vlastitu odlučnost da nastavim napredovati.

Najvažnija stvar koju sam učinila

Morate shvatiti da će vam, kad imate ambiciozan cilj, poput podučavanja sebe kodiranju, biti potrebna određena odricanja. To moraš biti spreman.

Moj društveni život često je zaostao, kao i vrijeme za video igre, i nisam bio u toku s najnovijim vrućim showom na Netflixu. Bilo je i dana kad mi se stvarno nije sviđalo, ali trebao sam "malo" napredovati. Morate se podsjetiti da se radi o odgođenom zadovoljenju, podnošenju kratkoročnih žrtava za dugoročne dobitke.

Ostale stvari koje su mi pomogle

Također sam koristio WakaTime i Clockify kako bih pratio koliko sam sati proveo kodirajući svaki dan. To mi je dalo dodatni poticaj jer sam htio nadmašiti svoj dnevni ili tjedni prosjek. Redovito sam čak i visoko kotirao na njihovim globalnim ljestvicama vođa.

Također se ima što reći za plaćanje nečega. Dugo sam uspio pronaći resurse koji su bili potpuno besplatni. U početku toplo preporučujem da se držite besplatnih resursa, barem tijekom prvih nekoliko mjeseci . To će vam pružiti priliku da saznate uživate li zaista u ovim stvarima ili ako one nisu za vas. Ako odlučite da to nije za vas ili uživate, ali jednostavno ne možete izdržati nekoliko mjeseci, tada nećete izgubiti puno osim vremena.

Ali nakon toga otkrio sam da su neki plaćeni resursi zapravo bolji od nekih besplatnih. A zapravo bacanje novca na nešto samo po sebi stvarno utječe na neke ljude koji trebaju dodatnu motivaciju. Često je vjerojatnije da ćete nešto shvatiti ozbiljno ako ste to platili.

Izjava o odricanju odgovornosti

Iskrena sam kad priznajem da sam propustila pregršt dana u tom vremenskom razdoblju. Ali, uvijek sam o tome bio otvoren u svojim javnim objavama. Osnivač izazova ima za reći na tu temu:

“Možete preskočiti jedan dan tu i tamo za neplanirane situacije, ali ne više ... Dopušteno vam je propustiti jedan dan (ali onda to nadoknadite dodavanjem još jednog dana na kraj 100). Cilj je postati dosljedan, bez obzira što vam život dobaci. " - Alexander Kallaway, tvorac # 100DaysOfCode

Napredak i ishod je ono što je zaista važno i u tome je cijela poanta vježbe. Bilo mi je puno ohrabrujuće samo nadoknaditi propuštene dane i nastaviti, za razliku od resetiranja brojača svaki put. I u cjelini bih bio puno produktivniji ako bih uzeo slobodne dane, sve dok je to bilo samo u vrlo rijetkim prilikama, kada sam to stvarno trebao.

Neki od praznina bili su 60. rođendan moje mame , momačko kampiranje i Božić. Inače nije bilo opravdanja. Kodirao sam na Silvestrovo i Novu godinu. Kodirao sam kad sam bio bolestan,pa čak i jutro prije nego što sam otišao na operaciju i dan nakon operacije. ?

Na mojoj stranici profila na GitHubu možete prilično vidjeti koje sam dane propustio: //github.com/PolarisTLX. Ali neke praznine predstavljaju vrijeme kada sam bio u udaljenim regijama bez pristupa Internetu i nisam mogao predati kod na GitHub. Ali naglasio sam da knjigu s kodovima učitam na tablet za koji sam bio siguran da je napunjen prije odlaska. (To nije moj najdraži način učenja koda, ali može biti lijepo promijeniti način učenja na malo i svako malo isprobati neki drugi medij.)

Napokon, nedostaje jedna skupina dana ranije. To se dogodilo jer sam obrisao spremište GitHub kad sam bio frustriran sukobom spajanja i jednostavno odlučio izbrisati spremište i zamijeniti podatke u novom. Nisam znao da će to izbrisati gotovo tjedan dana obveza s zapisa. * okretanje stola *

Moj sažetak napretka za 365 dana

Tako sam u 365 dana napredovao kroz sljedeća postignuća:

  • učenje korištenja uređivača koda i izrada jednostavnih statičnih web stranica
  • izgradnja funkcionalnih kalkulatora i vremenskih aplikacija
  • izrada jednostavnih interaktivnih igara na 2D platformi
  • upoznavanje s razvojem punog sloga s više jezika, okvira i operativnih sustava te stvaranje iscrpne web stranice RESTful za društvene mreže (gdje se korisnici mogu prijaviti s odabranom lozinkom, objavljivati, lajkati i komentirati, prenositi vlastite fotografije, stvarati događaje, slati i prihvaćati zahtjeve za prijateljstvo i pozive na događaje s drugim korisnicima itd.)
  • stvaranje materijala za tečaj koji će pomoći ostalim ambicioznim programerima da nauče kodirati.

Došao sam do točke kada me potencijalni klijenti i poslodavci u tehnološkom prostoru sada vide kao prednost. Sad dobivam plaću za kodiranje jer mogu stvoriti ono što žele, riješiti njihove probleme i ponuditi stvarnu vrijednost. Posao se isplati, a ja ću samo nastaviti biti bolji.

Nadam se da ste uživali čitati o mom putovanju. Toplo vam preporučujem da isprobate izazov # 100DaysOfCode. Ako vam se post svidio, molim vas pljeskajte? širiti vijest i motivirati druge.