Welchen Weg sollte ich als angehender Frontend-Entwickler einschlagen: JavaScript Vanilla oder ein Framework?

Das Ergebnis basiert auf 3 Abstimmungen

JavaScript Vanilla 100%
Framework / Bibliothek (Angular, React, Vue.js) 0%

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
JavaScript Vanilla

Ave!

Du möchtest also auf der Dachterrasse einen Pool bauen obwohl nicht einmal das Haus steht?

Dir bringt kein einziges Framework etwas, wenn du keine Ahnung von der Sprache hast. Die Frameworks implementieren auch nur Funktionen, die auf die Sprache aufbauen und erfinden das Rad nicht neu.

Ohne die Sprache zu verstehen, wirst du auch beim Framework selbst nichts verstehen.

Vielmehr solltest du in der Lage sein das Framework voll und ganz hinterfragen zu können und die Funktionen, die es dir bietet auch selbst realisieren zu können.

Wenn du das kannst und das Konzept verstehst, kannst du ein Framework nutzen um dir die Arbeit zu erleichtern.

Für React musst du viel mitbringen. Du musst verstehen, wie der Event-Loop funktioniert, was Callbacks und asynchrone Funktionen sind und vor allem solltest du den Unterschied zwischen normalen Funktionen und Arrow-Functions verstehen.

Ohne diese Grundkonzepte, die dir nur das Meistern von JavaScript beibringen kann, wirst du bei React nicht weit kommen - jedenfalls nicht performant.

Und ja, ich würde persönlich auch React empfehlen. Es ist im Vergleich zu anderen Frameworks das meistgenutzte und jenes mit den meisten Funktionen und der besten Allround-Performance. Hingegen ist es aber auch mitunter das schwerste mit Angular.

Ich habe mich selbst auf React spezialisiert und im Vergleich mit Kollegen nur gute Erfahrungen gemacht.

Ergänzung:

Auch wenn du auf C# gelernt hast, ist JavaScript ein ganz neues Pflaster. Erst einmal ist JavaScript keine typisierte Sprache und hat viele natürliche Eigenarten, die verstanden werden müssen.

Du musst vielleicht nicht jedes Grundkonzept neu lernen, aber du musst auf jeden Fall lernen, wie der Event-Loop funktioniert, und dass eigentlich alles ein Objekt ist.

Zudem musst du viele Dinge lernen, die erstmal augenscheinlich das Gleiche machen, aber wichtige Unterschiede haben:

var test = 20;
let test = 20;

Beides deklariert Variablen, aber var gilt global, während let auf den Block beschränkt ist.

function myFunc(){}

const myFunc = () => {}

Beides definiert eine leere Funktion. Es gibt hier massive und viele Unterschiede - zu viele zum Aufzählen. Aber besonders für React musst du diese zu 100% verstehen, da du sonst später Fehler suchst, die dir potentiell nicht ausgeworfen werden.

let obj = {a:5,b:2,c:3}
let obj2 = {...obj, b:5}

Ein Konzept, das es so simpel und kurz nur in wenigen Sprachen gibt: obj wird als typisches Objekt definiert mit Properties. Soweit so gut. Aber im nächsten Schritt kopieren wir obj und ändern im gleichen Zuge den Wert b auf 5.

All diese Dinge - und noch viel mehr - musst du lernen und vor allem verstehen, damit du mit React umgehen kannst. Die genannten Beispiele sind Dinge auf die React besonders häufig eingeht.

Woher ich das weiß:Studium / Ausbildung – Anwendungsentwickler, Spezialisierung auf IT-Sicherheit
JrDev 
Fragesteller
 08.04.2024, 06:52

Vielen Dank für die detaillierte Antwort :)

Ich hab schon mit dem JS Kurs begonnen auf Udemy, weil ich mir auch dachte lern erst das Grundgerüst den Kern bevor du mit der Fassade beginnst, jedoch hatte mich dieser eine Kommentar ins Grübeln gebracht ob es wirklich so ist das man direkt lieber mit einem Framework starten sollte aber du hast es ja hier super erklärt :)

0
JavaScript Vanilla

Als erfahrener Programmierer kann ich mich in ein neues Framework in ein paar Wochen einarbeiten. Für die Jobsuche ist es also nicht so wichtig, das verwendete Framework zu kennen.

Wichtiger ist es, Erfahrung mit der Programmiersprache zu haben, lösungsorientiert zu denken und sich ein wenig mit Software-Architektur auszukennen. Wenn du mal in einem Team Software entwickeln sollst, ist es wichtig, dass dein Code einfach zu verstehen und leicht erweiterbar ist. Das erfordert viel Übung und Erfahrung. Dafür ist es aber ziemlich egal, welches Framework du verwendest.

Vor allem würde ich vorerst von einem Framework abraten, weil JavaScript Frameworks eine hohe Komplexität mit sich bringen, und schnell verwirrend sind, wenn du mit den Grundlagen von JavaScript noch nicht vertraut bist. Dein Wissen von C# wird sich nur bedingt auf JavaScript übertragen lassen; JavaScript ist ganz anders, auch wenn es auf den ersten Blick ähnlich aussieht.

Mein Tipp also: Lerne das Gehen, bevor du versuchst zu rennen. Lerne erst JavaScript, bevor du dich an ein Framework heranwagst.

MagisterSamael  08.04.2024, 05:38

Stimme dir voll zu.

Habe damals ursprünglich auf C++ gelernt und zwischenzeitlich viele andere Skriptsprachen wie etwa Julia oder Lua gelernt, aber keine war derart komplex und hart zu meistern wie JavaScript.

Von der Komplexität würde ich JS persönlich tatsächlich noch über C# einordnen. C# ist relativ straightforward und meckert bei jeder Kleinigkeit. JS muss man hingegen wirklich verstehen um guten Code zu schreiben.

1
VeryBestAnswers  08.04.2024, 06:07
@MagisterSamael
keine war derart komplex und hart zu meistern wie JavaScript.

Dann vermute ich mal, dass du nie PHP gelernt hast. Aber Spaß beiseite, du hast natürlich Recht, was die Komplexität von JavaScript angeht. Allerdings vergleichst du es mit Lua, einer der einfachsten Programmiersprachen, die es gibt (Der offizielle Lua Interpreter besteht aus nur 24.000 Zeilen Code).

1
MagisterSamael  08.04.2024, 06:10
@VeryBestAnswers

Ich habe PHP gelernt, es aber verdrängt. Danke, jetzt hab ich wieder eine Panikattacke xD

Würde als Kandidaten gegen Lua noch Python in den Raum werfen tbh.

0
JrDev 
Fragesteller
 08.04.2024, 06:55

Auch dir danke für deine Antwort dann bleib ich meinem weg treu und mach den ja Kurs durch :) nur will man irgendwo halt auch schnell in den Job und fragt sich dann wenn man sowas liest wie direkt Frameworks lernen statt js Vanilla ob es wirklich der richtige weg ist aber gut dann kann ich beruhigt weiter lernen :)

0