Ko esmu uzzinājis par priekšlaicīgu attīstību no 12 līdz 22 gadu vecumam

Tedija Kellija foto vietnē Unsplash

Dažreiz draugi man jautā, kā es nokļuvu priekšplāna attīstībā. Es teiktu, ka es kaut kā tajā iekļuvu; bet patiesība bija tāda, ka es īsti nezināju. Tāpēc pagājušajā nedēļā es dziļi ienācu interneta tumšajos stūros, lai izpētītu katru priekšstata projektu, kurā esmu strādājis kopš 12 gadu vecuma.

Un zēns, vai tā bija niršana?

Tātad šeit viņi ir. Katrs drausmīgs lēmums, katra mulsinošā vietne, katra kļūda un gūtā mācība mani padarīja par priekšējās programmatūras izstrādātāju, kāds esmu šodien. Šeit viņi ir visā savā nefiltrētajā krāšņumā.

(Ja jūs tikko sākat darbu priekšgalā, esmu iekļāvis tiecos zināšanas, kuras esmu iemācījies, un es ceru, ka tas ietaupīs jūsu laiku jūsu ceļojumā. Ja jūs esat veca roka… Es ceru, ka šis stāsts dod ķiķināšanu vai divus )

12 gadus vecs

Ļaujiet man iestatīt skatu. Tas bija 2007. gads. Stīvs Džobss tikko ieviesa iPhone. Visi izmantoja MSN Messenger. Nevienam nepatika Windows Vista. Tās bija lietas, kuras es atceros, bet neatceros, kad tieši es nolēmu izveidot vietni.

Man patika ideja, ka kaut ko tīmeklī var redzēt ikviens visā pasaulē, piemēram, maģija. Protams, tas nevarētu būt tik grūti. Vai varētu?

Mana pirmā vietne - tūkstoš soļu brauciens… sākas ar teltīm un zibspuldzes logrīkiem?

ES kļūdījos. Tas bija grūti. Man nebija ne mazākās nojausmas, ko es daru.

Vienā brīdī es pat nevarēju izdomāt, kā izmantot tagu
, kas rada līnijas pārtraukumu. Es biju samulsis, kāpēc parasts koda rindiņas pārtraukums tīmekļa vietnē neizrādīja līdzīgu pārtraukumu. Es mēģināju izmantot tagus

, kas veido rindkopas, bet es nesapratu ietīšanas jēdzienu. Es pat mēģināju izveidot tabulu tikai tāpēc, lai sāktu jaunu rindu.

Neraugoties uz visu šo smago darbu, tas bija vēl sliktāk (pat 2000. gadiem). Es atceros, kā mani klasesbiedri par to izklaidējās, kad ar MSN Messenger koplietoju saiti ar viņiem. Tad es atkal varētu viņus vainot? Tam bija visas Web 1.0 zvērības: gif, marķējumi, slikti izkārtoti foni, Flash logrīki ... jūs to nosaucat. Es biju drosmīgs. Tā es uzzināju savu pirmo mācību.

Tavs pirmais projekts būs slikts. Mana pirmā HTML lapa bija briesmīga. Mans pirmais CSS fails bija tik netīrs. Marie Kondo to nepieskars. Mana pirmā mobilā lietotne tika ignorēta. Mana pirmā React lietotne avarēja katru minūti. Apgūt priekšējās klases ir grūti, jo tas ir daudzu dizaina un datorzinātņu ideju krustojums, un ir pareizi to neiegūt pirmo reizi.
Es apsolu, ka tas kļūs vieglāk. Laika gaitā jūs sapratīsit, ka esat izveidojis nododamo prasmju kopumu (piemēram, HTML palīdzēs jums izveidot gan React komponentus, gan Android darbību izkārtojumus). Atzīšana, ka jums kaut kas ir slikts, ir pirmais solis, lai būtu labs priekšgalā.

Es zināju, ka tas ir slikti, bet es arī zināju, ka varu darīt labāk. Tāpēc Helovīnam ar Gimp palīdzību es piegaršu vietni ar svaigu ķirbju kārtu un Evanescent tipogrāfiju. Hei, tai pat bija oriģināla piedzīvojumu spēle, kurā spēlētāji ar maģiju izglāba fantāzijas pasauli

Pārprojektēšanas laikā es arī iemācījos veikls triks. Es sapratu, ka HTML un CSS pasaulē nav nekādas slēpšanās. Katrs paņēmiens, katrs noslēpums bija tikai viena skata avota attālumā. Pat Apple nevarēja slēpt viņu skaisto produktu lapu noslēpumus, un es stundām ilgi viņu vietnē pavadīju, atklājot viņu noslēpumus.

Ja to varētu darīt kāds cits, tad es to arī varētu.

Kaut kur pa ceļam mani klasesbiedri pārstāja mani izjokot.

Skatīt avotu. Ikreiz, kad vietnē redzat kaut ko foršu, pajautājiet sev, vai varat to reproducēt. Vai jūs to varētu izdarīt tikai ar CSS? JavaScript? Ja nē, noklikšķiniet uz tā ar peles labo pogu> noklikšķiniet uz Pārbaudīt (Chrome) vai Rīki> Web izstrādātājs> Inspektors (Firefox) un mēģiniet mainīt kodu inženierijas virzienā. Pievienojiet grāmatzīmēm vai saglabājiet sarakstu ar lieliskajiem efektiem, kurus kādreiz vēlaties izmēģināt.

14 gadus vecs

Pirms Snapchat un Instagram bērniem bija emuāri. Visiem maniem draugiem bija viens. Daudzi no viņiem ar prieku personalizēja savus emuārus ar tēmām, kas ir aktuālas. Bet nē sirēna, ne es. Ak nē.

Es sāku, mainot esošās tēmas sev. Pēc tam es veidotu tēmas kā dāvanas savu draugu dzimšanas dienās. Citu klašu bērni ieradās, lai man jautātu tēmas. Es kļuvu par emuāru puisi.

Es tiešām nokļuvu svītrās

Tā es sāku savu īsto uzmācību HTML. Katra tēma bija vienas lapas HTML dokuments ar iegultu CSS. Izmantojot pseido tagus, piemēram, <$ BlogItemTitle $>, es varēju kontrolēt, kā un kur katrs elements tika ievietots. Pseidofailus vēlāk pakalpojumu sniedzējs aizstās ar faktisko saturu. Visbeidzot, es biju brīva no WYSIWYG redaktoru robežām!

Tik ilgi, tripod.com!

Es atceros, ka stundas pavadīju, pārvietojot elementus ar CSS, mācoties atšķirības starp displeja un pozīcijas tipiem, malām un polsteriem. Vienai konkrētai tēmai es izmantoju četrkrāsu svītras kā statisku fonu aiz balta priekšplāna ar caurspīdīgiem rakstiem. Katram elementam bija jābūt perfekti izlīdzinātam, tāpēc modelis parādījās, kad lietotājs ritināja:

Horizontāla ritināšanas vietne, tik nervoza!

Man patika attīstīt tēmas. Es sapratu, ka vietne nav tikai divdimensionāla, bet arī reaģē uz cilvēkiem ar JavaScript un CSS pseido atlasītājiem, piemēram: lidināties un: aktīva. Viņi auga un saruka, izbalēja un izgāja.

Tā bija dzīva, interaktīva virsma.

Kad šī darbība bija veiksmīga, tā iepriecināja cilvēkus, un es mīlēja vērot savu draugu reakciju uz viņu jaunajām tēmām. Es piespiedu sevi izmēģināt jaunas idejas un paņēmienus, lai uzzinātu, kas cilvēkiem patika.

️Izstrādājiet mijiedarbību. Labi priekšējā elementa elementi ir atrodami (sniedz norādes par tā izmantošanu) un sniedz atgriezenisko saiti (informatīvi reaģē uz mijiedarbību). Piemēram, poga var mainīt fona krāsas, virzot kursoru, un, noklikšķinot, palielināt necaurredzamību. Šeit ir labs video un grāmata par šo tēmu.

16 gadus vecs

2013. gada jūlijā es reģistrēju savu pirmo domēnu pie atbilstoša tīmekļa mitinātāja. Tas jutās kā garāmgājiena rituāls, it kā es beidzot izdarīju kaut ko reālu. Es izveidoju savu portfeli, un kopš tā laika tas ir bijis manu projektu un eksperimentu mājvieta. Kad es ieguvu jaunas prasmes, tā auga un attīstījās man līdzās.

Viņi tik ātri izaug

Es nevaru pārspīlēt, cik noderīgs man bija domēna un laba servera resursdators. Es varētu eksperimentēt ar jaunām priekšgala idejām tīmeklī. Es vadīju cron darbus, kas atviegloja manu dzīvi. Ikreiz, kad man bija nepieciešama jauna telpa klienta vai skolas darbam, es varētu izveidot jaunu apakšdomēnu.

Es jutos kā liels zēns, kad izvietoju savu pirmo vietni. Gandrīz likās, ka es varētu iztēloties šādus priekšmetus. Tas būtu diezgan forši, es pie sevis nodomāju.

Iestatiet portfeli. Šis ir lielisks projekts, lai uzzinātu par izvietošanu tīmeklī. Vienkāršās opcijās ietilpst FTP, kas ļauj kopēt failus un kalpot tiem no servera. Kad esat to apmierinājis, es ieteiktu iestatīt pastāvīgu integrāciju un Git. Es esmu izmēģinājis vairākus pakalpojumu sniedzējus, pirms beidzos ar kopīgu mitināšanu vietnē Dreamhost (filiāles saite), ar kuru esmu ārkārtīgi priecīgs. Bet noteikti ir bezmaksas alternatīvas.

18 gadus veca

Singapūrā 18 gadus veciem cilvēkiem divi gadi jāpavada armijā. Pēc neliela veiksmes man tika nosūtīts uz armijas vienību, kas meklēja mobilo izstrādātāju. Viņi jautāja, vai es kaut ko līdzīgu esmu izdarījis jau iepriekš. Man nebija, bet cik tas varētu atšķirties no vietnes izstrādes? Tāpēc es teicu jā.

Izrādās, es kļūdījos. Bet hei, es līdz tam brīdim nebiju tāds, kas ļautu pieredzes vai kvalifikācijas trūkumam mani apturēt.

Nosakīsim to priekšvārdā, sakot, lai gan es jau iepriekš esmu strādājis ar kādu JavaScript, man nebija priekšmetu orientētas programmēšanas koncepcijas, kas bija īpaši svarīgi lietotņu izstrādē. Mans pirmais uzdevums bija izveidot Android lietotni esošai API, kas karavīriem ļauj izsaukt slimos. Mans otrais bija radīt izglītojošu spēli.

Dienas pavadīju Google un StackOverflow, uzdodot simtiem visvienkāršāko jautājumu, piemēram, “Kā izveidot teksta lauku” vai “Kā es varu piespiest pogu darīt lietas”. Nedēļas pavadīju, sitot galvu uz tastatūras, izmantojot NullPointerExceptions. Ar zobu ādu man izdevās kaut ko kārtīgi izlobīt līdz pusei.

Lai arī lietotnes izskatījās pievilcīgas, tomēr aiz tām bija nekas cits. Tur bija spageti koda līnijas un līnijas, nebija skaidru arhitektūras paraugu, un loģika bija ciešāk savienota nekā ķēdes posma žogs. To nebija iespējams uzturēt, un šī iemesla dēļ nevienu no manis izveidotajām lietotnēm nevarēja aktīvi atjaunināt.

Būtu pagājuši vairāki gadi, līdz es izlasīšu par to, kā rakstīt pielāgojamu, tīru priekšējās klases kodu. Bet kad es to izdarīju, es sapratu, kāpēc tas ir svarīgi.

Uzrakstiet testus. Testu rakstīšana, iespējams, ir vienīgais visefektīvākais ieradums, ko es izvēlējos, lai uzrakstītu labāku kodu. Atcerieties, kā, mācoties kodēt, jūs uzrakstījāt funkcijas, kuras mēģināja izturēt vairākus pārbaudes gadījumus? Tas ir tāpat, bet tagad jūs esat arī tas, kurš raksta testus! Labu testu rakstīšana katrai funkcijai (vienības testi) ļauj nodrošināt koda darbību arī tad, ja maināt citas koda bāzes daļas.
Atdaliet savus pienākumus. Vai jums ir funkcija, kas veic vairākas lietas? Sadaliet tos vairākās funkcijās. Vai jums ir klase ar vairākiem metožu gabaliem, kas ievieš dažādas funkcijas? Sadaliet tos vairākās klasēs. Varbūt vissvarīgākais no SOLID principiem ir pienākumu nodalīšana. Tas padara jūsu kodu salasāmu un pielāgojamu. Tīrs kods: Roberta Martina rokasgrāmata Agile Software Craftsmanship (filiāles saite) ir jāizlasa ikvienam priekšējā izstrādātājam.

20 gadus vecs

2016. gada jūnijā Google Play veikalā es publicēju lietotni. Tas palīdz studentiem apgūt fiziku, kas bija priekšmets, kuru vienmēr esmu mīlējis. Pirmajā dienā tam bija 3 lejupielādes. Otrajā dienā tam bija 5. Trešajā dienā tam bija 1000. Sākumā to nepamanīju, bet to skaits turpināja augt. Pirmajā mēnesī tas saņēma 7000 lejupielādes. Līdz septembrim ikmēneša instalāciju skaits bija pieaudzis līdz 15 000.

Kā? Es vispār nebiju veicis mārketingu.

Izrādās, kāds kopīgoja lietotni vietnē Reddit (divreiz!), Un šķita, ka cilvēkiem tā patīk. To ieguva vairākas pārskatīšanas vietnes un emuāri. Cilvēki sāka par to veidot videoklipus vietnē YouTube. Šajā brīdī es biju tik satraukti, ka man bija sirdsklauves. Es domāju, ka es kādā brīdī raudāju. Bija jūtams, ka viss mans smagais darbs beidzot atmaksājas.

Es atgriezos pie tā, kad es būvēju tēmas savu draugu emuāriem kā dāvanas viņu dzimšanas dienai. Tā vietā tagad es dāvāju dāvanas tūkstošiem cilvēku visā pasaulē. Pēkšņi es sapratu, cik ļoti man patīk attīstīt saskarnes, kas varētu palīdzēt cilvēkiem. Ka cilvēki mīlēja.

Labākā šīs pieredzes daļa bija to cilvēku iepazīšana, kuri izmanto manu lietotni. Es atbildēju uz katru komentāru par Reddit un atzinīgi vērtēju e-pastus par visiem fizikas jautājumiem, kas cilvēkiem varētu būt. Dažreiz es saņēmu jaukus, mazus ziņojumus, piemēram, šo:

Šis ir mans iecienītākais e-pasts no lietotnes, kuru izveidoju iepriekš
Izvēlieties sev svarīgu projektu. Jūs esat lasījis grāmatas. Jūs esat pabeidzis Codecademy kursu. Jūs esat apguvis svešās pasaules un rekursīvās funkcijas. Ko tagad? Pārdomājiet, kurās jomās esat relatīvs eksperts. Vai jūs esat pārtika? Putnu vērotājs? Trivia meistars? Padomājiet par kaut ko tādu, ko jūs izmantotu. Padomājiet par to, kā jūs varat palīdzēt apkārtējiem cilvēkiem vai prom no okeāna. Ritiniet savas tālruņa lietotnes - vai varat uzlabot kādu no tām?
Ja domājat, ka esat kaut ko atradis, ienirstiet iekšā. Negaidiet, kamēr esat gatavs, negaidiet atļauju. Mest sevi dziļajā galā; braukt ar augstākajiem un zemākajiem līmeņiem priekšpusē. Tas ir, kā jūs izveidojat kaut ko, kas rada pārmaiņas.

22 gadus vecs

Es turpināju meklēt jaunas idejas un paņēmienus, strādājot pie projektiem, par kuriem jutos aizrautīgi. Daži no tiem bija ļoti izaicinoši, bet es iemācījos izmantot to, ko zinu. Priekšattīstība ir pilna ar nododamām prasmēm.

Reaģēt bija atklāsme. Pēc gadiem, kad atdalījām skatus no loģikas, svaiga gaisa elpa bija atrast ietvaru, kas eleganti integrētu HTML, datus un loģiku. Tas bija tāds, kā es visus šos gadus biju nozāģējis kokus ar sviesta nazi, un kāds man tikko bija nodevis motorzāģi.

Tagad ar Android ir prieks strādāt. Par daudziem sāpju punktiem ir parūpējies, un Kotlinam ir prieks rakstīt. Daži no pasaules labākajiem prātiem strādā ar mērķi uzlabot mobilo priekšējo ierīču attīstību, izmantojot React Native, Flutter un daudz ko citu.

Šis ir lielisks laiks, kad būt priekšplāna izstrādātājam.

Pirms pāris gadiem es izstrādāju galveno lapu ar ierakstu: Jūs esat talantīgāks, nekā iedomājaties. Es vēlos, lai kāds man to būtu paziņojis, kad man bija 12 gadu, jo es grasījos atteikties pēc manas pirmās neveiksmes.

Skolotāja, kas darbojās, vēlāk man teica, ka talants nav nekas cits kā smaga darba summa. Tādā veidā man ļoti paveicās, ka notikumi lika man agri sākt savu ceļojumu. Es esmu pateicīgs cilvēkiem, kurus satiku pa ceļam, kuri vadīja mani un uzticēja man, pussabrukušam pusaudzim, viņu biznesu un idejas. Tas sākās kā vientuļš hobijs daudzu gadu garumā, bet tagad man ir draugi, kuri dalās manās aizraušanās.

Ir pagājuši lieliski 10 gadi, un es nevaru gaidīt, kas notiks nākam.

Atrodiet savu kopienu. Neviena persona nav sala, un neviens priekšējās klases dev nav izolēts peldošs div elements. Pievienojieties vietējiem priekšplāna sanāksmēm. Iet uz konferencēm. Sekojiet jūsu izmantotajām krātuvēm. Rakstiet publikācijām. Klausieties aplādes. Iebīdiet dažos twitter DM. Atrodiet cilvēkus, kuri jums pateiks: jūs esat talantīgāki, nekā iedomājaties.

Patika šis stāsts? Es labprāt sazinātos!
Sakiet čivināt, LinkedIn vai apskatiet manu vietni.