Vuoden 2020 verkkokehittäjien etenemissuunnitelma - Visuaalinen opas käyttöliittymän, takapään tai DevOps-kehittäjäksi tulemiseen

Voit monin tavoin poimia taitoja, joita tarvitset kehittäjäksi.

On lineaarisia opetussuunnitelmia, jotka opettavat sinulle vähän kaikkea - kuten freeCodeCampin koko pino-opetussuunnitelma.

Ja sitten on valtava luettelo taidoista - ja joskus luetteloista resursseista - joita voit käyttää "valitsemaan oman seikkailusi" oppimisprosessin kautta.

Yksi parhaista tällaisista taitoluetteloista on Kamran Ahmedin kehittäjien etenemissuunnitelma, jota hän päivittää säännöllisesti.

Tämä ei ole tavallinen luettelo resursseista. Kamran on kartoittanut huolellisesti kaikki taidot, jotka hän pitää välttämättöminä murtumiselle eri kehitysalueille.

Olen kirjoittanut hänen etenemissuunnitelmastaan ​​aiemmin. Ja juhlistaaksemme meitä kaikkia puolivälissä vuoteen 2020, aion jakaa hänen koko etenemissuunnitelmansa täällä - kaikki kolme.

Aivan oikein - hänellä on luettelo työkaluista ja resursseista, joita tarvitaan seuraaville poluille:

  • Etupään verkkokehitys
  • Taustapalvelujen verkkokehitys
  • DevOps (tunnetaan myös nimellä "sivuston luotettavuus" - tämä on eräänlainen kehitys vanhan järjestelmänvalvojan roolissa)

Taidot, joita kaikki kehittäjät tarvitsevat erikoistumisestaan ​​riippumatta

Näiden polkujen lisäksi Kamran suosittelee myös kaikille, jotka haluavat työskennellä kehittäjänä, oppimaan seuraavat taidot:

Git - versionhallinta

Git on tehokas versionhallintajärjestelmä, jota vuodesta 2020 lähtien käytetään lähes yleisesti. Jos et tiedä sitä - kyllä, se liittyy GitHubiin ja GitLabiin, ja voit oppia käyttämään myös näitä työkaluja.

Päätteen peruskäyttö - Bash-komentorivi, SSH ja muut taidot

Tämä voi olla Macin pääte, Windowsin DOS-kehote tai Bash / ZSH. Huomaa, että riippumatta siitä, mitä käyttöjärjestelmää käytät, sinun pitäisi todennäköisesti oppia Linux. Vaikka et käytä sitä kannettavaan tietokoneeseen / työpöytäympäristöön, käytät sitä melkein varmasti palvelimille.

Tietorakenteet ja algoritmit

FreeCodeCamp -opetussuunnitelma kattaa nämä perusteellisesti. Luultavasti haluat oppia nämä ratkaisemalla paljon algoritmiongelmia freeCodeCampilla, CodeWarsilla, Project Eulerillä tai muulla poraussivustolla. Henkilökohtaisesti suosittelen tämän tekemistä joko JavaScriptissä tai Pythonissa, mutta jos olet haasteessa ja sinulla on paljon aikaa käsissäsi, sen tekeminen C: ssä ei vahingoita.

Ymmärtäminen verkon toiminnasta: HTTPS ja sovellusliittymät

Voit oppia monia muita käsitteitä. Aloittamiseksi suosittelen työskentelemään hyvän lähtötason tietojenkäsittelykurssin läpi. Tässä on kaikki Harvardin CS50-kurssiluennot ilman mainoksia freeCodeCampin YouTube-kanavalla.

Suunnittelumallit, YAGNI, KISS, SOLID

Mielestäni aloittelijat eivät tarvitse syvällistä ymmärrystä näistä, mutta se ei vahingoittaisi.

Suunnittelumallit ovat pohjimmiltaan testattuja tapoja toteuttaa erityyppisiä ohjelmistojärjestelmiä ja koodausrakenteita. Voit oppia nämä vähitellen edetessäsi.

Mitä tulee aakkoskeittoon, tässä nämä ovat:

  • YAGNI - ei tarvitse sitä - Filosofia, jonka mukaan suurin osa koodista, jonka luulet tarvitsevan kirjoittaa, ja ominaisuudet, jotka sinun on pantava täytäntöön, osoittautuu tarpeettomaksi
  • KISS - Pidä se yksinkertaisena, typeränä! - Mitä yksinkertaisemmin pidät projektisi, sitä helpompaa elämäsi on huollossa.
  • KIINTEÄ - Tämä on muistisana sanalle " Yksi vastuu," Avoin - suljettu, Liskov-korvaaminen, Liitännän erottelu, Riippuvuuden kääntäminen ". Joo - ei aloittelijan juttuja, mutta tutki tätä, jos olet utelias.

Käyttöliittymän web-kehityksen tiekartta

Kamranin ensimmäinen etenemissuunnitelma keskittyy käyttöliittymän web-kehitykseen.

Tässä on hänen etupään etenemissuunnitelma kokonaisuudessaan:

Ajatukseni etupään tiekartasta

Tämä on vankka luettelo perustaidoista.

Etupään kehittäjänä työskentelet ehdottomasti HTML: n, CSS: n ja JavaScriptin kanssa - paljon ja paljon JavaScriptiä.

Ainoat asiat, jotka mielestäni ovat tässä tarpeettomia:

  • CSS-esiprosessorit. Nämä ovat välttämättömiä, mutta CSS itse on lisännyt monia ominaisuuksia, jotka tekivät näistä esiprosessoreista niin hyödyllisiä. freeCodeCamp opettaa tällä hetkellä Sassia, mutta olemme myös poistamassa sitä.
  • CSS-arkkitehtuuri: Mielestäni nämä eivät ole välttämättömiä, ellet suunnittele CSS-järjestelmiä ole suuri osa päivittäistä työtäsi.
  • Hieman nitpick: TypeScript on lupaava tapa vähentää vikoja ja koodia luottavaisin mielin. Lisäämme tämän freeCodeCamp-perussuunnitelman versioon 7.0. Mielestäni tämän pitäisi olla entistä näkyvämpi etenemissuunnitelmassa, mutta se on siellä.
  • Web Assembly on mielestäni mukava saada. Kehittäjät alkavat tehdä mielenkiintoisia asioita sen kanssa, mutta kestää jonkin aikaa, ennen kuin tästä tekniikasta tulee todella kaikkialla.

Web-kehyksen etupääte

Kamranin toinen etenemissuunnitelma keskittyy web-kehitykseen. Jos yhdistät tämän hänen etupään karttaan, saat melko hyvän tien tulla täyden pinon kehittäjäksi.

Tässä on hänen koko takapään etenemissuunnitelma:

Ajatukseni loppupään tiekartasta

Olen samaa mieltä kaikesta täällä.

Kyllä, sinun pitäisi oppia SQL ja relaatiotietokannat

Haluan olla vahvasti samaa mieltä hänen suosituksensa kanssa, että opit relaatiotietokannan.

Kyllä - tietokannat, kuten MongoDB ja Neo4j, voivat tehdä paljon sinulle, ja ne soveltuvat paremmin tietyntyyppisiin sovelluksiin kuin relaatiotietokannat.

Mutta sinun pitäisi silti oppia SQL ja ymmärtää, miten relaatiotietokannat toimivat.

Suosittelen PostgreSQL: ää (jota käytämme useissa projekteissa freeCodeCampissa), mutta muut relaatiotietokannat ovat melko samanlaisia.

Tässä on freeCodeCampin ilmainen 4 tunnin SQL-kurssi, joka opettaa sinulle perusasiat.

Ja jos haluat sukeltaa vielä syvemmälle, tässä on ilmainen 8 tunnin kurssi relaatiotietokantojen suunnittelusta.

Kuinka valita oikea taustakehityksen ohjelmointikieli

Haluan myös lisätä huomautuksen kielen valitsemisesta.

Vaikka kieliä on monia - ja voit tehdä olennaisesti mitä tahansa kieltä - suosittelen voimakkaasti joko Node.js (JavaScript) tai Pythonin oppimista ensimmäiseksi kieleksi.

Tässä on yksityiskohtainen opas siitä, minkä ohjelmointikielen sinun tulisi ensin oppia.

DevOps-etenemissuunnitelma

Lopuksi Kamran kertoo kuinka tulla DevOpsiksi tai sivuston luotettavuusinsinööriksi. Tähän sisältyy työskentely monien pilvipalvelujen kanssa ja infrastruktuurin valvonta.

Tässä on koko hänen DevOps-tiekartta:

Ajatukseni DevOps-tiekartasta

Linux, Linux, Linux.

Suosittelen myös ensin työskentelemään kehittäjänä ja sitten vähitellen erikoistumaan DevOpsiin.

Tässä on nopea 30 minuutin esittely DevOps-kentästä, jonka pitäisi antaa sinulle parempi käsitys siitä, onko DevOps sinua kiinnostava asia.

Siinä kaikki. Mitä mieltä sinä olet? Jättikö Kamran keskeisiä taitoja tai tekniikoita? Jätä kommentti ja sekoitetaan tämä.

Jos sinulla on resursseja, jotka ovat toimineet todella hyvin näiden taitojen oppimisessa, jaa ne alla kommenttina.

Hyvää koodausta!

- Quincy