A 2020-as webfejlesztői ütemterv - Visual Guide for Front End, Back End or DevOps Developer

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