Mida ma olen õppinud 12–22-aastastest esiotsa arendamise kohta

Foto Teddy Kelley saidil Unsplash

Mõnikord küsivad sõbrad mu käest, kuidas ma sattusin esiotsa arendusse. Ma ütleksin, et ma lihtsalt takerdusin sellesse; aga tõde oli see, et ma ei teadnud tegelikult. Nii et tegin eelmisel nädalal sügavat sukeldumist Interneti hämaratesse nurkadesse, et kaevata üles kõik esiplaaniprojektid, mille kallal olen töötanud alates 12-aastasest.

Ja poiss, kas see oli sukeldumine.

Nii et siin nad on. Iga kohutav otsus, iga piinlik veebisait, iga viga ja õpitud õppetund tegi minust eesruumi arendaja, kes ma täna olen. Siin nad on oma täielikus filtreerimata hiilguses.

(Kui te alles alustate arendustegevust, olen lisanud teel saadud teadmiste tükid, mis loodetavasti aitavad teie teekonnal teie aega kokku hoida. Kui olete vana käsi ... loodan, et see lugu annab itsitada või kaks )

12-aastane

Las ma panen paika. See oli 2007. Steve Jobs tutvustas äsja iPhone'i. Kõik kasutasid MSN Messengeri. Kellelegi ei meeldinud Windows Vista. Need olid asjad, mida ma mäletan, kuid ma ei mäleta, millal täpselt otsustasin veebisaidi teha.

Mulle meeldis idee, et midagi veebi pandud on näha kõigil inimestel kogu maailmas, näiteks maagia. Kindlasti ei saanud see nii raske olla. Kas saaks?

Minu esimene veebisait - tuhande sammu pikkune teekond ... algab telkide ja välkvidinatega?

Ma eksisin. See oli raske. Mul polnud aimugi, mida ma teen.

Ühel hetkel ei suutnud ma isegi aru saada, kuidas kasutada silti
, mis loob reavahetuse. Olin segaduses, miks tavaline reavahetus koodis veebisaidil sarnast katkemist ei põhjustanud. Proovisin kasutada silte

, mis loob lõike, kuid ma ei mõistnud mähkimise mõistet. Proovisin isegi uue rea loomiseks lauda üles seada.

Hoolimata kõigest sellest raskest tööst oli asi veelgi halvem (isegi 2000. aastate jaoks). Mäletan, et mu klassikaaslased tegid sellest nalja, kui jagasin nendega linki MSN Messengeri kaudu. Ja jälle, kas ma saaksin neid süüdistada? Sellel oli kõik Web 1.0 julmused: gif, teekonnad, halvasti plaaditud taust, Flash-vidinad ... te nimetate seda. Mind heidutati. Ja nii ma õppingi oma esimese õppetunni.

Teie esimene projekt on halb. Minu esimene HTML-leht oli kohutav. Minu esimene CSS-fail oli nii räpane, et Marie Kondo seda ei puutuks. Minu esimest mobiilirakendust eirati. Minu esimene rakendus React kukkus iga minut. Esiosa õppimine on keeruline, kuna see on paljude disaini ja arvutiteaduse ideede ristumiskoht, ja on õige, kui seda esimest korda ei saada.
Ma luban, et see läheb lihtsamaks. Aja jooksul saate aru, et olete loonud ülekantavate oskuste komplekti (näiteks HTML aitab teid nii Reaxi komponentide kui ka Androidi tegevuste paigutuse loomisel). See, et tunnete end milleski halvasti, on esimene samm, et olla hea esiotsa.

Ma teadsin, et see on halb, kuid teadsin ka, et saan paremini hakkama. Niisiis, Halloweeni jaoks vürtsitasin Gimpi abiga saiti värske kasuka kõrvitsate ja Evanescent-tüpograafiaga. Hei, sellel oli isegi originaalne seiklusmäng, kus mängijad päästsid fantaasiamaailma maagia abil

Ümberkujunduse käigus õppisin ka korraliku triki. Sain aru, et HTMLi ja CSS-i maailmas pole varjatud. Iga tehnika, saladus oli vaid ühe Vaateallika kaugusel. Isegi Apple ei suutnud peita nende ilusate tootelehtede saladusi ja ma veedaksin nende saidil tunde nende saladuste lahti harutamisel.

Kui keegi teine ​​saaks hakkama, siis saaksin ka mina.

Kusagil teel lõpetasid klassikaaslased minu üle nalja tegemise.

Vaadake allikat. Kui näete veebisaidil midagi lahedat, küsige endalt, kas saate seda reprodutseerida. Kas saaksite seda teha ainult CSS-iga? JavaScript? Kui ei, siis paremklõpsake sellel> klõpsake käsul Kontrolli (Chrome) või Tööriistad> Veebiarendaja> Inspektor (Firefox) ja proovige kood ümber kujundada. Järgige järjehoidjaid või pidage nende lahedate efektide loendit, mida soovite kunagi proovida.

14-aastane

Enne Snapchati ja Instagrami olid lastel ajaveebid. Kõigil mu sõpradel oli üks. Paljud neist muutsid meelsasti oma blogisid tavapäraste teemadega. Aga no siree, mitte mina. Oh ei.

Alustasin olemasolevate teemade muutmisega enda jaoks. Seejärel ehitaksin teemad oma sõprade sünnipäevade kingitusteks. Teiste klasside lapsed tulid minult teemasid küsima. Minust sai ajaveebi tüüp.

Sattusin tõesti triipudesse

Ja nii algas minu tegelik viha HTML-i. Iga teema oli üheleheline HTML-dokument manustatud CSS-iga. Kasutades pseudosilte, nagu <$ BlogItemTitle $>, sain kontrollida, kuidas ja kuhu iga element paigutati. Pseudosildid asendab teenuseosutaja hiljem tegeliku sisuga. Lõpuks olin ma vaba WYSIWYG-i toimetajate piiridest!

Nii kaua, tripod.com!

Mäletan, et veetsin tunde CSS-iga elementide liigutamisel, õppides erinevusi kuva- ja positsioonitüüpide, veeriste ja polstrite vahel. Ühe konkreetse teema jaoks kasutasin läbipaistvate mustritega valge esiplaani taga staatilise taustana neljavärvilisi triipe. Iga element pidi olema ideaalselt joondatud, nii et muster ilmnes kasutaja kerimisel:

Horisontaalne keritav sait, nii kole!

Mulle meeldis teemade arendamine. Mõistsin, et veebileht pole lihtsalt kahemõõtmeline, vaid vastab JavaScripti ja CSS-i pseudovalijatega inimestele, näiteks: hõljutage ja: aktiivne. Nad kasvasid ja kahanesid, tuhmusid sisse ja välja.

See oli elav, interaktiivne pind.

Kui see oli hästi läbi viidud, valmistas see koostoime inimestele rõõmu ja ma armastasin jälgida oma sõprade reaktsioone nende uutele teemadele. Püüdsin proovida uusi ideid ja tehnikaid, et teada saada, mis inimestele meeldis.

️Areng interaktsioonideks. Head esiotsa elemendid on leitavad (annab näpunäiteid selle kasutamiseks) ja tagasisidet (reageerib interaktsioonidele informatiivsel viisil). Näiteks võib nupp hõljutades hõljutada taustvärve ja suurendada klõpsamisel läbipaistmatust. Siin on hea video ja raamat sellel teemal.

16 aastat vana

Juulis 2013 registreerisin oma esimese domeeni korraliku veebimajutaja juures See tundus läbimisriitusena, nagu tegin lõpuks midagi tõelist. Panin paika oma portfelli ja sellest ajast alates on see olnud koduks minu projektidele ja katsetele. Uute oskuste omandamisel kasvas ja arenes see minu kõrval.

Nad kasvavad nii kiiresti üles

Ma ei saa üle tähtsustada, kui kasulik oli minu jaoks olnud domeen ja hea serveri host. Ma sain veebis katsetada uute esiotsa ideedega. Juhtisin cron töökohti, mis mu elu lihtsamaks tegid. Kui vajan kliendi või koolitöö jaoks uut ruumi, sain luua uue alamdomeeni.

Tundsin end oma esimese veebisaidi juurutamisel suure poisina. Peaaegu oli tunne, et võiksin elamiseks midagi sellist teha. See oleks päris lahe, mõtlesin endamisi.

Pange portfoolio üles. See on suurepärane projekt veebis juurutamise kohta. Lihtsate valikute hulka kuulub FTP, mis võimaldab teil faile serverisse kopeerida ja neid teenindada. Kui olete sellega rahul, soovitaksin seadistada pidev integratsioon ja Git. Olen proovinud mitmeid pakkujaid, enne kui nad lõpetasid jagamise hostimisega Dreamhostil (siduslink), millega olen olnud väga rahul. Kuid seal on kindlasti tasuta alternatiive.

18 aastat vana

Singapuris peavad 18-aastased kaks aastat sõjaväes veetma. Mõne õnne korral postitati mind armeeüksusesse, kes otsis mobiiliarendajat. Nad küsisid, kas ma olen midagi sellist varem teinud. Ma poleks seda teinud, aga kui erinev võiks see olla veebisaidi arendamisest? Nii et ma ütlesin jah.

Selgub, ma eksisin. Kuid hei, selleks ajaks polnud ma keegi, kes lasks kogemuste või kvalifikatsiooni puudumisel mind peatada.

Eessõnaks öelgem, et kuigi ma olin varem JavaScriptiga töötanud, polnud mul objektorienteeritud programmeerimise kontseptsiooni, mis oli rakenduste arendamisel eriti oluline. Minu esimene ülesanne oli välja töötada olemasoleva API jaoks Androidi rakendus, mis võimaldab sõduritel haigetel helistada. Minu teine ​​eesmärk oli luua hariv mäng.

Veetsin päevi Google'is ja StackOverflow'is, küsides sadu kõige põhilisemaid küsimusi, näiteks „Kuidas ma saan tekstivälja luua“ või „Kuidas panna nupp asju tegema“. Veetsin nädalaid NullPointerExceptions kaudu klaviatuuril pead põrutades. Hammaste naha alt õnnestus mul midagi korralikku korralikult välja kloppida.

Ehkki rakendused nägid välja atraktiivsed, oli selle taga olev kood kõike muud. Seal olid spagetikoodi read ja jooned, selgeid arhitektuurilisi mustreid polnud ja loogika oli tihedamalt ühendatud kui ketilüli tara. Seda oli võimatu säilitada ja sel põhjusel ei saanud ühtegi minu tehtud rakendust aktiivselt värskendada.

Läheks mitu aastat, kuni loen, kuidas kirjutada skaleeritavat ja puhast esikoodi. Kuid kui ma seda tegin, sain aru, miks see on oluline.

🧪 Kirjutage teste. Testide kirjutamine on ilmselt ainus efektiivseim komme parema koodi kirjutamiseks. Kas mäletate, kuidas kodeerimisel õppides kirjutasite funktsioone, mis üritasid mitu katset läbi viia? See on selline, aga nüüd oled sina ka see, kes testid kirjutab! Iga funktsiooni jaoks hea testi (ühiktesti) kirjutamine võimaldab teil tagada, et teie kood töötab ka siis, kui muudate koodi baasi muid osi.
Eraldage oma kohustused. Kas teil on funktsioon, mis teeb paljusid asju? Jagage need mitmeks funktsiooniks. Kas teil on klass, kus on mitu tükki erinevaid funktsioone rakendavaid meetodeid? Jagage need mitmesse klassi. Kohustuste lahusus on SOLIDI põhimõtetest võib-olla kõige olulisem. See muudab teie koodi loetavaks ja skaleeritavaks. Puhas kood: Robert Martini käsiraamat Agiilse tarkvara käsitöö (siduslink) on lugemiseks igale esiotsa arendajale.

20 aastat vana

2016. aasta juunis avaldasin rakenduse Google Play poodi. See aitab õpilastel õppida füüsikat, mis oli teema, mida olen alati armastanud. Esimesel päeval oli sellel 3 allalaadimist. Teisel päeval oli see 5. Kolmandal päeval oli see 1000. Ma ei märganud seda esialgu, kuid arv kasvas pidevalt. Oma esimese kuuga laekus see 7000 allalaadimist. Septembriks oli igakuiste installimiste arv kasvanud 15 000-ni.

Kuidas? Ma ei olnud üldse turundust teinud.

Selgub, et keegi jagas rakendust Redditis (kaks korda!) Ja inimestele tundus, et see meeldib. Selle said kätte mitmed arvustussaidid ja ajaveebid. Inimesed hakkasid sellest YouTube'is videoid tegema. Sel hetkel olin nii põnevil, et sain südamepekslemist. Arvan, et mingil hetkel nutsin. Tundus, et kogu mu raske töö tasus end lõpuks ära.

Mind toodi tagasi, kui ehitasin oma sõprade ajaveebide teemadeks kingitusi nende sünnipäevaks. Nüüd andsin selle asemel kingitusi tuhandetele inimestele kogu maailmas. Sain ühtäkki aru, kui väga armastan ma arendada liideseid, mis võiksid inimesi aidata. Et inimesed armastasid.

Parim osa sellest kogemusest oli minu rakendust kasutavate inimestega tutvumine. Vastasin igale Redditi kommentaarile ja tervitasin e-kirju kõigi füüsikaga seotud küsimuste kohta, mis inimestel võivad tekkida. Mõnikord olen saanud armsaid väikeseid teateid, nagu see:

See on minu lemmikmeil rakendusest, mille enne seda tegin
Valige projekt, millest hoolite. Sa oled raamatuid lugenud. Olete läbi teinud Codecademy kursuse. Olete õppinud teremaailma ja rekursiivseid funktsioone. Mis nüüd? Mõelge, millistes valdkondades olete asjatundja. Kas olete toidukraam? Linnuvaatleja? Trivia meister? Mõelge millelegi, mida kasutaksite. Mõelge, kuidas saate aidata läheduses olevaid inimesi või ookeani kaugemal. Sirvige oma telefoni rakendusi - kas saate neid mõnda paremaks muuta?
Kui arvate, et olete midagi leidnud, sukelduge kohe sisse. Ärge oodake, kuni olete valmis, ärge oodake luba. Viska ennast sügavasse otsa; sõitke esiotsa arengu kõrgeimate ja madalaimate punktidega. Nii loote midagi, mis muudab midagi.

22-aastane

Jätkasin uute ideede ja tehnikate uurimist, töötades projektidega, mille vastu tundsin end kirglikult. Mõned neist olid väga keerulised, kuid ma õppisin kasutama seda, mida tean. Esiosa arendus on täis ülekantavaid oskusi.

Reaktsioon oli ilmutus. Pärast aastaid vaadete loogikast eraldamist oli värsket õhku, et leida raamistik, mis integreerib elegantselt HTML-i, andmed ja loogika. See oli nagu oleksin ma kõik need aastad võinoaga puid lõiganud ja keegi oli mulle just mootorsae kätte andnud.

Androidiga on nüüd hea meel töötada. Paljude valupunktide eest on hoolt kantud ja Kotlinil on rõõm kirjutada. Mõned maailma parimatest mõtetest töötavad mobiilse kasutajaliidese arenduse paremaks muutmiseks koos React Native, Flutter ja paljude teistega.

See on suurepärane aeg olla esiotsa arendaja.

Paar aastat tagasi arendasin ma sildilehega maandumislehte: olete andekam, kui ette kujutate. Ma soovin, et keegi oleks mulle 12-aastaseks saades sellest teada andnud, sest ma loobusin pärast esimest ebaõnnestumist.

Näitlejaõpetaja ütles mulle hiljem, et anne pole midagi muud kui raske töö summa. Sel moel mul vedas, et sündmused panid mind varakult oma teekonda alustama. Olen südamest tänulik nende inimeste eest, kellega teele sattusin, kes mind juhendasid ja usaldasid mind, muigavat teismelist, oma ettevõtete ja ideedega. See sai alguse juba aastaid kestnud üksildase hobina, kuid nüüd on mul sõpru, kes jagavad mu kirgi.

10 aastat on möödunud ja ma ei jõua ära oodata, mis edasi saab.

Leidke oma kogukond. Ükski inimene pole saar ja ükski esiotsa olev dev pole isoleeritud ujuv div-element. Liituge oma kohalike esiotsakoosolekutega. Minge konverentsidele. Jälgige oma kasutatavaid hoidlaid. Kirjutage väljaannetele. Kuulake netisaateid. Libistage mõni twitter DM. Leidke inimesi, kes ütlevad teile: olete andekam, kui võite ette kujutada.

Kas teile meeldis see lugu? Mulle meeldiks, kui võtaksite ühendust!
Öelge tere Twitteris, LinkedInis või vaadake minu veebisaiti.