Was ist ein Full Stack Webdeveloper

Ein Full Stack Webdeveloper ist eine Entwickler, der sowohl im Frontend Sektor als auch im Backend-Bereich bewandert ist. Die genauen Skills möchte ich dir weiter unten aufzeigen. Vorerst gebe ich dir ein paar Vor- und Nachteile, die ein Webdeveloper Lifestyle mit sich bringt.

Vorteile eines Full Stack Webdevelopers

Die Vorteile liegen natürlich auf der Hand. Du kannst (theoretisch) eine eigene Webapplikation im Alleingang erstellen, warten und kontinuierlich verbessern. Du hast ein Verständis für ein gutes User Interface bzw. weist du, was dem Endbenutzer gefallen könnte. Grob gesagt, du hast ein weiten Blick auf jeden Bereich eines Projektes. Perfekt für die Stelle als Team-/ Projektleiter. :P

Du sammelst Wissen und Erfahrung in so ziemlich jeden einzelnen Bereich der Entwicklung. Hier nur mal eine kleine Auflistung von meinen bisherigen learnings:

  • Datenbanken: MySQL, MSSQL, MongoDB, Firebase DB, PostgreSQL
  • Programmiersprachen: JavaScript, Java, GoLang, Ruby, PHP, ...
  • Umgang mit der Shell / Konsole
  • Linux-Kenntnisse
  • Docker
  • NGINX
  • Git
  • Frameworks: NodeJS, SpringBoot, VueJS, Express, PassportJS,...
  • HTML & CSS
  • Umgang mit Grafiktools wie Affinity Designer und Affinity Photo
  • SEO
  • Algorihtmen
  • ... täglich was neues ^^

Nachteile eines Full Stack Webdevelopers

Das Problem ist die Spezialisierung. Da die Erfahrung stark in verschiedene Themen abdriftet, kann man sich kaum in jedem Bereich zu 100% auskennen und dabei noch wissen, was man eigentlich gerade macht.

Falls du doch im Alleingang ein Projekt umsetzen möchtest, kannst du dir schon mal etwas Zeit nehmen. Eine Person kann vielleicht das Wissen von zwei Personen besitzen, aber die Umsetzungsgeschwindigkeit verringert sich sehr stark. Zwei Köpfe und 20 Finger sind halt nunmal immer besser, als nur ein Kopf und 10 Finger.

Das Ganze lässt sich aber nicht unendlich skalieren. Vergleichen kannst du das mit einem Hausbau und Bauarbeitern. Wenn 10 Bauarbeiter 10 Tage brauchen. Dann brauchen 100 Bauarbeiter nicht automatisch nur einen Tag. Hier spielen verschiedene Faktoren eine große Rolle. Das lässt sich auch auf Softwareenwickler übertragen. Natürlich kann man ein Team mit 50 Entwicklern beschäftigen. Dafür braucht man allerdings eine sehr gute Organistation der Mitarbeiter und einen Plan der Kopf und Fuß hat.

Du musst das wirklich wollen. Am besten programmierst du auch in der Freizeit sehr gerne und lernst gerne neue Technologien. Du schwingst dich von Sideproject zu Sideproject und erledigst alle Aufgaben im Schlaf.

Hört sich wieder sehr einfach an. Aber eine echten Full Stack Webdeveloper wird es vermutlich nicht geben. Ich beschäftige mich zwar auch unfassbar gerne mit allen verschiedenen Bereichen, merke aber auch, dass die Zeit vorne und hinten nicht ausreicht um alles zu lernen. Machine Learning ist so ein interessantes Thema, jedoch muss ich mich gerade mit der MongoDB beschäftigen, weil das gerade relevant für ein anderes Projekt ist.

Wenn ich mehrere Sachen auf einmal machen könnte, würde ich es sofort tun. Multitasking funktioniert generell schon nicht so wirklich gut und gerade als Softwareentwickler kannst du das vollkommen in die Tonne treten. Klar, man lernt, in dem man Fehler macht. Das ist aber kein Multitasking. Zu dem Thema sollte ich eventuell eine eignen Post verfassen. ;)

Welche Fähigkeiten / Eigenschaften braucht ein Full Stack Developer / Entwickler

Hier mal ein grober Überblick. Du entwickelst natürlich auch einige der Fähigkeiten im Laufe der Zeit. Gerade wenn du im Beruf weiter aufsteigst, wachsen deine Kenntnisse im Bereich der Softskills. Immer mehr Leute kommen zu dir, da du die Person mit der Erfahrung und dem nötigen Know-How bist. :P

  1. Gaaaaanz viel Ausdauer
  2. Zeit (Zeiteinteilung / Zeitmanagement)
  3. Spaß am Lernen
  4. Hobby: Coden
  5. Kreativität
  6. Problemlöser
  7. Ein Auge für gutes Design
  8. Softskills wie Kommunitkationsfähigket (außer du bist kein Teamplayer)

Welche Aufgabengebiete hat ein Full Stack Entwickler

Full Stack Developer - Aufgabengebiet

Sorry für dieses Denglisch. Das wirst du bei mir vermutlich öfters so lesen. Passiert mir immer viel zu schnell, dass ich lieber das englische Wort benutzt.

Wie auch immer.

BAM!

Ein Full Stack Entwickler ist quasi die Eierlegende Wollmilchsau unter den Entwicklern. Sei es Frontend oder Backend, die ideale Speicherung der Daten und das installieren eines Ubuntu Servers in einer hochkomplexen Clusterumgebung, welche noch dazu horizontal Skalierbar sein soll. Der Full Stack Developer weiß natürlich auf alles die perfekte Lösung.

Das ist Schwachsinn!

Einen groben Überblick zu haben, ist vollkommen in Ordnung. Auch sehe ich von meiner Seite aus keine Probleme sich in Frontend, Backend und Datenbanken einzuarbeiten. Wenn einem das wirklich Spaß macht, kann man das schaffen.

Ich geh noch mal eben etwas auf die einzelnen Bereiche ein.

Was ist Frontend

Frontend ist das, was der Endbenutzer sieht. Das ist beispielsweise im Webdevelopment die Website oder bei App-Entwicklern die grafische Benutzeroberfläche der App.

Da das Frontend im größtenteils aus Design besteht, kommt hier viel HTML, CSS und JavaScript zum Einsatz. HTML für die Struktur. CSS für das grafische Design und JavaScript für Validierungen und Animationen. Nur mal als grobe Richtung, wohin das führt.

Was ist Backend

Wo ein Frontend, da auch ein Backend (meistens!). Backend ist genau der Part, der für den Endbenutzer nicht sichtbar ist und auch nicht sichtbar sein soll. Als Beispiel für einen Anwendungszweck, ein Kunde registriert sich bei deinem Webshop. Die Daten müssen nach valider Eingabe in einer Datenbank gespeichert werden. Genau dieser Vorgang geschieht Backend-Seitig. Das erneute Prüfen auf Vollständigkeit / Richtigkeit und das Schreiben in die Datenbank. Würde man diesen Part rein Frontend-Seite lösen wollen, wäre deine Datenbank innerhalb von ein paar Sekunden entweder leer, geklaut oder überfüllt.

Damit du verstehst, warum das so ist, hier eine kurze Erklärung am Rande.
Jeglicher Code, der Frontend-Seitig geschrieben wird, kann von wirklich jedem gelesen werden. Einmal F12 drücken und zack, du hast den Code. Wenn du jetzt deine Datenbank Abfragen in genau diesen Teil deiner Website einbaust, sieht jeder deine Zugangsdaten für die Datenbank. Und glaub mir, das willst du nicht.

NodeJS, GoLang und Java sind nur ein paar Beispiele für Programmiersprachen, die du im Backend Serverbereich verwenden kannst. Sicherheit spielt auch hier eine große Rolle. Von Authentifizierung bis SSL-Verschlüsselung. API ist eine Abkürzung für Application Programming Interface. Hier gibt es auch wieder verschiedene Technologien, wie z.B. REST, SOAP und auch in Libaries und Frameworks findest du APIs.

Was ist eine Datenbank

Ganz kurz, der Ort wo du deine Daten speicherst.

SQL steht für Structured Query Language und ist eine Abfragesprache für relationale Datenbanken.

NoSQL steht für Not Only SQL. Hier werden meistens anbieterspezifische Sprachen zum Abfragen der Daten verwendet. MongoDB nenne ich hier mal als Beispiel.

Die Speicherung der Daten unterscheidet sich von Datenbanksystem zu Datenbankystem. Bei MySQL werden die Daten in Tabelle gespeichert, bei MongoDB in Collections bzw. Dokumenten.

Alles weitere würde hier den Rahmen sprengen. Wenn es einen Beitrag dazu gibt, werde ich ihn hier verlinken.

Was muss ich sonst noch wissen

Hosting, das heißt wie viele Ressourcen brauche ich für meine Anwendung. Mit wie viel Traffic muss ich rechnen und wo steht mein Rechenzentrum. Diese Fragen solltest du bei der Auswahl deines Hostings auf jeden Fall beachten. Die meisten Hoster sind zwar im Bereich der Ressourcenverwaltung sehr flexibel, aber die Kosten müssen natürlich kalkuliert werden.

UI/UX also User Interface und User Experience sind nur optinal. Bietet sich jeodch an, da man vermutlich sehr viele Projekt mit Benutzeroberfläche erstellt. Dadurch entwickelt sich mit der Zeit ein Gefühl für gute Positionierung und schönes Design.

Git ist ein Repository für den Quellcode deines Projektes. Falls du darüber mehr wissen möchtest, kannst du dir hier meine anderen Post zum Thema Git durchlesen.

Mit der Shell wirst du sehr schnell und auch noch lange Arbeiten. Vermutlich kennst du Shell auch unter den anderen Namen, wie z.B. Terminal, Konsole, PowerShell oder auch Eingabeaufforderung.

Last but not least (wie ich diesen Spruch hasse :D ) Algorithmen! Für gutes Coding brauchst du auch ein Verständnis für Algorithem und gutem Code. Gerade wenn du mit anderen Programmieren arbeitest, solltest du auf alle Fälle einen gewissen Style Guide befolgen und diesen auch publizieren. Wie Einrückungen sein sollen und ob Leerzeichen oder Tabs verwendet werde. :D

Fazit zum Full Stack Entwickler

Ich bin auch gerade dabei, mich als Full Stack Entwickler zu etablieren. Firmen sind immer auf der Such nach solchen multitalenten. Jedoch gibt es diese und diese. Für mich ist Oberflächliches Wissen nichts. Deswegen spezialisiere ich mich auf die Bereiche Backend, Datenbanken und alles andere, bis auf Frontend. Frontend kann gerne jemand anderes für mich übernehmen.

Gut, wenn ich Projekt alleine umsetze, bleibt mir nichts anderes übrig, aber ich mach es einfach nicht so gerne. Bei CSS fehlt mir irgendwie der logische Teil.

Naja, wie aich immer. Ich hoffe natürlich dir hat dieser Beitrag irgendwie weitergeholfen. Falls du Fragen oder Anregungen hast, kannst du dich gerne über Instagram oder per Mail bei mir melden.


michster