Komma igång med Fullstack Web Development
Dessa dagar, moderna full stack utveckling är mycket populär i både små byråer och större företag med ett dedikerat tekniskt team. Full stack webtekniker arbetar på en hel webbstack av teknologier inklusive frontend, backend, och serverhantering.
Många argumenterar för att full stack bara leder till att vara en "jack of all trades, master of none". Ur en viss synvinkel kan det vara sant, men kompetens är bara lika viktigt som vad som kan åstadkommas med det. Många full stack devs erbjuder värde eftersom de kan ta en idé från befruktning till lansering, och fullt ut förstå varje steg i processen.
Om du tänker på går den fulla stapelvägen, då är den här artikeln för dig. Jag kommer att förklara de allmänna kraven för en full stack utvecklare, vad rollen innebär och hur kompetensen kan vara användbar för frilansare / entreprenörer som vill arbeta direkt antingen för kunder eller i egna projekt.
Full Stack Fundamentals
Modern full stack utveckling har kommit långt, eftersom webtekniken har förändrats mycket. Full stack krav bör användas som riktlinjer för att överväga att följa. I allmänhet representerar en "stapel" den teknik som löper i samförstånd att göra en webbplats arbete. Detta betyder frontendkod, backendkod, ett databasystem och en webbserverplattform + operativsystem för servern.
Den grundläggande principen om full stack utveckling är att förstå alla aspekter av att bygga en webbplats. Det betyder inte kunskap om design eller UI / UX-arbete, men det kan i hög grad förbättra din lönsamhet och arbetskvalitet.
- Grunden för frontend inkluderar HTML / CSS och JavaScript, troligtvis med a ramverk, såsom vinkel eller reaktion.
- För ett backend-språk vill du välja något som kan kopplas till ett databasystem. PHP / MySQL är det vanligaste och enklaste att lära sig eftersom det driver många CMS-motorer som WordPress. Även LAMPA stack är otvivelaktigt den mest populära webbstacken idag.
- Serverkunskap kan vara så enkelt eller så detaljerat som du vill. Den absoluta grunderna skulle vara kunskap om ett serverprogram som apache kopplad till en databas som MySQL eller PostgreSQL.
- Du kan gå ännu längre för att inkludera kunskap om att installera postservrar eller prestanda verktyg, som memcached eller Larn.
En full stack dev borde dabble i alla tre områden med tillräckligt med kunskap till starta en webbplats självständigt, och utan stor hjälp från någon annan.
Teknisk djupgående kunskap
En stor fråga om full stack utveckling är hur djupt att gå in i varje område. Är en full stack ingenjör verkligen någonsin en mästare på någonting? Vissa hävdar att det är möjligt, men Det kan inte vara syftet att gå full stack.
De flesta företag vill hyra full stack ingenjörer som har lite kunskap överallt. Dessa ingenjörer kan specialisera sig inom ett område, men De kan fylla någon roll när det behövs.
Devs som bara börjar på denna väg borde leksak runt på alla områden som lär sig "just enough" för att lösa problem när de uppstår. Detta ger en verklig världsfortolkning till tekniken för att se hur olika problem gäller för verkliga projekt.
Den största fördelen med fullstackkodning är förmågan att bygga dina egna applikationer utan att arbeta för någon annan.
Om du lär dig varje steg i utvecklingsprocessen kan du göra allt själv. Du behöver inte vara en mästare på PHP för att skapa en anpassad Laravel-app. Och du behöver inte vara en JavaScript-guru för att skapa en flexibel dropdown-navigering, särskilt nu när vi har så mycket öppen källkod tillgänglig på webben.
Så hur djup ska du gå in i någon av dessa områden? Det här är helt upp till dig, och ditt svar kommer troligen att förändras över tiden.
Men när du först börjar, bara gå djupt nog för att genomföra det du har lärt dig till ett verkligt projekt. När du stöter på något förstår du inte, använd det som ett tillfälle att gå djupare, och lära dig mer om det aktuella ämnet.
Välja språk
Det är lite av ett sammandrag för den nya utvecklaren att välja vilken teknik som ska läras. Att få nödvändigheterna ur vägen, HTML och CSS är absolut nödvändiga. JavaScript är också en nödvändighet, men du behöver inte betrakta dig själv som en JS-mästare. Du borde dock vara intresserad av att lära sig mer än bara vanlig JavaScript.
De flesta devs lär sig också jQuery, men ramar som React, Ember, Angular, Vue eller Backbone erbjuder alla en enklare process för att bygga fullskaliga webbapplikationer.
Det är möjligt att dyka ännu djupare lärande fancy JavaScript-effekter, som animeringar, men de är helt frivilliga. En full stack utvecklare borde veta tillräckligt för att få jobbet gjort, och gå vidare därifrån.
Backend språk val är mindre om teknisk fördel, och mer om komfort. De flesta programmerare inser det Python är ett mer mångsidigt språk än PHP, Men de flesta webbplatser körs på PHP-servrar. Detta gör PHP ett värdefullt språk till fler företag.
Välj vilket språk som passar dina behov, eller ger dig de största möjligheterna. Tänk också på att du är inte fast med ett språk bakåt för alltid. Om du börjar med Ruby men växla till Python förlorar du inte något i processen.
Men jag rekommenderar att när du hittar ett språk som du vill ha, kan du gräva djupare med det språket och hämta en relaterad ram. PHP har Laravel, Ruby har Rails, och Python har Django - bland många andra alternativ. Dessa ramar kommer att påskynda din utvecklingsprocess och hjälpa dig att strukturera dina applikationer ordentligt.
Databaser och servrar
Att välja en databasmotor kommer ner till projektkrav och serverstack. PHP fungerar ofta med MySQL, så det är det mest föredragna valet. De två största webbstackar idag är LAMPA (Linux-Apache-MySQL-PHP) och BETYDA (MongoDB-ExpressJS-AngularJS-Node.js).
De flesta webbhotell erbjuder LAMP från början utan någon installation krävs. Men anpassade lösningar som Digital Ocean gör att du kan springa nästan allt med ett litet armbågsfett. Du kan hitta fler webbstaplar på den här listan, eller genom att söka på nätet.
Din databas av val kommer ofta att vara bunden till ditt språk. Python kommer med SQLite support som standard och RoR devs kan vanligtvis arbeta med någonting. Och ärligt talat kan vilket språk som helst fungera med vilken databas som helst.
Men du vill välja något som är vanligt nog att använda i de flesta webprojekt. SQL är ett allmänt språk, och det använder mestadels samma syntax över alla databasmotorer. Du hittar skillnader i tabellinställningar och administration, men dessa är vanligtvis mindre.
Utöver databaser, här är några tekniska server-sidor som du kanske vill lära dig om.
- CDN och innehåll hosting
- Installering och uppdateringar av serverns programvara
- Bästa server konfigurerar för trafikspikar och belastningstider
- Caching-lösningar för både databasfrågor och filsystemlagring
- Automatiserade säkerhetskopior av databaser och platta filer, eller skivbilder
- HTTPS-inställning med domänhantering (DNS-servrar, CNAME-poster, etc.)
- Mer detaljerade ämnen, till exempel e-post, microservices och lastbalansering
Ett av de bästa sätten att lära sig är tinkering med servrar som du bygger projekt. Ta en grundläggande VPS konto och försök att ställa in egna stackar. Dessa VPS är kompletta virtuella serverns miljöer där du har full kontroll för att konfigurera (eller förstöra) allt. Listan ovan är inte heller en obligatorisk färdplan för alla fullstacksutvecklare.
Den enda kunskapen du verkligen behöver är vad som krävs för att skapa en tom servermiljö och installera programvaran som behövs för att köra en webbplats. Därifrån är allt annat bara bättre kunskap. Om du någonsin har frågor eller vill lära dig av proffs kolla Reddit s / r / SysAdmin community.
Vägen framför
Om du verkligen vill lära dig full stack utveckling, gör en lista över alla de tekniker du vill lära dig. Därifrån kan du ta itu med dem en för en och skapa egna träningsprojekt för att testa vad du lär dig.
Webbutveckling är en ständigt föränderlig bransch, så du bör alltid vara villig att lära dig mer. Testa olika stackar och språk tills du hittar vad du vill. Men var alltid villig att gå djupare och bli bättre!
Är full stack utveckling värt ansträngningen? Det är för dig att bestämma. Men här är några relaterade inlägg som kan hjälpa dig att räkna ut det.
- På legitimiteten för "full-stack" (Heapsortjobs.com)
- Så du vill bli en full stack utvecklare (Rubysteps.com)
- 7 tips om hur man blir en fullstacksutvecklare (Usersnap.com)