I løpet av de siste årene har det blitt dyrere å bygge optimaliserte applikasjoner og nettsteder, og samtidig har etterspørselen etter kvalitetsutviklere også økt.
På den annen side beriker utviklere ferdighetssettene sine med mer enn bare én programmeringsferdighet for å bli mer konkurransedyktige på markedet, spesielt fullstack-utviklere, som det alltid er stor etterspørsel etter.
Spørsmålet gjenstår: Hvor finner man gode fullstack-utviklere, og hvordan ansetter man dem effektivt? Først begynner du med en vinnende Fullstack Developer jobbannonse før noe annet.
La oss begynne.
Hva er fullstack-utvikling?
Fullstack-utvikling omfatter utvikling av frontend (klientsiden) og backend (serversiden). Fullstack-utviklere jobber med å designe komplette webapper, nettsteder og annen programvare fra bunnen av. De feilsøker, planlegger, koder og administrerer utviklingsprosessen. På en måte tar de rollen som en teamleder som overvåker alle aspekter og stadier av utviklingen.
Flere teknologier, programmeringsspråk og rammeverk er relatert til fullstack webutvikling og er delt inn i frontend og backend.
La oss bryte dette ned.
Frontend-teknologier
Frontend refererer til den delen av applikasjonen som er fullt synlig for brukeren. Brukeren betjener elementene på frontend, og denne interaksjonen resulterer i dårlig, god eller utmerket UX (brukeropplevelse) - avhengig av kvalitet, hastighet og effektivitet. Men en god fullstack-utvikler vil dekke og optimalisere alle tre aspektene.
Noen av språkene som brukes til å lage appens frontend er:
-
HTML + CSS: HTML står for HyperText Markup Language, og CSS står for Cascading Style Sheets. De utgjør den perfekte kombinasjonen for å bygge nettsteder og skape en sømløs brukeropplevelse på tvers av mange plattformer, enheter og nettlesere. HTML forteller nettleseren hva den skal vise, og CSS forteller den hvordan.
-
JavaScript: JavaScript er et populært skriptspråk for å opprette, plassere og overvåke flere interaktive elementer på et nettsted. Det sentrale JavaScript-paradigmet kombinerer sine mange rammeverk og biblioteker (Node.js, Vue.js, Next.js) for å lage toppmoderne applikasjoner, nettsteder og andre typer programvare etter behov. Dette språket er svært anvendelig og en viktig del av både frontend og backend i apputviklingsprosessen.
-
TypeScript: Hvis du fjerner typene, blir TypeScript raskt JavaScript. Begge disse deler samme arkitektur fordi TypeScript er bygget på toppen av JavaScript, og hvis en utvikler er dyktig i det ene, vil de også være dyktige i det andre.
Frontend-rammeverk
Frontend-språkene "stoler" på kraften i rammeverk og biblioteker for å forbedre appfunksjonaliteten og gjøre utviklere mer produktive i det lange løp. Noen av de mest kjente rammeverkene for frontend-utvikling er:
-
Angular: Samlet sett har Angular blitt mer en plattform for å bygge store, robuste, dynamiske og ytelsessterke applikasjoner, forbedre kommunikasjonen på klientsiden og sikre at oppdateringer kjøres regelmessig.
-
React.js: React.js er et JavaScript-rammeverk som brukes til å bygge intuitive brukergrensesnitt og er et av de mest populære frontend-rammeverkene. Det er åpen kildekode og best kjent for å håndtere appens visningslag uten at det går på bekostning av kvalitet, hastighet og effektivitet.
-
jQuery: En av hovedfunksjonene til jQuery er å forenkle datautvekslingen mellom HTML-dokumenter, dvs. samspillet mellom DOM (Document Object Model) og JavaScript. Dette forbedrer DOM-animasjonene og støtter JavaScript-utvikling på tvers av nettlesere.
-
Vue.js: Vue.js representerer et JavaScript-rammeverk bygget på toppen av JavaScript, CSS og HTML. Utviklere bruker dette rammeverket til å bygge enkle eller komplekse brukergrensesnitt.
Backend-teknologier
Bakenden eller serversiden av en app eller et nettsted håndterer flere elementer, som blant annet riktig API-integrasjon, databasehåndtering og spørringshåndtering. Noen av de mest fremtredende programmeringsspråkene, rammeverkene og bibliotekene som brukes til backend-utvikling er:
-
PHP: PHP regnes som et av de mest populære skriptspråkene på serversiden, og er mye brukt til backend for webutvikling. Utviklere liker å bruke den til å bygge dynamisk innhold og enkelt lese, skrive og slette filer på serveren, kryptere data, administrere brukerrettigheter og mye mer.
-
C++: C++ er et fleksibelt, objektorientert programmeringsspråk som optimaliserer ytelsen på nettstedet samtidig som UX på frontend forblir intakt.
-
Python: Python er et populært programmeringsspråk som er mye brukt på grunn av sin enkelhet, lettlærte syntaks og sømløse integrering av flere systemer, nettlesere og enheter.
-
Java: En erfaren fullstack-utvikler har ideelt sett utmerket kunnskap om Java og skriving av Java-kode med dette objektorienterte, skalerbare språket.
-
Node.js: Det finnes ulike definisjoner av hva Node.js er, fra et rammeverk til et kjøretidsmiljø, men det hele koker ned til å være en JavaScript-utvidelse for opprettelse, testing og kjøring av backend-tjenester.
Backend-rammeverk
Backend-rammeverk er en avgjørende del av fullstack-utvikling, og noen av de mest populære er:
-
Django: Django er et Python-rammeverk med åpen kildekode for fremragende webdesign og -utvikling. Den er rask og bruker MTV-arkitekturmønsteret (model-template-view).
-
Laravel: Dette er et pålitelig backend-API for Next.js, mobil og andre frontend-apper. Og, Laravel er et PHP-rammeverk som bruker MVC-arkitekturmønsteret.
-
RoR: Forkortelsen står for Ruby on Rails, og dette er et robust backend-rammeverk basert på språket Ruby. Den er avhengig av JSON og XML for dataoverføring og HTML, CSS og JavaScript for å stabilisere UI (brukergrensesnitt).
-
Spring: Som et av Javas backend-rammeverk skiller Spring seg ut med en enkel syntaks og kraftig driftslogikk for de mest komplekse operasjonene. Det hjelper utviklere med å lage pålitelige og raske apper ved hjelp av POJO-er (Java-objekter).
-
Express.js: Express.js representerer et Node.js-rammeverk for webutvikling for mobil- og webapper. Den gjengir sider dynamisk, definerer rutingstabeller og utfører ulike HTTP-handlinger.
Når trenger du en fullstack-utvikler?
Det er stor etterspørsel etter fullstack-utviklere der ute fordi de har flere hatter på seg ved å dekke både frontend- og backend-aspektene ved utvikling. Med det bringer de utmerkede problemløsningsevner til arbeidet sitt.
Men du trenger en fullstack-utvikler hvis du vil ha et produkt som er laget effektivt, med minimalt oppstyr, men som er svært funksjonelt - og utviklerne gjør det meste på egenhånd uten betydelig ekstern støtte.
En fullstack-utvikler er kjent med hele utviklingsprosessen fra startpunktet til sluttpunktet eller fra den første ideen til den fungerende prototypen. Du trenger en teknisk ekspert som dette fordi en person som er multikompetent er en utmerket investering for enhver bedrift. Å ansette en fullstack-utvikler i stedet for flere tekniske eksperter som behersker mye mindre teknologier vil spare deg for tid og penger i det lange løp.
Når du ansetter en fullstack-utvikler av høy kvalitet, vil de også overvåke hele arbeidsflyten uavhengig av hverandre og redusere sannsynligheten for feilkommunikasjon i de strenge og avgjørende stadiene av apputviklingssyklusen.
La oss oppsummere:
- De er mangefasetterte tekniske eksperter dyktige i frontend og backend
- De leverer pålitelig og robust kode
- De har flere års erfaring innen en rekke felt og nisjer
- De kan enkelt bytte roller på farten (senior, debugger, prosjektleder, med mer)
- De er kostnadseffektive tekniske eksperter
- De har god kunnskap om fortid, nåtid og potensiell fremtid utviklingstrender
Hvor finner jeg fullstack-utviklere?
Du kan finne fullstack-utviklere på ulike steder, inkludert frilansplattformer, sosiale medier, kodelagre, muntlige anbefalinger og programmeringsnettsteder. Med disse alternativene må du imidlertid gjøre all research på egen hånd eller sammen med ditt team av interne rekrutterere.
Anta i stedet at du vil spare tid og forhindre risikoen for å forlenge og trekke ut ansettelsen. I så fall kan du alltid benytte deg av tjenester som matcher deg med ferdige utviklere på bare noen dager, for eksempel Proxify, der vi også går god for utviklernes bakgrunn og deres tekniske kunnskap, slik at du ikke trenger å gjøre alt selv.
Intervju med fullstack-utviklere
Her er en sjekkliste over tekniske ferdigheter som en fullstack-utvikler må kunne, samt noen intervjuspørsmål og svar du kan bruke i vurderingen.
Generell fullstack-kunnskap
En erfaren fullstack-utvikler kjenner til datastrukturer, algoritmer, teori om programmeringsspråk og nettverkstemaer som OSI/RM- og TCP/IP-protokollmodeller.
De skal også kunne arbeide med minst tre ulike programmeringsspråk og kan vise til eksempler på gjennomførte oppdrag i den virkelige verden.
Sist, men ikke minst, må de teste og feilsøke effektivt.
Tekniske ferdigheter
Kort sagt må de kombinere noen (eller de fleste) av følgende ferdigheter:
- HTML, CSS
- JavaScript, TypeScript
- React.js, Angular, Vue.js, Next.js, jQuery
- Node.js, Express.js
- Java, Spring
- Python, Django, Flask
- C++, C#
- PHP, Laravel
- Perl
- Ruby, Ruby on Rails
Men de bør først og fremst vise eksepsjonell kunnskap i :
- Hvordan HTML og CSS fungerer, hver for seg og sammen
- HTML-kode på et overfladisk nivå
- De fleste JavaScript-rammeverkene utenat
- Java og de fleste av dets rammeverk (Spring, Spring Boot)
- Kjenn Pythons rammeverk utmerket (Django, Flask)
C++
- Databaser (for eksempel MongoDB, PostgreSQL, MySQL)
- Versjonskontrollsystemer (som Git og GitHub)
- Cloud hosting-plattformer (for eksempel Heroku, AWS, Google Cloud og Microsoft Azure)
Intervjuspørsmål og svar for vurdering av fullstack-utviklere
Vi kan dele spørsmålene inn i generelle og spesifikke.
Generelle spørsmål
1. Hvilke programmeringsspråk har du mest erfaring med?
Eksempel på svar: Jeg har mest erfaring med å bygge applikasjoner i Python, Django og Vue.js, men jeg har også betydelig erfaring med JavaScript, SQL og Rust. Jeg liker likevel operativsystemuavhengigheten som følger med denne stakken, ettersom jeg alltid kan være sikker på at applikasjonene mine er kompatible med de mest populære operativsystemene i dag.
2. Hva er ditt favorittspråk eller mest brukte programmeringsspråk?
Note: Her bør intervjueren ha et åpent sinn når det gjelder kandidatens svar. Utvikleren kan foreslå et annet programmeringsspråk enn det intervjueren hadde i tankene.
Eksempel på svar: Helt siden jeg begynte, har jeg likt å jobbe med Python. Det har en veldig intuitiv syntaks og en mild læringskurve (enkelt å lære, vanskelig å mestre), og det tilbyr en rekke biblioteker og rammeverk hvis du vil utvide mulighetene for hva du kan gjøre uten at det går ut over kvaliteten på den endelige applikasjonen.
Det er vanskelig å velge bare ett foretrukket programmeringsspråk for fullstack-utvikling, så jeg vil også legge til Node.js og C#. Node.js er godt egnet for skalerbarhet, økt ytelse og er kostnadseffektivt. Samtidig gjør C# utviklingsprosessen raskere, er skalerbar og enkel å vedlikeholde. For en fullstack-utvikler er alle disse fordelene svært viktige når de kombineres, noe som gjør arbeidet vårt mer tilgjengelig og mer effektivt for å oppnå et suverent resultat.
3. Hvilke teknologier vil gjøre det mulig for deg å bygge en applikasjon fra bunnen av?
Eksempel på svar: Når det gjelder utvikling på klientsiden, foretrekker jeg det grunnleggende, dvs. HTML, CSS, JavaScript og kanskje TypeScript. For å løse databaseforespørsler bør MySQL få jobben gjort. For mer komplekse oppgaver foretrekker jeg å bruke Python med Django eller LAMP-stakken. Jeg bruker også Git og Github for enklere synkronisering med andre fullstack-utviklere.
4. Hva er noen av de siste trendene innen fullstack-utvikling som har overrasket deg?
Eksempel på et svar: Jeg er fascinert av fremveksten (og den potensielle undergangen) av NFT-er (non-fungible tokens). Tidligere ble programmering og kunst vanligvis betraktet som to separate disipliner. I dag virker det som om grensene viskes ut for hver dag som går. For eksempel, for å lage en NFT-samling, må du være en anstendig programmerer med en unik kunstnerisk touch. Verden av NFT-er (og kryptovaluta generelt) kan enten ta av eller krasje spektakulært uten forvarsel, noe jeg tenker på nå og da.
Bortsett fra dette er det også verdt å nevne som AI som introduserer mange nye verktøy som vil hjelpe (nesten) alle med å gjøre jobben sin mye mer effektivt enn før.
5. Fantes det tilfeller der dine kolleger gjorde en kodingsfeil? Hva har du gjort?
*Merk: Intervjueren bør være forberedt på å høre utviklerens mulige svar, siden dette er et spørsmål som i noen grad handler om personlige meninger.
Eksempel på svar: Ja. En gang jobbet jeg med et JavaScript-engasjement sammen med en kollega, og koden kompilerte ikke riktig. Jeg gikk gjennom det manuelt og fant ut at de brukte parenteser der de skulle ha brukt parenteser, men jeg hjalp til med å rette opp feilen.
6. Hvordan bygger du SEO-vennlige webapplikasjoner?
Eksempel på svar: Jeg bruker et utmerket grunnleggende språk (Python) sammen med en aktuell type rammeverk (Django) for å oppnå effektivitet og hastighet. Når du bygger webapplikasjoner, kan du ikke tillate deg å "hamstre" ubrukte ressurser som tar opp unødvendig plass, og som drar ned hele arbeidsflyten. SEO handler om raske lastetider (brukere klikker seg vanligvis vekk hvis nettstedet ikke lastes inn på ca. to eller tre sekunder), så jeg prøver å bruke en lettvektstilnærming og løse SEO før engasjementet starter.
7. Hvordan feilsøker du utfordrende programmer?
Eksempel på svar: En metode som jeg bruker ofte (og som jeg tror er mer effektiv enn utviklere vanligvis gir den æren for), er den såkalte "commenting out"-metoden. Når jeg mistenker at en feilaktig del av koden forstyrrer resten av arbeidsflyten, kommenterer jeg ut den spesifikke koden og kompilerer oppdraget på nytt. Hvis problemet vedvarer, går jeg over til nettleserbaserte debuggere for webprosjekter (Firefox og Chrome) eller skrivebordsbaserte debuggere for Windows-prosjekter (Visual Studio Debugger).
8. Hva er en vanlig utfordring i fullstack-utvikling, og hvordan løser man den best?
Eksempel på svar: Et åpenbart svar er å oppnå en balanse mellom frontend og backend og å administrere dem på en god måte. Det kan være utfordrende å oppnå dette fordi forskjellige utviklere jobber med andre ting av samme engasjement, så synkronisering mellom teammedlemmer er årsaken til denne situasjonen.
9. Hva er den beste måten å optimalisere SQL-spørringer på?
Eksempel på svar: For å optimalisere disse spørringene må vi kjenne igjen de beste teknikkene for å forbedre ytelsen til SQL-spørringen. Noen av de beste teknikkene er:
- SELECT-spørring i stedet for å bruke SELECT*
- Indeksering
- Tabellaliaser
- Det brukes ikke mange JOINs
- Underspørsmål
- Jokertegn
- Optimalisering av databasedesign
10. Kan du definere Callback Hell?
Eksempel på svar: Callback Hell representerer et anti-mønster som vi kan se i asynkron programmeringskode (i utgangspunktet når mange funksjoner kjører samtidig). Callback-helvetet er også kjent som Pyramid of Doom, og i utgangspunktet refererer disse navnene til mange nestede "if"-funksjoner eller -setninger. Denne situasjonen er når mange asynkrone funksjoner eksisterer samtidig og er avhengige av hverandre.
Dette kan skape rot fordi mange tilbakekallingsfunksjoner ligger i lag og er nestet. Så når vi bruker callback-funksjoner, blir det igjen en kode som er nesten umulig å vedlikeholde eller lese, og som også ligner en pyramideform. Flyten i appen kan ikke lett identifiseres, og alt dette er et hinder for feilsøking - derav de helvetes setningene i dette anti-mønsteret.
Spesifikke spørsmål
1. Er du kjent med designmønstre? Hvordan har du brukt dem i dine oppdrag?
Eksempel på svar: Generelt sett er designmønstre tilnærminger til å løse en spesifikk utfordring innen programvareteknikk. Jeg har brukt kreative og strukturelle designmønstre i mine tidligere oppdrag med stor suksess. Jeg har brukt designmønstrene Singleton, Flyweight og Bridge.
2. Hva er forskjellen mellom grensesnitt og abstrakte klasser?
Eksempel på svar: Grensesnittklasser lar deg bare angi klassens funksjonalitet, men ikke implementere den. Med abstrakte klasser kan du raskt implementere funksjonalitet ved hjelp av underklasser.
3. Hvordan vil du definere et RESTful API?
Eksempel på svar: RESTful API er en type grensesnitt som to datamaskiner (vanligvis en klient og en server) bruker til å kommunisere på nettet. RESTful API henter en post med en GET-forespørsel, oppretter en med en POST-forespørsel og sletter en med en DELETE-forespørsel.
4. Hva er din foreslåtte løsning for å forhindre at en bot skraper et offentlig kjent API?
Eksempel på svar: Det finnes et par måter å gjøre dette på. Du kan for eksempel kreve et brukernavn og passord fra brukerne (for å opprette en konto) for å få tilgang til innholdet på nettstedet. Du kan også begrense antall ganger en enkelt bruker kan sende forespørsler med en identisk IP-adresse.
5. Hva er forskjellen mellom normalisering og tilbakestilling av CSS?
Eksempel på svar: Normalisering vil bare fjerne et begrenset antall stylings som nettleserne sender ned til elementene på en side. Ved tilbakestilling fjernes alle standardstilene.
6. Hva er forskjellen mellom blågrønn distribusjon og rullerende distribusjon?
Eksempel på svar: En strategi for rullerende distribusjon har ikke flere staging-miljøer. Den distribuerer oppdateringer bare etter behov. Blågrønn distribusjon benytter seg av to distribusjonsstrategier: blå og grønn. I den blå fasen av BG-distribusjonsstrategien gjennomgår engasjementet kvalitetssikring og testing etter behov. Den grønne fasen håndterer trafikken inntil alt i den blå fasen er fullført i henhold til dette.
7. Hvor mange typer designmønstre finnes det?
Eksempel på svar: Det finnes tre: strukturell, atferdsmessig og skapende. Strukturelle mønstre øker funksjonaliteten til klassene i koden uten vesentlige endringer i komposisjonen. Atferdsklasser er avhengige av at klassene kan kommunisere med hverandre. Opprettelsesmønstre er ment for instansiering av klasser. De deles videre inn i objekt-kreasjonelle objekt-kreasjonelle og klasse-kreasjonelle mønstre.
8. Hva er noen av forskjellene mellom REST og GraphQL?
Eksempel på svar: GraphQL er en teknologi på serversiden som utfører spørringer for å få tak i data. REST er en arkitektonisk stil som begrenser hvordan webapper opprettes. GraphQL bruker også skjema, mens REST er avhengig av en rekke endepunkter for utførelsen.
9. Hvordan kan du redusere lastetiden til en webapplikasjon?
Eksempel på svar: På et par måter. Først kan du komprimere bildene og flytte stilarkreferansene til begynnelsen av HTML-siden. Deretter kan du flytte skriptreferansene til slutten av HTML-siden. Til slutt kan du skille JavaScript- og CSS-koden og plassere dem utenfor HTML-hoveddokumentet.
10. Hvorfor vil du fjerne floats i CSS, og hvordan gjør du det?
Eksempel på svar: Vi kan enkelt plassere elementer (for det meste bilder) slik at innholdet flyter fint rundt dem ved hjelp av floats. Men når vi gjør dette, kan resultatet bli etterfølgende elementer rundt float-elementene, slik at oppsettet blir ødelagt dårlig. For å unngå dette fjerner vi mellomrommene, og dermed har vi mye bedre kontroll over oppsettet. Dette er, etter min mening, de to vanligste og mest populære metodene for å rydde floats der ute:
- Clearfix er det vanligste, så vi må bruke teknikken "clearfix" gjennom et pseudo-element. Vi må først lage et usynlig element som ryddes og flyter raskt. Fra dette kan du forvente mer markering til HTML også:
group::after {
innhold:"";
display:table;
clear:both;
}
11. Hvordan fjerner du mest effektivt dupliserte ES6-arrayduplikater?
Eksempel på svar: Den vanligste og beste måten er å bruke et sett - det gjør det mulig å lagre unike verdier. Når vi konverterer matrisen til et sett, blir dupliserte verdier fjernet på denne måten. Det siste trinnet er å gjøre en ny konvertering, denne gangen satt til en variant som den var før, med unike verdier.
12. Kan du definere og skille mellom async/await og Promises i JavaScript?
Eksempel på svar: Async/await representerer et "syntaktisk sukker" som bygger på Promises på toppen av det, og det får en asynkron kode til å ligne en synkron kode gjennom bruk av async-funksjoner og nøkkelordet "await".
13. Hvordan vil du forklare prosessen med å debouncing funksjoner i JavaScript?
Eksempel på svar: Når vi trenger å utsette utførelsen av en funksjon, kalles dette debouncing. Vi gjør utsettelsen for å forhindre for hyppig oppstart av tidkrevende oppgaver. En måte å debounce en JavaScript-funksjon på er:
funksjon debounce(fn, forsinkelse) {
la timeoutID;
return (...args) => {
clearTimeout(timeoutID);
timeoutID = setTimeout(() => fn.apply(this, argos), delay);
};
}
14. Hva er hensikten med Event-objekter for moduler som http eller fs i Node.js?
Eksempel på svar: Node.js-modulene bruker Event-objektene til å sende ut hendelser som signaliserer tilstandsendringer, feil eller ressurstilgjengelighet. Hendelsesstyrt programmering må basere seg på bruk av hendelsesobjekter for å oppnå skalerbare og effektive apper. Dette gjelder spesielt når vi jobber med arbeidsbelastninger som er I/O-bundet.
15. Hva kan du si om minnelekkasjer? Hvordan oppdage, løse og forhindre dem?
Eksempel på svar: Minnelekkasjer (RAM-lekkasjer) representerer en del av en app som bruker en viss mengde minne, men som aldri frigjør det etterpå. Når en app bruker mye minne og ikke frigjør det, vil den tømme minnebassenget etter en stund. Tidligere var det vanlig med minnelekkasjer når utviklere brukte C++ og C. Det er ikke så vanskelig å oppdage dette, fordi det mest åpenbare tegnet er ikke å ha nok minne - systemet bremser ned, og appen begynner å krasje. Det er heller ikke så vanskelig å forhindre dette, vi trenger bare en god søppelsamler for å frigjøre minne.
En fullstack-utviklers synspunkt
I mellomtiden spurte vi om fullstack-utvikling rett til kilden, to Fullstack-utviklere av Proxify, Martin Lucka og Dmitriy Zolotukhin. Vi spurte om viktige teknologier, hva man må kunne, om fullstack-utviklere fokuserer mest på backend eller frontend, og hvordan de generelt bør tilnærme seg læring.
Her er hva Martin hadde å si innledningsvis,
"En fullstack-utvikler er en profesjonell (lik en enhjørning) som kan utvikle en app fra null til den endelige brukeropplevelsen. Det inkluderer muligheten til å bygge backend-produkter (serverløse eller serverfylte med databaser) og frontend-produkter (web eller app)."
Og han holder ikke tilbake når det gjelder teknologiene du må kjenne til,
"Hvis du velger en serverløs løsning, er det tilstrekkelig å bruke kun frontend-teknologi - JavaScript/TypeScript, CSS, React (ikke lær deg Angular, Vue.js og andre rammeverk hvis de ikke er påkrevd)", sier han. "Hvis du velger server-full, er det også viktig med kunnskap om backend-språk (Node.js + TS/JS, Java, C#, PHP) og databaser (SQL)."
Når det gjelder fokus og tid brukt på frontend eller backend, gjentok Martin,
"Vanligvis er fullstack bare settet med ferdigheter, men de fleste engasjementer har det adskilt, og så velger utvikleren hvilken karrierevei han vil gå. Små oppdrag kan ha serverløse løsninger, der begge kunnskapsundergruppene vil bli brukt (i så fall er det bra å ha noe skykunnskap - GCP/Firebase, AWS, Azure, Back4app)."
Og for alle nykommere som kommer til en verden av fullstack-utvikling, var dette rådet han ga,
"Lær deg React og React Native, siden jeg fortsatt mener at de er de kraftigste verktøyene på markedet. Ikke lær på den gamle måten med klasser; lær den funksjonelle måten med hooks. Lær TypeScript, da det gir et stabilt grunnlag for ethvert engasjement. Lær og øv; den beste måten er å gjøre ditt eget prosjekt. Hvis du ser at noen oppdrag bare bruker JavaScript og klasser og ikke funksjonell programmering og TypeScript, så løp din vei så fort som mulig."
Dmitriy, deler sine tanker om hvordan man bruker tiden best og fokuserer når man utvikler,
"Når det gjelder reell utvikling, kan du prøve å lage din egen app og bruke nye teknologier, rammeverk og biblioteker. Les om nye teknologier og prøv dem ut, ikke bare se på fra siden eller les. Installer og bruk dem."
Og han legger til at det er svært viktig å være nesten identisk dyktig i backend og frontend. I henhold til oppdragets krav kan utviklerne likevel tilpasse oppmerksomheten til der det er mest nødvendig.