Heim >Schlagzeilen >Was müssen Sie lernen, um ein guter Front-End-Ingenieur zu werden?
Was ist ein Front-End-Ingenieur?
Front-End-Ingenieure sind im Zeitalter des Internets eine unverzichtbare berufliche Rolle in der Forschung und Entwicklung bei der Entwicklung von Softwareprodukten. Im engeren Sinne nutzen Front-End-Ingenieure professionelle Fähigkeiten und Tools wie HTML, CSS und JavaScript, um Produkt-UI-Designentwürfe in Website-Produkte zu implementieren. Abdeckung von Benutzer-PCs, mobilen Webseiten, Umgang mit visuellen und Interaktionsproblemen. Im Großen und Ganzen sind alle Teile von Benutzerterminalprodukten, die mit Vision und Interaktion zu tun haben, die Berufsfelder von Front-End-Ingenieuren.
Im Jahr 2005 sahen die meisten Webseiten so aus:
Die aktuelle Webseite sieht im Allgemeinen so aus:
Was sind die Entwicklungspfade und Perspektiven von Front-End-Ingenieuren?
Front-End ist eine relativ neue Branche. In den frühen Tagen der Entwicklung des Internets (1995–2005) gab es keine professionellen Front-End-Ingenieure. Mit der Entwicklung des Internets ab etwa 2005 wurde die Rolle des formellen Front-End-Ingenieurs von der Branche anerkannt. Im Jahr 2010 begann das Internet vollständig in das mobile Zeitalter einzutreten Wichtig, und auch die technische Entwicklung im Front-End-Bereich wird immer wichtiger. Verschiedene neue Ideen, Designmuster, Tools und Plattformen entwickeln sich rasant und die Qualifikationsanforderungen für Front-End-Ingenieure werden immer höher.
Es gibt einige Daten, die die rasante Entwicklung der Front-End-Branche veranschaulichen.
● Etliche der beliebtesten neuen Programmiersprachen nach 2010 beziehen sich auf das Frontend, wie zum Beispiel Dart, Clojure, CoffeeScript und TypeScript.
● Als wichtigste Front-End-Programmiersprache stand JavaScript in den letzten Jahren fest auf der Liste der beliebtesten Programmiersprachen auf der Github -Plattform, sowohl was das Codevolumen als auch die Anzahl der Follower angeht.
● Die Nachfrage nach Front-End in der Branche nimmt weiter zu und das Gehalt von Front-End-Programmierern nimmt in der Branche einen Spitzenplatz ein.
Viele der beliebtesten Programmiersprachen der letzten Jahre sind JavaScript-Alternativsprachen
JavaScript gehört zu den Top 10 der angesagtesten Programmiersprachen
Internetunternehmen in den letzten Jahren Das Front-End-Team verdoppelt sich jedes Jahr
Das Durchschnittsgehalt von JavaScript-Ingenieuren liegt unter den Top 10 von Programmiersprachen-Ingenieuren
Welche Kenntnisse und Fähigkeiten benötigen Front-End-Ingenieure?
Manche Leute sagen, dass der Technologie-Stack eines Front-End-Ingenieurs so aussieht:
Andere sagen das:
Tatsächlich sind die Kernkompetenzen von Front-End-Ingenieuren:
Im Produktentwicklungsprozess eines typischen Internetunternehmens ist die Beziehung zwischen Front-End-Ingenieuren und anderen Rollen ungefähr wie folgt:
Das Front-End ist der Ingenieur, der dem Produkt und Design am nächsten ist und eine Rolle bei der Verbindung von Produkten und Technologie spielt. Das Front-End ist für die Teile verantwortlich, die Benutzer sehen können, und ist daher auch der Ingenieur, der dem Benutzer am nächsten ist.
Wenn ein Produkt im Zeitalter der Multi-Terminals sowohl PC- als auch mobile Terminals unterstützt, müssen sich Front-End-Ingenieure mit mehr Rollen befassen:
JavaScript Für das Front-End ist es die wichtigste Fähigkeit, daher muss ein ausgezeichneter Front-End-Ingenieur über solide grundlegende JavaScript-Kenntnisse verfügen. Die Programmiersprache JavaScript ist auch im Bereich der Programmierung ein heißer Favorit. Heute wird sie nicht nur zur Entwicklung des Webs verwendet, sondern kann auch in verschiedenen Bereichen eingesetzt werden. (JavaScript-Video-Tutorial)
JavaScript kann auf „Raspberry Pi“ verwendet werden Entwicklung eines solchen intelligenten Hardwarechips
Front-End-Ingenieure sind auch Software-Ingenieure, daher sind auch die Grundkenntnisse von Software-Ingenieuren sehr wichtig:
● Mathematik
● Computersystem
● Betriebssystem
● Datenstrukturen und Algorithmen
● Zusammenstellungsprinzip
HTML und CSS sind ebenfalls sehr wichtige Grundkenntnisse für Front-End-Ingenieure, insbesondere diejenigen, die gerne Code schreiben. Tatsächlich ist ML auch ein sehr wichtiger Inhalt in UI-bezogenen Bereichen und sollte dies auch nicht tun ignoriert werden.
● HTML: The Living Standard (HTML-Video-Tutorial)
● HTML und CSS (CSS-Video-Tutorial)
Einige Studenten fragten: „Es gibt viele Anforderungen an die Front-End-Arbeit und es gibt immer Änderungen und Änderungen. Es gibt nicht viele tatsächliche technische Punkte. Das Produkt bestimmt die Geschäftslogik. Wird die Arbeit an den zugrunde liegenden Basisdiensten anspruchsvoller sein und haben?“ eine bessere berufliche Zukunft?"
Denn je näher es an der Arbeit auf Geschäfts- und Produktebene liegt, desto größer sind die Unterschiede in den Anforderungen und desto häufiger können Änderungen auftreten. Nicht nur das Frontend ändert sich immer wieder, auch Studierende, die auf dem PHP-Server Geschäfte abwickeln, stehen vor diesem Problem und die Geschäftslogik ändert sich immer wieder. Je niedriger die Stufe, desto vielseitiger ist sie und die Änderungen sind relativ gering.
Allerdings hat alles zwei Seiten. Zunächst kann man darüber nachdenken, ob der Markt für zugrunde liegende Basisdienste größer ist oder der Markt für Internetunternehmen und -produkte. Zweitens ist die Universalität grundlegender Dienste leicht zu erreichen, aber wie man sie auf Produktebene universalisieren kann und wie man Engineering und Tools zur Verbesserung der Entwicklungseffizienz in der geschäftsorientierten Produktentwicklung einsetzen kann, ist tatsächlich ein schwieriges Problem. Rich-Internet-Produkte haben sich verändert und verändern unser Leben. Als Produktentwickler ist es jedoch ein Bereich, der es wert ist, untersucht zu werden.
Denken Sie außerdem nicht, dass es nicht viele tatsächliche technische Punkte gibt. Hier sind einige Beispiele: Kurven- und Oberflächenanimation implementieren, den kürzesten Weg der Karte berechnen, statische PNG-Bilder dazu bringen, lokale Bewegungen ähnlich wie GIF-Bilder auszuführen, Lotteriespiele , und HTML5-Spiele mit physischen Effekten, 3D-Diagrammen, Augmented-Reality-WebGL-Videostream-Verarbeitung usw., das sind alles praktische Probleme, die im Front-End-Bereich auftreten.
Was JavaScript betrifft, ist es an sich schon eine große Herausforderung, das am besten geeignete Modell zu entwerfen, um reale Probleme in tatsächlichen Projekten effizient zu lösen. Als typische Programmiersprache der neuen Generation ist JavaScript reich an Funktionen, flexibel einsetzbar und weist eine hervorragende Leistung auf. Objektorientierte, funktionale Programmierung, verschiedene Designmuster, MVC und MVVM sind für sich genommen schon attraktiv genug.
Das Frontend muss Schnittstellen- und Interaktionsprobleme lösen. Tatsächlich waren Probleme auf der UI-Ebene schon immer ein schwieriges Problem in der Softwareentwicklung, da sich die UI ständig verändert. Die Kompatibilität verschiedener Browserversionen, Webstandards, mobiler Geräte und die Anpassung an mehrere Terminals stellen Front-End-Ingenieure vor große Herausforderungen und stellen auch hohe Anforderungen an die Fähigkeiten von Front-End-Ingenieuren. Für viele UI-Probleme gibt es mehr als eine Lösung, und für viele Probleme gibt es sehr clevere Ideen und wunderbare Lösungen. Front-End ist eine sehr kreative Gruppe unter Ingenieuren, da diese Branche viel Kreativität und Vorstellungskraft erfordert.
Front-End-Ingenieure sind auch die Setzer, Praktiker und Förderer von Webstandards, und die aktuellen W3C-Standards beschränken sich nicht nur auf Browser, sondern umfassen auch verschiedene tragbare Smart-Geräte, fahrzeugmontierte Geräte, Smart Homes usw. In der zukünftigen Ära des Internet of Everything werden Front-End-Ingenieure nicht nur Ingenieure auf Webseiten sein, sondern Ingenieure in allen Bereichen der Mensch-Maschine-Interaktion.
Lernen und Wachstum von Front-End-Ingenieuren
Der Front-End-Bereich entwickelt sich rasant und es entstehen ständig verschiedene neue Technologien und Ideen. Das ist ein gutes Phänomen. Die schnelle Entwicklung des Frontends bringt jedoch auch einige Probleme mit sich. Ein Klassenkamerad fragte mich beispielsweise, was genau ich lernen sollte: Angular.js, React, Node .js, ES6, ES7, CoffeeScript, TypeScript ... Es scheint, dass es immer zu viele Dinge zu lernen gibt, und einige Dinge scheinen durch andere neue Technologien ersetzt und „veraltet“ zu sein, bevor sie klar gelernt werden können.
Tatsächlich ist es immer noch derselbe Satz: Front-End-Ingenieure sind in erster Linie Software-Ingenieure, und das Fundament ist das Wichtigste. Wenn das Fundament nicht solide ist, werden alle Anwendungskompetenzen „Wolken“ sein. . Was sind die Grundlagen des Frontends? Grundkenntnisse in HTML, CSS, JavaScript, Grundkenntnisse in Mathematik, Algorithmen, Datenstrukturen, Betriebssystemen und Kompilierungsprinzipien.
Ein exzellenter Front-End-Ingenieur muss ein Fachgebiet haben, in dem er sich gut auskennt, und sich tief genug damit befassen. Gleichzeitig muss er eine Vision haben und in der Lage sein, „grenzüberschreitend“ zu sein. Sie können eine Karriere im Front-End-Bereich anstreben, aber beschränken Sie Ihre Fähigkeiten nicht auf den Front-End-Bereich, denn es gibt viele Dinge, die nur dann klarer und gründlicher gesehen werden können, wenn Sie außerhalb des Front-Ends stehen.
Wenn Sie etwas lernen, folgen Sie nicht blind dem Trend. Wenn alle über AngularJS sprechen, werden Sie sofort loslegen, um es zu lernen. Nach ein paar Tagen werden alle über React sprechen, also legen Sie AngularJS ab und lernen React . Es gibt viele Wissenspunkte im Front-End-Bereich und es gibt viele Dinge, die es wert sind, gelernt zu werden. Kluge Schüler wissen, wie sie Zeit damit verbringen, systematisches Wissen zu erlernen und es gründlich genug zu studieren, denn nur so können wir die Regeln zusammenfassen und eine Methodik bilden , um den Wert des Lernens zu maximieren.
Richtig informiert Verwendung – Ein Meister in einem Bereich wird niemals ein Neuling in einem anderen ähnlichen Bereich sein
Während des Interviews fragte der Interviewer, wie man die Front-End-Leistung optimieren könne, indem er die militärischen Regeln von Yahoo zur Leistungsoptimierung verwendete. Sie betonten wiederholt die Verwendung von Tools zur Komprimierung statischer Ressourcen, aber den Nginx-Dienst des Blogs build hat gzip nicht aktiviert. Jeder weiß, dass statische Ressourcen zusammengeführt und HTTP-Anfragen reduziert werden sollten. Wie viel Leistung wird jedoch voraussichtlich verbessert und wie viele Vorteile können durch die Reduzierung von Anfragen erzielt werden? Sie müssen diese Probleme verstehen und außerdem über ein tiefes Verständnis des HTTP-Protokolls selbst verfügen.
Es gibt eine interessantere Frage. Jeder sagt, dass der Schlüssel zum Schreiben von HTML die Semantik ist. Was genau ist also Semantik? Dieses Problem verwirrte viele Studenten. Beschriftungen müssen der Semantik entsprechen. Diese Antwort scheint einfach und standardisiert zu sein, aber welche Art von Beschriftungen entsprechen der Semantik? Der Schwerpunkt liegt auf der Verwendung von „strong“ statt „b“? Wenn es also eine außerirdische Zivilisation gibt und in deren Sprache „strong“ mit dem Wort „Fett“ der Erde und „bold“ mit dem Wort „strong“ der Erde gleichzusetzen ist, sollten sie dann „strong“ oder „b“ verwenden? Wir sagen, dass das i-Tag kursiv bedeutet. Warum verwendet Fontawesome.io es als Icon-Font-Tag? Ist das „antisemantisch“?
Früher gab es in ländlichen Gebieten vielerorts eine Art Volksfärberei, in der Farbstoffe zum Färben von Stoffen hergestellt wurden. In dieser Art von Färberaum gibt es einen großen Eisenbottich. Normalerweise nimmt ein sehr kräftiger Arbeiter einen langen Eisenstab und schlägt ihn heftig in den Färbebottich. Warum wird die Farbe besser, je stärker man auf das Eisenbecken trifft? Die Leute in der Färberei sagen, dass dies eine Erfahrung ist, die von Generation zu Generation weitergegeben wird, und tatsächlich stimmt es. Die Farbe der echten Farbe hat viel mit der Kraft des Klopfens zu tun. Bis eines Tages ein Student aus dem Dorf, der Chemie studieren wollte, herausfand, dass er dem Farbstoff nur einen angemessenen Anteil an Eisenspänen hinzufügen musste, um eine chemische Reaktion zwischen dem Farbstoff und eisenhaltigen Oxiden auszulösen und den Farbstoff herzustellen lebendiger. Es stellt sich heraus, dass die von Generation zu Generation weitergegebenen „Rituale“ eigentlich nur eine Art Glaube und Religion im Gegensatz zu wahren Prinzipien sind. Ebenso sind wir nur Anhänger der Technologiereligion, wenn wir die Natur der Technologie nicht verstehen und uns auf ihre Anwendung beschränken. Daher heißt es im „Li Yanhui Javascript Video Tutorial“ , dass die Computersprache wie ein Zauberstab in der Hand eines Priesters ist. Wenn der Zauberstab geändert wird, ist der Priester immer noch ein Priester Die Welt wird immer noch den Kopf schütteln wie ein Berg. Die Priester beherrschten die Methode der Kommunikation mit Gott, aber die Welt sah nur den Stab.
Frontend nach Interesse auswählen
Als ich zum ersten Mal das Programmieren lernte, lernte ich in diesem gesamten Buch nicht nur, wie man „Hello World“ und verschiedene andere Zeichen auf einer schwarzen Konsole ausgibt, sondern auch, wie man etwas auf der Tastatur eingibt nichts anderes. Nachdem ich eine Zeit lang gelernt hatte, brach mein Herz zusammen, weil ich das Gefühl hatte, dass dies anders war als ich dachte. Nachdem ich so viel Wissen gelernt hatte, wusste ich nicht, ob ich die C-Sprache „gelernt“ hatte Es scheint, dass zwischen diesen farbenfrohen Betriebssystemen und verschiedenen Anwendungssoftwares und der schwarzen Konsole immer noch eine große Lücke besteht.
Rückblickend war meine damalige Idee natürlich naiv und lächerlich. Damals kannte ich den Unterschied zwischen Programmiersprachen und Laufumgebungen nicht und hatte keine Ahnung von Betriebssystemen, Benutzer-APIs, Hardwareschnittstellen usw. Netzwerkdienste usw. Dies kann mir jedoch nicht zum Vorwurf gemacht werden, da mir das C-Sprach-Tutorial dies nicht in einem einzigen Wort sagt und ich nicht weiß, was ich nach dem Erlernen der Grammatik der C-Sprache als nächstes noch lernen soll.
Relativ gesehen ist die Webentwicklung für mich attraktiver, da Sie keine Umgebung installieren müssen. Sie müssen nur einige Zeichen in den Texteditor eingeben, ihn speichern und den Browser öffnen, und schon können Sie die reichhaltigen visuellen Effekte sehen . Das ist der Vorteil des Frontends.
Im Vergleich zur starren Ein- und Ausgabe ist die Webentwicklung auf der sichtbaren Ebene der Benutzeroberfläche viel farbenfroher, was mich anzieht. Wenn dies auch Sie anzieht und fasziniert, dann sind Sie für das Erlernen des Frontends geeignet.
Bevor Sie sich für eine Karriere im Front-End-Bereich entscheiden, müssen Sie klar feststellen, dass Sie tatsächlich an der Front-End-Entwicklung interessiert sind. Die Entscheidung für den Front-End-Bereich sollte eine Bestätigung sein, dass Sie den Front-End-Bereich mögen und für ihn geeignet sind, und nicht für einen Job Das sieht anständig aus und zahlt sich gut aus. Wenn Sie kein Interesse daran haben oder es Ihnen sogar langweilig ist, farbenfrohe Schnittstellen zu erstellen und sich mit verschiedenen Interaktionslogiken auseinanderzusetzen, dann ist es die klügste Entscheidung, die Idee, Front-End-Ingenieur zu werden, aufzugeben – weil Sie sich für eine Karriere entscheiden, die Ihnen nicht gefällt. Ich mag es nicht und ertrage es jahrzehntelang, bis der Ruhestand wirklich eine traurige Sache ist.
Welche Fähigkeiten schätzen wir an Schülern in der Schule?
Einige Studierende haben gefragt, ob Frontend-Studenten über praktische Erfahrung verfügen müssen. Hier kann ich antworten: Nein.
Bei den Studierenden geht es den Interviewern vor allem um Folgendes:
● Grundlagen: einschließlich der Beherrschung von Mathematik, Algorithmen, Datenstrukturen und computerbezogenen Grundlagen.
● Lernfähigkeit und Lernmethoden: Wie lernt man das Front-End, wie lange hat man studiert, wie weit hat man gelernt, auf welche Probleme ist man gestoßen und wie versucht man, diese Probleme zu lösen.
● Interesse: Wie interessiert Sie am Frontend sind? Dies kann sich in vielen Details widerspiegeln. Es gibt ein häufiges negatives Beispiel: Ich werde die Schüler fragen, auf welches neue Front-End-Wissen sie in letzter Zeit achten. Aber wenn ich ihn noch einmal frage, auf was In dem Maße, in dem er darauf achtet, werde ich feststellen, dass er diesem neuen Wissen überhaupt nicht viel Zeit widmet. Wenn Sie keine Zeit mit den Themen verbringen, die Sie interessieren, wie können Sie dann Ihr „Interesse“ am Frontend nachweisen?
● Fähigkeit zur Problemlösung: Wie man schwierige Probleme löst, wie man über Probleme nachdenkt und sie schließlich löst, denen man noch nie zuvor begegnet ist. Von hier aus können Sie feststellen, ob Studierende über Front-End-Denken verfügen. Es gibt keine Standardantworten auf diese Fragen. Wir verfolgen keine bestimmten „offiziellen Ideen“ und legen mehr Wert auf den Prozess als auf die Ergebnisse.
In Bezug auf Lebensläufe erwähnten einige Studenten, dass viele Unternehmen jetzt offenbar hoffen, dass Studenten Node.js und React lernen können, ich selbst aber nicht weiß, was ich tun soll.
Was ich sagen möchte ist, dass wir von den Schülern nicht verlangen, dass sie diese wissen. Im Gegenteil, ich persönlich ermutige die Studierenden, ihre Zeit zu nutzen, um ein solides Fundament zu legen. Schreiben Sie einfach in Ihren Lebenslauf, was Sie wirklich gut können. Wir werden Sie nicht ignorieren, nur weil Sie Node.js oder React nicht in Ihrem Lebenslauf sehen. Solange Sie Frontend wirklich lieben und sorgfältig lernen, sollten Sie wissen, wie Sie mich mit den Frontend-Grundlagen beeindrucken können. Manche Studenten häufen gerne Vokabeln in ihren Lebensläufen an. Tatsächlich ist dies nicht unbedingt eine gute Sache, denn wenn Sie etwas schreiben, worüber Sie nur wenig wissen, und Sie während des Vorstellungsgesprächs schließlich interviewt werden, erhalten Sie auf jeden Fall negative Noten .
Die Technologie selbst ist umfassend. „Ich kenne React, habe aber noch nie etwas damit gemacht.“ Student B sagte: „Ich habe AngularJS verwendet, um einige kleine persönliche Projekte zu schreiben.“ Letzten Monat habe ich meinen Blog auf der Grundlage dieser Idee geschrieben, aber im Webkit-Browser der Version 4.1 des Android-Systems ist ein Anzeigefehler aufgetreten. Am Ende habe ich ihn so gelöst. Sie denken, welchen der drei Schüler A, B und C werden wir wählen?
Das Vorstellungsgespräch ist ein Prozess der gegenseitigen Kommunikation. Wir hoffen, die Fähigkeiten und das Potenzial jedes Einzelnen im Front-End-Bereich zu erkennen. Eine Sache zu „wissen“ ist keine wertvolle Fähigkeit, insbesondere im Internetzeitalter, in dem Wissen billig ist. Unsere Schüler dürfen sich etwas nicht auswendig merken, sondern sollten es wirklich mit dem Herzen lernen. Unsere Hochschulen und Universitäten vermitteln nicht nur jedem Wissen, sondern auch, wie man tatsächlich lernt und forscht, nicht wahr?
Wenn Sie sich wirklich für Frontend interessieren und Potenzial haben, sollten Sie wissen, wie man es mit ein wenig Sorgfalt erlernt.
Abschließend wünsche ich mir, dass jeder ein hervorragender Front-End-Ingenieur werden kann.
Verwandte Links:
Web-Front-End-Lernroute: Schnelle Einführung in die WEB-Front-End-Entwicklung