Die Roadmap für Webentwickler 2020 - Ein visueller Leitfaden, um Front-End-, Back-End- oder DevOps-Entwickler zu werden

Es gibt viele Möglichkeiten, wie Sie die Fähigkeiten erwerben können, die Sie benötigen, um Entwickler zu werden.

Es gibt lineare Lehrpläne, die Ihnen ein bisschen von allem beibringen - wie das Full-Stack-Entwicklungscurriculum von freeCodeCamp.

Und dann gibt es riesige Listen von Fähigkeiten - und manchmal auch Listen von Ressourcen -, mit denen Sie während des Lernprozesses "Ihr eigenes Abenteuer wählen" können.

Eine der besten Listen dieser Art ist die Entwickler-Roadmap von Kamran Ahmed, die er regelmäßig aktualisiert.

Dies ist keine gewöhnliche Liste von Ressourcen. Kamran hat alle Fähigkeiten, die er für wesentlich hält, um in verschiedene Entwicklungsbereiche einzudringen, sorgfältig ausgearbeitet.

Ich habe in der Vergangenheit über seine Roadmap geschrieben. Und um zu feiern, dass wir alle Mitte 2020 sind, werde ich hier seine gesamte Roadmap teilen - alle drei.

Das ist richtig - er hat Listen von Tools und Ressourcen, die für die folgenden Pfade benötigt werden:

  • Front-End-Webentwicklung
  • Backend-Webentwicklung
  • DevOps (auch als "Site Reliability" bekannt - dies ist eine Art Weiterentwicklung der alten Systemadministratorrolle)

Die Fähigkeiten, die alle Entwickler unabhängig von ihrer Spezialisierung benötigen

Zusätzlich zu diesen Pfaden empfiehlt Kamran jedem, der als Entwickler arbeiten möchte, die folgenden Fähigkeiten zu erlernen:

Git - Versionskontrolle

Git ist ein leistungsstarkes Versionskontrollsystem, das ab 2020 nahezu universell eingesetzt wird. Wenn Sie es nicht wissen - ja, es hängt mit GitHub und GitLab zusammen, und Sie können auch lernen, wie Sie diese Tools verwenden.

Grundlegende Verwendung des Terminals - Die Bash-Befehlszeile, SSH und andere Fähigkeiten

Dies kann das Terminal auf einem Mac, eine Windows-DOS-Eingabeaufforderung oder Bash / ZSH sein. Beachten Sie, dass Sie unabhängig davon, welches Betriebssystem Sie verwenden, wahrscheinlich Linux lernen sollten. Selbst wenn Sie es nicht für Ihre Laptop- / Desktop-Umgebung verwenden, werden Sie es mit ziemlicher Sicherheit für Server verwenden.

Datenstrukturen und Algorithmen

Das freeCodeCamp-Curriculum behandelt diese ausführlich. Sie möchten diese wahrscheinlich lernen, indem Sie viele Algorithmusprobleme auf freeCodeCamp, CodeWars, Project Euler oder einer anderen Bohrwebsite lösen. Ich persönlich empfehle, dies entweder in JavaScript oder Python zu tun, aber wenn Sie sich einer Herausforderung stellen und viel Zeit zur Verfügung haben, würde es nicht schaden, dies in C zu tun.

Ein Verständnis der Funktionsweise des Webs: HTTPS und APIs

Es gibt viele andere Konzepte, die Sie lernen können. Ich empfehle, einen guten Einstiegskurs in Informatik zu absolvieren, um loszulegen. Hier finden Sie alle werbefreien CS50-Kursvorträge von Harvard auf dem YouTube-Kanal von freeCodeCamp.

Design Patterns, YAGNI, KISS, SOLID

Ich denke nicht, dass Anfänger ein tiefes Verständnis dafür brauchen, aber es würde nicht schaden.

Entwurfsmuster sind im Grunde bewährte Methoden zur Implementierung verschiedener Arten von Softwaresystemen und Codierungsstrukturen. Sie können diese schrittweise lernen, während Sie fortschreiten.

Für die Buchstabensuppe stehen diese:

  • YAGNI - Sie werden es nicht brauchen - Die Philosophie, dass der größte Teil des Codes, den Sie schreiben müssen, und die Funktionen, die Sie implementieren müssen, sich tatsächlich als unnötig herausstellen werden
  • KISS - Mach es einfach, dumm! - Je einfacher Sie Ihre Projekte verwalten, desto einfacher wird Ihr Leben in Bezug auf die Wartung.
  • SOLID - Dies ist eine Mnemonik für " Einzelverantwortung," Offen geschlossen, Liskov-Substitution, Schnittstellentrennung, Abhängigkeitsinversion ". Ja - nicht für Anfänger, aber schauen Sie sich das an, wenn Sie neugierig sind.

Roadmap für die Front-End-Webentwicklung

Kamrans erste Roadmap konzentriert sich auf die Front-End-Webentwicklung.

Hier ist seine Front-End-Roadmap in ihrer Gesamtheit:

Meine Gedanken zur Frontend Roadmap

Dies ist eine solide Liste grundlegender Fähigkeiten.

Als Front-End-Entwickler werden Sie auf jeden Fall mit HTML, CSS und JavaScript arbeiten - viel, viel JavaScript.

Die einzigen Dinge, die ich hier für unnötig halte:

  • CSS-Präprozessoren. Diese waren früher notwendig, aber CSS selbst hat viele der Funktionen hinzugefügt, die diese Präprozessoren so nützlich gemacht haben. freeCodeCamp unterrichtet derzeit Sass, aber wir sind dabei, dies ebenfalls einzustellen.
  • CSS-Architektur: Ich denke nicht, dass dies notwendig ist, es sei denn, Sie entwerfen CSS-Systeme, die einen großen Teil Ihrer täglichen Arbeit ausmachen.
  • Ein kleiner Trottel: TypeScript ist ein vielversprechender Weg, um Fehler und Code mit Vertrauen zu reduzieren. Wir fügen dies Version 7.0 des freeCodeCamp-Kerncurriculums hinzu. Ich denke, dies sollte auf der Roadmap noch wichtiger sein, aber es ist dort.
  • Web Assembly ist meiner Meinung nach eine nette Sache. Entwickler fangen an, aufregende Dinge damit zu machen, aber es wird eine Weile dauern, bis diese Technologie wirklich allgegenwärtig wird.

Roadmap für die Back-End-Webentwicklung

Kamrans zweite Roadmap konzentriert sich auf die Back-End-Webentwicklung. Wenn Sie dies mit seiner Front-End-Karte kombinieren, erhalten Sie einen ziemlich guten Weg, um ein Full-Stack-Entwickler zu werden.

Hier ist seine gesamte Back-End-Roadmap:

Meine Gedanken zur Back End Roadmap

Ich stimme hier mit allem überein.

Ja, Sie sollten SQL und relationale Datenbanken lernen

Ich möchte seiner Empfehlung, eine relationale Datenbank zu lernen, nachdrücklich zustimmen.

Ja - Datenbanken wie MongoDB und Neo4j können viel für Sie tun und eignen sich besser für bestimmte Arten von Anwendungen als relationale Datenbanken.

Sie sollten jedoch weiterhin SQL lernen und verstehen, wie relationale Datenbanken funktionieren.

Ich empfehle PostgreSQL (das wir für mehrere Projekte bei freeCodeCamp verwenden), aber andere relationale Datenbanken sind ziemlich ähnlich.

Hier ist der kostenlose 4-stündige SQL-Kurs von freeCodeCamp, in dem Sie die Grundlagen lernen.

Und wenn Sie noch tiefer eintauchen möchten, finden Sie hier unseren kostenlosen 8-stündigen Kurs zum relationalen Datenbankdesign.

So wählen Sie die richtige Backend-Entwicklungsprogrammiersprache aus

Ich möchte auch einen Hinweis zur Auswahl einer Sprache hinzufügen.

Obwohl es viele Sprachen gibt - und Sie mit jeder Sprache praktisch alles machen können - empfehle ich dringend, entweder Node.js (JavaScript) oder Python als Ihre erste Sprache zu lernen.

Hier finden Sie eine detaillierte Anleitung, welche Programmiersprache Sie zuerst lernen sollten.

DevOps Roadmap

Schließlich behandelt Kamran, wie man ein DevOps oder Site Reliability Engineer wird. Dies beinhaltet die Arbeit mit vielen Cloud-Diensten und die Überwachung der Infrastruktur.

Hier ist seine gesamte DevOps-Roadmap:

Meine Gedanken zur DevOps-Roadmap

Linux, Linux, Linux.

Außerdem würde ich empfehlen, zuerst als Entwickler zu arbeiten und sich dann allmählich auf DevOps zu spezialisieren.

Hier ist eine kurze 30-minütige Einführung in das Gebiet von DevOps, die Ihnen eine bessere Vorstellung davon geben soll, ob Sie an DevOps interessiert sind.

Das ist alles. Was denken Sie? Hat Kamran wesentliche Fähigkeiten oder Technologien ausgelassen? Hinterlasse einen Kommentar und lass uns das raushauen.

Wenn Sie Ressourcen haben, die für das Erlernen dieser Fähigkeiten wirklich gut funktioniert haben, teilen Sie sie unten als Kommentar mit.

Viel Spaß beim Codieren!

- Quincy