Kiekvienas, apsisprendęs mokytis programuoti, turi pirmiausia išsirinkti sritį, kurioje norėtų dirbti. Labai dažnai frontendas tampa tuo sprendimu, tačiau neretai dėl netinkamų priežasčių. Tad aptarsime, kodėl verta bei kodėl neverta rinktis frontendo kaip savo programavimo srities.

Pirmiausia, pradėsiu nuo to, kodėl nereiktų rinktis frontendo. Kažkodėl yra gana stipriai įsivyravusi nuomonė, jog frontendą programuoti yra lengviau nei, sakykim, backendą. Čia aš nuskambėsiu kaip kokia įsižeidusi frontenderė - gal taip ir yra :) Tiesiog mane jau pradeda erzinti tos kalbos, jog frontendas yra lengviausia programavimo sritis.

Galbūt taip ir buvo prieš gerus 7 - 10 metų, kuomet programuoti frontendą reiškė su jQuery išskleisti meniu puslapyje ar išsiųsti formą į backendą. Tačiau per tuos pastaruosius metus, ir ypač arenoje pasirodžius tokiems karkasams kaip ReactJS ar AngularJS, reikalai yra labai smarkiai pasikeitę.

Šiuo metu labai daug dalykų iš backendo yra persikėlę į frontendą, o tai reiškia, jog frontenderio veiklos sritis yra smarkiai išsiplėtusi.

Klaidingas įspūdis, jog frontendas yra lengviau nei backendas dažnau susidaro programavimo naujokams. Savo akimis mačiau keletą pavyzdžių, kaip pradedantieji mokytis paima kokį php, pabando, pamato, jog išties nelengva ir daug ko nesupranta (dažnai taip būna dėl netinkamų mokymosi resursų).

Tada persimeta į frontendą, kuriame, natūralu, pradeda nuo HTML ir CSS. Lyginant backendo kalbą su HTML ir CSS, pastarieji dalykai yra kur kas lengviau suvokiami, nei programavimo kalba. Tačiau kai pradeda daryti rimtus dalykus su JavaScriptu, visas paprastumas baigiasi.

Jeigu manęs kas klaustų, ką mokytis programuoti - frontendą ar backendą - aš pasakyčiau, jog backendą. Aš manau, kad bent jau pradedant mokytis, backende yra mažiau dalykų, kuriuos tau reikia žinoti, norint pradėti dirbti. Iš esmės, tau reikia žinoti pačią backendo kalbą ir gal kažkiek SQL.

O štai frontende reikia žinoti HTML (ok, jo nėra daug), CSS visas gudrybes (čia reikalų labai nemažai) bei JavaScriptą. Prie JavaScripto, žinoma, ir kokį jo karkasą. Blogiausia tai, jog frontendas vystosi milžinišku greičiu, ir tai, kas buvo populiaru vakar, ryt taps kone išjuoktini dalykai.

Pamenat, kažkada, dar ne taip seniai, labai blogai buvo HTML’e rašyti JavaScriptą. O dabar tai yra visiškai kūl. Čia, žinoma, tik vienas pavyzdys. Pats CSS sparčiai keičiasi, ir palaikyti pulsą ant visų jo naujovių reikalauja nemažai pastangų.

Aš pati frontendą pasirinkau, nes užsiimu fotografija, man patikdavo žaisti su Photoshopu. Manau, kad jei esi vizualus žmogus, tai frontendas yra pateisinama priežastis. Antraip, jei tau visiškai nesvarbu, kokios spalvos turėtų mygtuko kraštas, gali drąsiai rinktis backendą.

Na, o dabar apie tai, kodėl visgi verta mokytis frontendo. JavaScripto programuotojai dabar yra labai paklausūs, nes praktiškai kiekvienas produktas reikalauja kažkokios vartotojo sąsajos.

Šiandien vis labiau darosi populiaru, ypač kuriant produkto prototipus, apskritai neturėti backendo. Jo vietoje naudojamas koks nors debesis, kuris tau suteikia autentifikacijos ir duomenų bazės galimybes. Kalbu apie tokius dalykus kaip Firebase ar AWS.

Pavyzdžiui, aš pati šiuo metu kuriu tokį produktą, kuriame autentifikuoju vartotoją, įrašau dalykus į debesies duomenų bazę, juos nuskaitau ir pan. Visa tai įmanoma vien su JavaScriptu ir viena iš aukščiau minėtų debesų infrastruktūrų.

Tai yra labai geras dalykas, nes tai leidžia tau pačiai susikurti produktą nuo A iki Z. Na, bent jau jo prototipą, kurį galima duoti vartotojams išmėginti.

Mane dar labiau žavi idėja, jog su JavaScriptu galiu kurti ir mobiliąsias programėles tiek android, tiek iOS vartotojams. O kur dar galimybė su JavaScriptu programuoti backendą. Šito dar smarkiai neliečiau, bet planuoju ateityje pasimokyti, juolab, kad kalbos sintaksė ta pati.

Na, kaip jau supratote, esu JavaScript ir visos šios programavimo kalbos ekosistemos fanė. Dėl šių dalykų verta mokytis frontendo. Bet ne dėl to, jog jis būtų lengvesnis už backendą - nes savo kailiu patyriau, jog taip nėra.

small bug

Kokią programavimo sritį ir dėl kokių priežasčių rinkaisi tu? Pasidalink komentaruose!