Sokféleképpen felveheti a fejlesztővé váláshoz szükséges készségeket.
Vannak olyan lineáris tantervek, amelyek mindent megtanítanak nektek - például a freeCodeCamp teljes verem fejlesztő tananyagának.
És akkor vannak készségek - és néha források - listái, amelyek segítségével "saját kalandot választhat" a tanulási folyamat során.
Az egyik legjobb ilyen készséglista Kamran Ahmed fejlesztői ütemterve, amelyet rendszeresen frissít.
Ez nem az erőforrások szokásos listája. Kamran gondosan feltérképezte azokat a készségeket, amelyeket elengedhetetlennek érez a fejlődés különféle területeire való behatoláshoz.
Korábban írtam az útitervéről. És hogy megünnepeljük, hogy mindannyian félúton vagyunk 2020-ig, itt megosztom az egész útitervét - mindhármukat.
Így van - rendelkezik a következő utakhoz szükséges eszközök és erőforrások listájával:
- Front end webfejlesztés
- Háttér webfejlesztés
- DevOps (más néven "helymegbízhatóság" - ez a régi rendszergazda szerepkör egyfajta fejlődése)

Azok a készségek, amelyekre minden fejlesztőnek szüksége van, szakosodástól függetlenül
Ezen utak mellett a Kamran azt is ajánlja mindenkinek, aki fejlesztőként szeretne dolgozni, a következő készségek elsajátítására:
Git - verziókezelés
A Git egy erőteljes verziókezelő rendszer, amelyet 2020-tól szinte univerzálisan alkalmaznak. Ha nem ismeri - igen, a GitHubhoz és a GitLabhoz kapcsolódik, és megtanulhatja ezen eszközök használatát is.
Alapvető terminálhasználat - A Bash parancssor, az SSH és egyéb készségek
Ez lehet egy Mac terminál, egy Windows DOS prompt vagy Bash / ZSH. Vegye figyelembe, hogy a használt operációs rendszertől függetlenül valószínűleg meg kell tanulnia a Linuxot. Még akkor is, ha nem laptop / asztali környezetben használja, szinte biztosan szerverekhez használja.
Adatszerkezetek és algoritmusok
A freeCodeCamp tananyag ezeket alaposan lefedi. Valószínűleg ezeket meg akarja tanulni, ha rengeteg algoritmusproblémát old meg a freeCodeCamp, CodeWars, Project Euler vagy más fúrási webhelyeken. Én személy szerint ezt javasolom JavaScriptben vagy Pythonban, de ha kihívás elé áll, és sok ideje van a kezén, akkor C-ben nem ártana.
A web működésének megértése: HTTPS és API-k
Nagyon sok más fogalmat meg lehet tanulni. A kezdéshez ajánlom, hogy dolgozzon át egy jó belépő szintű informatikai tanfolyamot. Itt találhatók a Harvard CS50 tanfolyamának összes előadása hirdetésmentesen a freeCodeCamp YouTube csatornáján.
Tervezési minták, YAGNI, PUSZ, SZILÁRD
Szerintem a kezdőknek nincs szükségük ezek mély megértésére, de nem ártana.
A tervezési minták alapvetően idővel bevált módszerek a különféle típusú szoftver rendszerek és kódolási struktúrák megvalósítására. Ezeket fokozatosan megtanulhatja, ahogy halad.
Ami az ábécé levest illeti, a következőket állítják ezek:
- YAGNI - Nincs rá szükség - Az a filozófia, amely szerinte a legtöbb kód, amelyet Ön szerint írnia kell, és a megvalósítandó funkciók valóban feleslegesnek bizonyul
- KISS - Tartsd egyszerűnek, butának! - Minél egyszerűbb a projektjeinek megtartása, annál könnyebb lesz az életed a karbantartás terén.
- SZILÁRD - Ez egy emlékeztető az " Egyetlen felelősség," Nyitott-zárt, Liskov-helyettesítés, Interfész elkülönítés, Függőség inverzió "kifejezésre. Igen - nem kezdő dolgok, de nézd meg ezt, ha kíváncsi vagy.
Kezelőfelület webfejlesztési ütemterve
Kamran első ütemterve a front end webfejlesztésre összpontosít.
Itt van teljes egészében a front end ütemterve:

Gondolataim a front end ütemtervről
Ez az alapkészségek szilárd felsorolása.
Kezelőfelület fejlesztőként mindenképpen HTML, CSS és JavaScript használatával fog dolgozni - sok-sok JavaScript-lel.
Csak itt feleslegesnek tartom a dolgokat:
- CSS előfeldolgozók. Ezek szükségszerűek, de maga a CSS számos olyan funkcióval bővült, amelyek ezeket az előfeldolgozókat annyira hasznosakká tették. A freeCodeCamp jelenleg Sass-t oktatja, de ezt is fokozatosan kivezetjük.
- CSS architektúra: Szerintem ezekre nincs szükség, hacsak nem a CSS rendszerek tervezése a mindennapi munkájának nagy része.
- Kicsit nitpick: A TypeScript egy ígéretes módszer a hibák és a kód magabiztos csökkentésére. Ezt hozzáadjuk a freeCodeCamp alaptanterv 7.0 változatához. Úgy gondolom, hogy ennek még hangsúlyosabbnak kell lennie az ütemtervben, de ott van.
- A Web Assembly egy kellemes tapasztalat véleményem szerint. A fejlesztők izgalmas dolgokat kezdenek csinálni vele, de egy időbe telik, mire ez a technológia valóban mindenütt jelen lesz.
Háttér-webfejlesztési ütemterv
Kamran második ütemterve a háttér-web fejlesztésre összpontosít. Ha ezt összekapcsolja a kezelőfelület térképével, akkor nagyon jó utat kap a teljes stack fejlesztővé váláshoz.
Itt van a teljes háttérterv:

Gondolataim a hátulról szóló ütemtervről
Itt mindennel egyetértek.
Igen, meg kell tanulnia az SQL és a relációs adatbázisokat
Határozottan egyet akarok érteni az ajánlásával, miszerint megtanul egy relációs adatbázist.
Igen - az olyan adatbázisok, mint a MongoDB és a Neo4j, sokat tehetnek az Ön számára, és bizonyos típusú alkalmazásokhoz jobban megfelelnek, mint a relációs adatbázisok.
De még mindig meg kell tanulnia az SQL-t, és meg kell értenie a relációs adatbázisok működését.
Ajánlom a PostgreSQL-t (amelyet több projektnél használunk a freeCodeCamp-nál), de más relációs adatbázisok elég hasonlóak.
Itt található a freeCodeCamp ingyenes 4 órás tanfolyama az SQL-ről, amely megtanítja az alapokat.
És ha még mélyebbre akar merülni, itt van a 8 órás ingyenes tanfolyamunk a relációs adatbázis tervezéséről.
Hogyan válasszuk ki a megfelelő háttér-fejlesztő programozási nyelvet
Szeretnék megjegyzést fűzni a nyelv kiválasztásához is.
Annak ellenére, hogy sok nyelv létezik - és lényegében bármit megtehet bármilyen nyelvvel -, erősen ajánlom, hogy vagy a Node.js (JavaScript), vagy a Python nyelvet tanulja meg első nyelvként.
Itt található egy részletes útmutató arról, hogy melyik programozási nyelvet kell először megtanulnia.
DevOps ütemterv
Végül a Kamran kitér arra, hogyan lehet DevOps vagy webhely megbízhatósági mérnök. Ez magában foglalja a sok felhőszolgáltatással való munkát és az infrastruktúra felügyeletét.
Itt van a teljes DevOps ütemterve:

Gondolataim a DevOps ütemtervéről
Linux, Linux, Linux.
Azt is javasolnám, hogy először fejlesztőként dolgozzon, majd fokozatosan szakosodjon a DevOps-ra.
Itt van egy gyors, 30 perces bemutatás a DevOps területéről, amelynek segítségével jobban áttekintheti, hogy a DevOps érdekli-e.
Ez minden. Mit gondolsz? Kihagyott-e Kamran alapvető készségeket vagy technológiákat? Hagyj egy megjegyzést, és tegyük ezt ki.
Ezenkívül, ha vannak olyan erőforrásai, amelyek nagyon jól működtek az Ön számára ezeknek a készségeknek a tanulása során, ossza meg megjegyzésként alább.
Boldog kódolást!
- Quincy