Kuinka kauan ilmainen koodileiri kestää?

Vietin talven loppu aurinkoenergialla, uunilla lämmitetyssä mökissä Pohjois-Utahissa. Suihkua ei ollut, mutta asensimme satelliitin katolle ja onnistuimme vetämään nopeamman Internetin kuin huoneistoni San Franciscossa. Päätin oppia koodaamaan.

Halusin käyttää eristäytymistä oppiaksesi jotain uutta. Olen ollut teknisesti ajatteleva niin kauan kuin muistan, mutta aikaisemmat koodausyritykseni ovat tuottaneet epätavallisia tuloksia.

Olen oppinut joitain C ++ -lukuja lukiossa, mutta kirjoitin enimmäkseen valtavan, toistuvan koodin, koska en ymmärtänyt toimintoja. Kävin Visual Basic .NET -kurssin undergradissa, mutta minulla on melkein nolla muistia siitä, mitä siellä tapahtui. Työskentelin Codecademyn JavaScript-kurssin muutama vuosi sitten riippumatot Guatemalasta.

Luulen, että tämä mutkaton polku, joka ei ole täysin oppimista, valmisti minua jollain tavalla. Minulla on myös tutkinto tietokonegrafiikasta, joka keskittyi paljon voimakkaammin suunnitteluun, animaatioon ja mallintamiseen kuin koodaukseen, mutta se antoi minulle perustiedot HTML / CSS: stä.

Paljon on kirjoitettu "miksi koodata", joten en lyö kuollutta hevosta täällä.

Lyhyt versio on tämä: älykkäät ihmiset näyttävät olevan yhtä mieltä siitä, että koodaamisen tuntemus on voimankerroin melkein kaikelle muulle elämässäsi.

Kaivettuani verkossa selvittääkseen parhaan paikan aloittaa, päätin aloittaa työskentelyn Free Code Campin kautta. Toinen sija oli The Odin Project, mutta Reddit näytti sopivan FCC: n olevan vahvempi lähtökohta. Ja jostain syystä luotan Redditin pesän mieleen, kun kyse on tästä.

Joten asetin pieneksi alkutavoitteeksi 2 tuntia / päivä ja asensin RescueTimen seuraamaan itseäni. Tässä on katsaus siihen, miten se meni.

PÄIVÄ 1

Työskentelin nopeasti kolmen ensimmäisen osan läpi. HTML5 / CSS: n, Responsive Design with Bootstrapin ja jQueryn arvioitu kokonaisaika oli 13 tuntia, mutta RescueTimen mukaan pudotin ne vain neljään. Mietin tässä vaiheessa, tekikö jotain väärin, mutta päätin onnitella itseäni ja jatkaa eteenpäin.

PÄIVÄ 3–4

Olin ollut rullalla ja liikkuin sujuvasti Basic Javascript -osiossa. Varhain aamulla 3. päivänä aloin tuntea olevani jumissa ensimmäistä kertaa Profile Lookup -harjoituksessa, johon sisältyi silmukka iteroimaan joukko esineitä. Mutta klo 22.30 mennessä olin päässyt melkein puoliväliin algoritmien komentosarjojen (ja RescueTimen mukaan vietin yhteensä 12 tuntia 20 minuuttia Free Code Campilla).

Seuraavana aamuna aloin kynnellä muita perusalgoritmeja kirjoittamalla joitain ratkaisuja 3-5 minuutissa. Vahvistin FCC-keskustelussa, että monet ihmiset aloittavat suhteellisen nopeasti ja hidastuvat ajan myötä suhteellisen vaikeuden kasvaessa (mikä tekee arvioiduista valmistumisajoista realistisempia).

Neljännen päivän yöhön mennessä olin koonnut algoritmit yhteensä 18 tunnilla FCC: llä (ja arviolta 22 tuntia koko työvoiman laskuaikaa, joka käytettiin muihin tutkimusresursseihin, kuten Mozilla Developer Network.) tässä vaiheessa oli 75 tuntia.

Alkuperäinen mikrotavoitteeni, 2 tuntia / päivä, oli jättänyt minut ajattelemaan, että olisin suorittanut 100 tuntia työtä, kun lähdin Utahin piilopaikastani. Nyt kun minusta on tullut todella innoittamana työ, jonka olen suorittanut 75% siitä, mistä halusin olla, vain neljässä päivässä.

PÄIVÄ 17

Menin päähän alas -tilaan enkä ottanut mitään edistysaskeleita kahden viikon ajan. Huono uutinen on, että siellä on vähän raportoitavaa, mutta hyvä uutinen on, että FCC: llä oli minut virtaustilassa kaksi suoraa viikkoa. Siihen mennessä olin saanut valmiiksi luurankosalkun (nyt hieman kevyempi) ja rakentanut satunnaisen lainauslaitteen sekä todella kauhean Sormusten herran innoittaman sääsovelluksen. Lähetin 17. päivänä Wikipedia-katseluohjelmani. API: n käytön oppiminen oli hauskaa ja hyödyllistä. On käynyt ilmi, että voit rakentaa keskikokoisia asioita ymmärtämättä taustapalvelimia tai tietokantoja (voit vain liittää jonkun muun)!

PÄIVÄ 23–24

Työskentelemällä välialgoritmien läpi huomasin, että aloin nähdä eron puhtaan ja ruman koodin välillä. Aloin myös upottaa lisää muistiinpanoja koodiini myöhempää tarkastelua varten. Jotenkin kesti niin kauan ymmärtääkseni, että console.log ("testit") aina sylkivät selaimen JS-kehittäjäkonsoliin. Olin aloittanut //repl.it -ohjelman käyttämisen koodin suorittamiseksi, joka näyttäisi konsolilokit selkeänä tulostena. Eräänlainen kiusallinen nyt, mutta hei - en antanut sen estää minua ja nyt tiedät paremmin.

Kaatasin selaimen ensimmäistä kertaa työskentelemällä Sum of All Primes -sovelluksen kautta. Riippumatta siitä, olen viime kädessä selvittänyt asian ja tunsin todella hienoa saada 99% päätoiminnosta ratkaistu ilman ulkopuolista tutkimusta.

PÄIVÄ 31–33

Löysin Advanced Algorithm -haasteet melko… hyvin… edistyneitä. Olin melko hurmioitunut, kun valmistuin ”Friendly Dates Range” -algoritmille vain 90 minuutissa. Kahdessa näistä edistyneistä algoritmeista viittasin tiettyihin toimintoihin StackOverflow'n ulkopuolella auttaakseni koodini puhtautta. Tuolloin olin huolissani siitä, että tämä saattaa palata satuttamaan minua, mutta monet kohtaamani resurssit väittävät, että suuresta ohjelmoijasta tekee kyvyn esittää hakukoneille erityisiä kysymyksiä. Esimerkiksi Jeap-version luominen Heapin algoritmista tyhjästä olisi korkean tason matematiikkaa ja pyörän keksiminen uudelleen. JavaScript-mallin löytäminen, josta voisin työskennellä, antoi minun todella viimeistellä auto.

Päivä 33 käärin viimeiset edistyneet koodauksen haasteet. Seuraava projekti (ensimmäinen Advanced Front End -kehitysprojekteista) vaati JS-laskimen rakentamisen. Oli mukavaa kaivaa takaisin asioiden HTML / CSS-puolelle. Vastasin haasteeseen koodaamalla live-koodausta FCC: n Twitch-kanavalla ja päädyin projektin loppuun 24 hengen live-yleisöllä. Tämä oli hieno kokemus, joka vaati minua selittämään koodini kirjoittaessani sitä. Live-koodauksella on myös sisäänrakennettu tarve ylläpitää vauhtia. Se palkitsee koodauksen tyylin "liikkua nopeasti ja rikkoa tavaraa" enemmän tutkimusta vaativalla menetelmällä.

PÄIVÄ 40

Tic-Tac-Toe-pelin koodaaminen osoittautui (minulle) kaikkien uuvuttavimmaksi projektiksi. Minulle tekoälyn koodaus ei ollut kovin hauskaa tai tyydyttävää. Mielestäni lopputuloksellani oli heikko tekoäly ja sub-par-rajapinta. Mietin tuolloin, eikö tällaisten vuorovaikutteisten asioiden rakentaminen yksinkertaisesti ollut intohimoni.

PÄIVÄ 45

Olen työskennellyt mielettömän kovasti viimeisen projektin parissa, joka pyysi 1970-luvun Simon-pelin JavaScript-kopiota täydennettynä valinnaisella "tiukalla tilalla" ja kasvavalla pelinopeudella. Olin päättänyt tehdä siitä poikkeuksellisen. Tämän kirjoituksen jälkeen minusta tuntuu silti, että Simonini on yksi parhaiten näyttäviä versioita siellä. Päivänä 45 sain projektin päätökseen ja nappasin Front End Development -sertifikaatin!

Lopullinen tilasto:

77 tunnin referenssi ja oppiminen

67 tunnin ohjelmistokehitys

41 tuntia viestintää (mukaan lukien FCC-chat)

= 185 tuntia 45 päivän aikana (tai ~ 4 tuntia / päivä)

Päätin lopettaa opetussuunnitelman noin puolessa ajassa.

En voi suositella tarpeeksi Free Code Campin Front End Dev -ohjelmaa. Riippumatta siitä, kuinka kauan se kestää, se on ilmainen, se on helppo aloittaa, ja sillä on älykäs ja helppokäyttöinen yhteisö (jos sanon niin itse).

Olin huomannut olevani henkisesti nälkää ja koodaamisen oppiminen tarjosi tyydyttävän venytyksen vanhoille henkisille lihaksille. Muutan takaisin San Franciscoon ja aion jatkaa tätä matkaa tekniikkaan.

Jos opit koodaamaan, käsittele koulutustasi samalla tavalla kuin se on. Seuraa minua ja kerro minulle, kuinka voin auttaa! Koskaan aikaisemmin iteratiivisen kehityksen valtavat voitot eivät ole olleet niin selvät kuin koodaamisen oppimisen yhteydessä.