Man weiß nie, woher die nächste Grand Debate™ im Front-End kommt! Fallbeispiel: Wir sahen kürzlich eine, die auf einer kleinen Twitter-Umfrage von Max Stoiber basierte, bei der 57 % der Leute falsch lagen. Die Reaktionen reichten von harmlosen „Hey, ein kleiner Denksport!“ bis hin zu „Der Zustand der Web-Ausbildung ist ruiniert“ und darüber hinaus.
Ich hörte von vielen Leuten, dass sie einfach traurig waren, dass so viele Leute die Antwort auf eine ziemlich einfache Frage nicht kannten. Um fair zu sein, es war (absichtlich, da bin ich sicher) ziemlich knifflig! Es war nicht wirklich eine Frage über CSS – es ging mehr um die Idee, dass die Reihenfolge von HTML-Attributen keine Rolle spielt. Es ist die Reihenfolge von CSS, die zählt.
Eine extreme Reaktion, die ich sah, besagte, dass solche Front-End-Dinge unnötig kompliziert seien und Fehler bei solchen Dingen fast schon ein Grund zum Stolz seien. Diese Haltung war so stark, dass ich hörte, es wurde vorgeschlagen, dass Leute, die die Antwort kennen, ihre Gehirne mit nutzlosen Informationen gefüllt hätten und dass sie das irgendwie zu schlechteren Entwicklern mache. Ebenso extrem waren die Vorschläge, dass das Schreiben von HTML und CSS in dieser rohen Form immer vermieden werden sollte zugunsten von Tool-Abstraktionen, um diese „Probleme“ zu „beheben“.
(Entschuldigen Sie die Anführungszeichen dort, ich versuche nicht, eine Seite zu wählen, sondern zu betonen, dass nicht jeder diese Probleme als zu behebende Probleme betrachtet.)
Eine andere Ansicht war, dass die Stimmung anders wäre, wenn etwas Ähnliches im JavaScript-Bereich passieren würde. Die Wahrnehmung ist, dass es peinlich oder schlecht ist, JavaScript-Grundlagen nicht zu kennen, aber HTML- und CSS-Grundlagen nicht zu kennen, sei die Schuld der Sprache, oder dass der Wert des Wissens es nicht wert sei, sich damit zu beschäftigen.
Gleichzeitig wurde diese Umfrage zum perfekten Spiegel, um die starken Meinungen zu sehen, die die Leute über Front-End-Praktiken haben. Faszinierend, wirklich.
Hier sind ein paar weitere Ansichten von Leuten, die sich von ihren eigenen Blogs gemeldet haben
Keith Grant
Ich hasse es, dass dies irgendwie zu einer „Alte Garde“ gegen „Neue Garde“-Sache geworden ist.
Das Problem beim Ziehen von Linien wie dieser: Auf welcher Seite Sie sich auch befinden, es gibt einige Verrückte da draußen, die lächerliche Argumente einbringen. Und jetzt assoziieren die Leute auf der anderen Seite diese Sichtweise mit Ihnen.
Tim Kadlec
Es stört mich nicht zu sehr, dass die Leute die Frage falsch beantworten. Jeder ist in verschiedenen Phasen seiner Karriere und jeder hat unterschiedliche Probleme, mit denen er sich in seinen täglichen Aufgaben auseinandersetzen muss, also sicher, nicht jeder wird das schon wissen.
Ich finde es jedoch ein wenig alarmierend, wie viele Leute es falsch gemacht haben.
John Allsopp:
Einerseits (und das vereinfacht jede „Seite“ etwas, der Kürze halber, nicht der Respektlosigkeit gegenüber beiden), haben wir diejenigen, und ich würde mich im Großen und Ganzen wahrscheinlich diesem Lager zuordnen, die argumentieren würden, dass die Kerntechnologien des Webs genau das sind – grundlegend, und ein tiefes Verständnis davon konzeptionell (nicht unbedingt ein enzyklopädisches Wissen über jeden syntaktischen Aspekt) ist grundlegendes Arbeitswissen für professionelle Webentwickler.
Kevin Ball:
Mit dem wachsenden Stellenwert der Front-End-Entwicklung sehen wir, wie sich die Geschichte wiederholt.
Die systematische Abwertung von CSS und mehr noch von den Leuten, die CSS verwenden.
Das ständige „Mansplaining“ von CSS-Funktionen an Frauen, die buchstäblich der Grund dafür sind, dass es existiert.
Konferenzredner stellten Fragen, ob „Leute, die kein JavaScript schreiben können, einen Wert haben“?
All das zu einer Zeit, in der sich CSS schneller als je zuvor verbessert und dramatische Änderungen im Webdesign ermöglicht.
Hier geht es nicht um bessere Technologie, sondern um Ausgrenzung.
Haben Sie andere Ansichten gesehen oder haben Sie eigene?
Ach, ich denke, es liegt einfach an der Art und Weise, wie die Frage formuliert war usw. Ich habe einen Moment gebraucht, um es zu erkennen, und ich entwickle seit 3 Jahren. Es ist ein bisschen wie der Witz „Was trinken Kühe?“ … oder wenn jemand dir das Wort „Blau“ zeigt, das in roter Farbe geschrieben ist, und dich dann fragt, welche Farbe es hat… Ich bezweifle sehr, dass irgendjemand, selbst ein absoluter Anfänger, sich nicht selbst ins Gesicht geschlagen hätte, als er erkannte, dass er falsch lag.
Das erklärt aber nicht wirklich, warum die Leute ihre Unwissenheit so vehement verteidigt haben.
Ich stimme John zu. Ich habe diese immer als Grundlagen betrachtet, auf denen man aufbaut. Dieses Verhalten kann beim Schreiben von effizientem CSS nützlich und erwünscht sein, insbesondere wenn Varianten oder Stilüberschreibungen erstellt werden. Ich würde annehmen, dass das Fehlen von Wissen, wie man dieses Verhalten nutzt, der Grund dafür ist, dass diese Funktionen jedes Mal zuerst auf dem Prüfstand stehen.
Der Grund, warum so viele Leute das falsch gemacht haben, ist, dass es beim Entwickeln oft keine Rolle spielt, ob man solche Dinge falsch macht. Wichtig ist das Endergebnis. Die meisten Leute, die beide blau haben wollen, werden in einem echten Projekt, das diese Klassen verwendet, mit den Klassen (oder den Stilregeln) herumspielen, bis sie das gewünschte Ergebnis erzielen. Die meisten Leute wird es nicht interessieren, *warum* sie es richtig machen. Wenn es also um ein Quiz wie dieses geht, machen sie einfach, was ihr Kopf ihnen sagt, was normalerweise das Erste ist, was sie in einem echten Projekt versuchen würden. In gewisser Weise ist es also ein etwas unfaire Quizfrage, da es kein Projekt auf der Welt gibt, bei dem man nur einen Versuch hat, beide Divs blau zu bekommen.
Und ich finde es gar nicht so schlimm, dass die Leute das falsch gemacht haben, ich halte es einfach für zufällig, dass die meisten Entwickler sich nicht mit Konzepten beschäftigen; sie beschäftigen sich mit dem Erreichen eines Endziels (d. h. „einfach Sachen bauen“).
Das sind grundlegende CSS-Basiskenntnisse. Ich habe etwa 14 Jahre lang an einem Junior College Web-Dev unterrichtet, und das ist die Art von Dingen, die sie in der ersten oder zweiten Klasse lehren würden.
Ich verstehe, dass viele Leute das vergessen mögen oder bei einer Trickfrage hängenbleiben. Aber eine Kombination aus sehr, sehr grundlegender Bildung mit ein wenig Berufserfahrung würde Ihnen die richtige Antwort geben.
Also, diejenigen, die es falsch gemacht haben… manche Leute antworten zu schnell, ohne nachzudenken, manche wissen es wirklich einfach nicht, und die Mehrheit ist wahrscheinlich einfach nicht sehr geschickt/gebildet mit CSS.
Wählen Sie jedes Thema auf der Welt aus und stellen Sie eine solche Frage, und ich denke, Sie würden ähnliche Ergebnisse erzielen.
Ich denke, das könnte darauf zurückgeführt werden, dass die Kenntnisse der Web-Dev-Technologien der Leute auf einem Trial-and-Error-Ansatz basieren. Sie sehen Tutorials, absolvieren einen Online-Kurs oder schauen ein Video, aber letztendlich kann Ihr Anwendungsfall für eine Codezeile anders sein als das, was Sie lernen, also müssen Sie etwas ausprobieren, um zu sehen, ob es funktioniert. Nicht jeder interessiert sich für die winzigen Details, *warum* etwas so funktioniert, wie es funktioniert, sondern dass es so funktioniert, wie er es erwartet. Ich mache das seit 20 Jahren und kann Ihnen mit Sicherheit sagen, dass ich die richtige Antwort nicht bekommen habe. Macht mich das zu einem schlechten Entwickler? Sollte jeder, der Code schreibt, damit er als gut gilt, wissen, wie dieser Code zu Einsen und Nullen kompiliert wird?
Ich stimme John auch zu. Ich unterrichte seit 16 Jahren die Grundlagen des Webs und entwickle seit 20 Jahren. Ich selbst komme aus dem Bereich Systemanalytiker-Programmierer. Ich bin da vielleicht etwas altmodisch, aber ohne ein starkes Fundament kann es unordentlich werden, das gewünschte Ergebnis zu erzielen. Ich sage nicht, dass ich das, was Louis in den Kommentaren gesagt hat, dass das Endergebnis zählt, abwerte.
Meine aktuellen Studenten sind erstaunt über die Informationen, die ich ihnen über Webtechnologien und deren Implementierung gebe.
Ein Meister der Webtechnologien ist in Bezug auf den Job zu einer Zersplitterung des Ganzen verkommen.
Ich denke auch, dass die Neugier darauf, wie Dinge funktionieren, mit den vielen Tutorials verloren gegangen ist, die auf den vielen verschiedenen Lernplattformen verfügbar sind. Ich habe immer gesagt, dass es so viele Möglichkeiten gibt, eine Katze zu häuten, wie es Möglichkeiten gibt, eine Website oder Anwendung zu erstellen. Einige sind aufgrund des Wissens und Verständnisses der Menschen einfach eleganter als andere.
Die wichtigere Frage ist, warum die Person, die die Frage gestellt hat, keine „Keine der oben genannten Antworten“ hatte?
Leider ist diese Haltung gegenüber CSS weit verbreitet und wird möglicherweise durch das typische FE-Entwickler-Interview perpetuated – 19 Fragen zu Sortieralgorithmen und eine dazu, wofür das „C“ in CSS steht.
Entwickler, die eine ähnlich formulierte Frage zu JavaScript-Scope beantworten, wären beschämt, wenn sie falsch lägen. Und diejenigen, die richtig liegen würden, wären so lautstark wie wir, die diesen einfachen CSS-Test richtig gemacht haben, darüber, wie grundlegend er ist.
Die Twitter-Frage handelte nicht von Spezifität, sondern von der Reihenfolge des Erscheinens (https://www.w3.org/TR/css-cascade-3/#cascade).
Ich weiß nicht, warum viele Teilnehmer Schwierigkeiten hatten, richtig zu antworten, aber es hat mich nicht überrascht.
Moderne Ansätze zu CSS, die als „Best Practices“ vermarktet werden, sind es tatsächlich nicht. Zum Beispiel erlauben die meisten Ansätze einem Entwickler, HTML zusammenzuflicken, das richtig aussieht und zu funktionieren scheint, aber tatsächlich kaputt ist. Z.B.
<button class="class-for-link-elements">Wie man das Kontextmenü für Links bricht und sie für einen Screenreader und Sprachsteuerungssoftware schwer auffindbar macht.</button>.…oder sie geben den Entwicklern so viel Kontrolle über den Stil, dass eine Governance unmöglich ist. Das ist vielleicht heute für manche Leute nicht wichtig, aber sie werden wahrscheinlich kein wartbares HTML schreiben, das anders für den Druck gestylt werden kann, oder für unterschiedliche Benutzerbedürfnisse, oder für verschiedene Kundenmarken wiederverwendet werden kann, für Festivals thematisiert werden kann, usw.!
Ist es wirklich so, dass diese modernen Ansätze existieren, weil CSS einfach *zu* mächtig für einfache Sterbliche ist?