Ist es vorteilhaft, über die Grundlagen einer Kernsprache hinaus zu lernen, wenn das Hauptziel darin besteht, sich auf deren Rahmen zu verlassen? [geschlossen]

10

Bitte denken Sie daran, dass dies kein weiteres "Wie viel [ Programmiersprache hier einfügen ]] wissen sollte, bevor ich zu [ Framework hier einfügen ] übergehe ?" Was ich gerne wissen möchte, ist, wie nützlich es ist, die fortgeschrittenen Konzepte einer Programmiersprache zu lernen, wenn Sie die meiste Zeit stark auf deren Rahmen angewiesen sind. So habe ich zum Beispiel angefangen, jQuery zu verwenden, und mir zuerst die Zeit genommen, um die Kernkonzepte von Javascript wirklich zu verstehen. Zusätzlich habe ich ein paar Bücher über die Grundlagen hinaus (zum Beispiel die Geheimnisse eines Javascript Ninja) im Regal, die sich wirklich mit der Sprache befassen. Während ich durch die Seiten blättere, stelle ich fest, dass einiges davon nicht auf jQuery übertragen wird, da meine Hauptabsicht die DOM-Manipulation ist.

Gleiches gilt für Ruby und RoR. Werden diese Bücher mich insgesamt zu einem besseren Programmierer machen? Wahrscheinlich. Können diese Themen mir helfen, mit ihrem Rahmen so viel besser zu werden? Das fällt mir schwer zu verstehen.

Carl Edwards
quelle
7
Beim Debuggen ist es oft hilfreich, wenn Sie verstehen, was hinter dem Vorhang passiert. Abgesehen davon lerne ich meistens neue Dinge, wenn ich auf die Bedürfnisse stoße, und ich genieße es.
Marczellm
2
Ich bin irgendwie mit Marczellm dabei. Meine allgemeine Einstellung ist, dass Sie nur so viel Code haben, den Sie in Ihrem Leben produzieren können, und Sprachen, Dialekte und Frameworks im Grunde schneller herauskommen, als Sie Code schreiben können. Wenn Sie bereits in der Lage sind, mit mehreren Sprachen und Frameworks zu arbeiten, möchten Sie diese wahrscheinlich auf einer Basis studieren, die Sie wissen müssen oder wissen wollen, und nicht auf einer immer größeren Stufe in Ihrem Gürtel.
Panzercrisis
Ich würde sagen , dass dies IS eine andere : „Wie viel“ Frage - es ist sicherlich die gleiche Antwort hat , die ist , dass es eine Skala je nach Ihren genauen Umstände schieben.
jmoreno
jQuery ist ein Sonderfall. Es ist fast eine andere domänenspezifische Sprache, die in Javascript eingebettet ist. (fast aber nicht leise). Ich frage mich, ob aufgrund dieser Besonderheit diese Frage besser speziell über jQuery und Javascript geschrieben werden sollte (anstatt nur jQuery und Javascript als Beispiel)
Lyndon White

Antworten:

27

Es ist wichtiger , die Sprache zu lernen als das Framework. Lernen Sie die Sprache gut und Sie werden das Framework gut nutzen.

In der Reihenfolge der Wichtigkeit (am wichtigsten zuerst):

  1. Grundlegende Programmierprinzipien - Algorithmen, Datenstrukturen usw.
  2. Sprachparadigmen - OOP, funktional usw.
  3. Sprachmerkmale.
  4. Syntax und Frameworks.
Robert Harvey
quelle
2
Viele, viele Gegenstimmen dazu, wenn ich könnte. Ein Programmierer wird sowohl im Design als auch in der Fähigkeit für fortgeschrittene Arbeiten durch das, was er nicht weiß, eingeschränkt sein.
Peter Smith
8
5. Idiomatischer Code. Lesen Sie den Code anderer Leute und lernen Sie die Stile dieser bestimmten Sprache.
Joshua Taylor
5
@JoshuaTaylor Ich denke, ich würde das vor Frameworks in den Vordergrund stellen, da idiomatischer Code wahrscheinlich mit dem Framework verwendet wird und das separate Lernen nützlicher ist - die Sprach-Idiome sind nicht Teil des Frameworks, und Benutzer des Frameworks haben dies wahrscheinlich mehr hinzugefügt
Izkata
Upvoted, weil es meine persönlichen Vorurteile bestätigt. Trotzdem möchte ich bitte Ihre Quellen haben.
Aaron Hall
5

Natürlich. Die Frage ist: "Ist dieser Vorteil die Zeitinvestition wert?". Ich würde argumentieren, dass dies immer der Fall ist, aber es hängt sicherlich von Ihnen und Ihrer Umgebung ab, da sie sich auf den Nutzen (wie viel Ihre Umgebung von Ihrem Wissen profitiert) im Vergleich zu den Kosten (wie lange Sie zum Lernen brauchen und wie gut Sie sind) auswirken Wissen aufnehmen).

Warum sollte ich behaupten, dass es vorteilhaft ist? Weil Sie nicht immer im Rahmen sind. Selbst das umfassendste Framework ist immer noch Teil eines größeren Ökosystems. Sie können jQuery-Anrufe nicht alleine tätigen. Sie müssen wissen, wie Sie Ihr Skript in die Seite einbinden, wie es ausgeführt wird und wie es mit den gewünschten Aktionen interagiert. Das mag "Grundlagen" in Ihrem Buch sein, aber ich habe immer festgestellt, dass tieferes Wissen mir geholfen hat, Code schneller zu machen und Probleme mit Sicherheit schneller zu debuggen. Framework oder nicht.

Darüber hinaus hat die reale Welt die böse Angewohnheit, in Programmierer einzudringen. Sicher, Ihre heutige Aufgabe könnte darin bestehen, DOM-Manipulationen durchzuführen, aber morgen müssen Sie möglicherweise ein SWFO-Objekt verkabeln. Mit einer guten Grundlage können Sie sich leichter an sich ändernde Umgebungen anpassen.

Und schließlich arbeiten nur noch wenige Programmierer alleine, obwohl Sie möglicherweise nur DOM-Manipulationen durchführen möchten. Ihre Kollegen werden wahrscheinlich fortgeschrittenere Dinge mit der Programmiersprache tun. Sie müssen in der Lage sein, diesen Code zu lesen oder ihn zumindest nicht zu vermasseln.

Telastyn
quelle
1

Benötigen Sie wahrscheinlich ein wenig Gleichgewicht in der Menge, die Sie lernen sollten. Es ist nicht alles oder nichts, also nehmen Sie sich so viel Zeit wie möglich. Sie müssen sich fragen, welche Risiken Sie eingehen möchten, wenn Sie sich auf das Framework verlassen.

Es ist großartig, wenn Sie nur ein Minimum Viable Product zum Laufen bringen müssen. Es wird keine große Leistung oder komplexe Anforderungsprobleme geben. Dies setzt voraus, dass Sie ein Framework ausgewählt haben, das mit dem umgehen kann, was Sie erstellen möchten.

Auf der anderen Seite des Spektrums befindet sich, wenn Sie an einer ziemlich großen / komplexen Anwendung arbeiten und etwas finden, mit dem das Framework schlecht umgeht. Keine große Sache, so dass Sie am Ende mehr JavaScript lernen müssen. Sie hätten diese Zeit damit verbringen müssen, wenn Sie es von Anfang an gelernt hätten. Aber hast du die zeit Werden Sie in der Lage sein, die Grundlagen unter dem Stress zu lernen, etwas nicht rechtzeitig zu erledigen? Niemand kann das beantworten.

Es auszugleichen ist wahrscheinlich die beste Wahl. Halte Dich zurück. Lerne etwas JavaScript, wenn du kannst. Sie werden vielleicht kein Experte, aber das ist kein Grund, es zu ignorieren. Frameworks wurden von Personen erstellt, die ein Problem lösen mussten, das Ihrem ähnlich war, aber nicht genau Ihrem entspricht.

JeffO
quelle
1

Ein allgemeiner Bereich, in dem die Frameworks vertieft werden müssen, bevor die Kernsprache gut bekannt ist, ist die Leistung. Dies gilt für alle Sprachen / Plattformen ( Ruhezustand n + 1 wählt usw. aus). Hier sind viele Tipps und Tricks von JQuery, die (unter anderem) auf guten Kenntnissen der Kernsprache in Bezug auf die Leistung beruhen :

Verwendung für anstelle von "Native" -Funktionen sind immer schneller als alle Hilfsfunktionen. Wenn Sie ein als JSON empfangenes Objekt durchlaufen, sollten Sie Ihren JSON besser umschreiben und ein Array zurückgeben, durch das Sie die Schleife vereinfachen können.

Verwenden von IDs anstelle von Klassen Aufgrund des Verhaltens der Bibliothek ist es viel besser, Objekte nach ID auszuwählen: jQuery verwendet die native Methode des Browsers, getElementByID (), um das Objekt abzurufen, was zu einer sehr schnellen Abfrage führt.

Shivan Drache
quelle
0

Ich denke, Ihre Frage basiert auf einer falschen Prämisse. Sie beginnen damit, dass Sie planen, sich auf ein Framework zu verlassen, und fragen dann, ob es vorteilhaft ist, über das Framework hinaus zu lernen. Sie kommen natürlich zu dem Schluss, dass es sich nicht lohnt. Aber diese Prämisse ist fehlerhaft. Sie sollten sich nicht auf die Verwendung eines Frameworks konzentrieren. Sie sollten sich darauf konzentrieren , das richtige Werkzeug für den richtigen Job zu verwenden . jQuery ist bei bestimmten Aufgaben sehr gut, ebenso wie Ruby on Rails oder andere Frameworks. Aber sie sind nicht immer das richtige Werkzeug für alles. Das Erlernen der Sprache außerhalb des Frameworks und sogar das Erlernen anderer Frameworks, Mikroframeworks oder anderer Tools hilft Ihnen zu erkennen, wann Ihr Framework mehr im Weg steht als es hilft, und gibt Ihnen die Möglichkeit, andere zu suchen.

Meine Antwort lautet also: Ja, es lohnt sich auf jeden Fall, da das Framework nicht für jeden Job das richtige Werkzeug ist.

jpmc26
quelle