Mit der Zeit zu gehen bedeutet, mit den am meisten optimierten Programmiersprachen (in Bezug auf Leistung und Speichernutzung) auf dem Laufenden zu bleiben, und zwar mit allen notwendigen Mitteln.
In diesem Sinne sollte ein guter Entwickler mit den meisten der so genannten "klassischen" Sprachen (C++, C#) vertraut sein, aber auch die Fortschritte neuer Sprachen und das Potenzial, sie in der Praxis einzusetzen, genau verfolgen.
Dart ist definitiv eine dieser neuen Sprachen, auch wenn sie noch verhältnismäßig relativ neu ist. In diesem Leitfaden werde ich versuchen, die Kluft zwischen dem Verständnis, wofür Dart verwendet wird, und der Suche nach großartigen Dart-Entwicklern zu überbrücken, ohne die geistige Gesundheit aller Beteiligten stark zu gefährden.
Was ist Dart?
Dart ist eine Client-orientierte Sprache für die Entwicklung mobiler Apps, kann aber auch für die Entwicklung von Desktop- und Server-Apps verwendet werden.
Sie wurde von Google entwickelt und 2011 veröffentlicht, im Wesentlichen als Randnotiz zu einer Konferenz in Dänemark. Mit der Veröffentlichung von Flutter im Jahr 2018 hat Dart jedoch stark an Popularität gewonnen und wurde im Grunde die Hauptsprache für das Flutter-SDK.
Heute kann man Dart nicht mehr ohne Flutter in einem Satz verwenden, einfach weil sie zusammenpassen wie Converse-Schuhe und hohe Socken. Diese Kombination aus Flutter und Dart ist bei der Entwicklung mobiler Anwendungen sehr beliebt, vor allem weil sie plattformübergreifende Kompatibilität (iOS- und Android-Apps) bietet und den Zeit- und Kostenaufwand für ein Projekt reduziert.
Wie beliebt ist Dart?
Laut dem StackOverflow-Jahresbericht 2021 war Dart die 19. beliebteste Sprache unter allen Befragten und die 18. beliebteste Sprache unter allen professionellen Entwicklern, die an der Umfrage teilnahmen.
Eine interessante Beobachtung ist, dass die Mehrheit der Entwickler, die Dart ausprobieren möchten, bereits mit JavaScript vertraut sind und es beherrschen.
In Bezug auf die bestbezahlten Technologien und den Tech-Stack liegt Dart jedoch auf dem letzten Platz (obwohl das nicht die ganze Geschichte erzählt, aber dazu später mehr). Ein erfahrener Dart-Entwickler wird in den Vereinigten Staaten voraussichtlich rund 33.000 Dollar pro Jahr verdienen.
Wo findet man Dart-Entwickler?
Wie StackOverflow bereits festgestellt hat, sollten hochwertige Dart-Entwickler bereits JavaScript und andere JavaScript-verwandte Frontend-Sprachen beherrschen, einschließlich TypeScript und dem HTML + CSS-Paket.
Vor diesem Hintergrund würde der Aufbau eines Dart-Entwicklungsteams darauf hinauslaufen, den Brotkrumen zu folgen, oder in diesem Fall, die Bereiche zu durchforsten, die von JavaScript-Profis und anderen Webentwicklern oder UI/UX-Enthusiasten frequentiert werden.
Diese Bereiche können alle Möglichen sein, einschließlich Online-Jobbörsen, Tech-Foren, Software-Konferenzen oder auch hier bei Profixy.
Wir bieten einen schnellen und zuverlässigen Service, der Sie innerhalb weniger Tage mit dem besten Entwickler für Ihre Anforderungen zusammenbringt. Sie können den Service eine Woche lang testen, und wenn Sie mit dem Angebot nicht zufrieden sind, gibt es eine 100%ige Geld-zurück-Garantie, ohne dass Fragen gestellt werden.
Was die Verfügbarkeit angeht, so bieten wir sowohl für Teilzeit- als auch für Vollzeitentwickler eine zusätzliche Betreuung durch einen unserer talentierten Kundenbetreuer, den Sie jederzeit kontaktieren können.
Wie interviewt man Dart-Entwickler?
Ganz gleich, ob Sie einen Projektleiter, auch "People’s Person" genannt mit ausgeprägten Soft Skills (Rollenspiel-Jargon) oder ein Teammitglied, das kosteneffiziente Lösungen anbietet, einstellen möchten - die Durchführung eines strukturierten Interviews ist ein absolutes MUSS.
Der Bewerber sollte über ein hohes Maß an Offenheit, Präsentationsfähigkeit und Flexibilität verfügen und insgesamt ein hervorragender Kommunikator sein.
Außerdem sollte er 3-5 Jahre Erfahrung in diesem Bereich haben (oder mehr!) und sorgfältig beim Schreiben, der Fehlersuche und dem Debuggen von Code vorgehen.
Die wichtigsten technischen Fähigkeiten, die Dart-Entwickler haben und nutzen sollten
Einen Dart-Entwickler einzustellen bedeutet in der Regel auch, einen Flutter-Entwickler einzustellen: Man kann die beiden einfach nicht trennen! Und das macht auch Sinn: Dart ist die Hauptsprache von Flutter, so dass der ideale Kandidat im Schreiben von Dart-Code geübt und mit der Erstellung von Anwendungen in der Flutter-Umgebung vertraut ist.
Ein vielversprechender Dart-Entwickler würde die folgenden allgemeinen Zuständigkeiten haben:
- Mitwirkung am gesamten Entwicklungsprozess von Anfang bis Ende
- Brainstorming, Design und Entwicklung von Anwendungen
- Schreiben von konsistentem und sauberem Code mit sorgfältiger Dokumentation
- Sich über neue Technologien auf dem Laufenden zu halten und diese regelmäßig zu implementieren
- Verfolgen neuer Trends in Bezug auf Dart und Flutter
Apropos Hard Skills (technisches Können): Ein exzellenter Dart-Entwickler sollte Folgendes mitbringen:
- Ausgezeichnete Kenntnisse des Git-Repositorys
- Gute SQL-Kenntnisse
- Tiefgreifende Kenntnisse in der Programmiersprache Dart
- Tiefgreifende Kenntnisse über das Flutter-Framework
- Ausgeprägte Kenntnisse verschiedener Softwarearchitekturansätze
- Erfahrung mit Swift oder Kotlin
- Erfahrung mit mobilen iOS- und Android-Entwicklungsdiensten
Wir haben bereits festgestellt, dass die Einstellung von Flutter-App-Entwicklungsteams gleichbedeutend mit der Einstellung von Dart-Entwicklern ist, so dass ein guter Recruiting-Manager bei der Beurteilung eines potenziellen Kandidaten beide Aspekte berücksichtigen sollte.
Laut Omar Hussein, einem Entwickler aus dem Proxify-Netzwerk, gibt es einen großen Unterschied zwischen den Anwendungsfällen für Dart und einigen anderen Sprachen, wie z. B. C++.
"Dart ist mehr für Client- und Serveranwendungen optimiert. Während C++ für eine hohe Kontrolle über Speicher und Systemressourcen optimiert ist."
Omar Hussein
Auf meine Frage, wie man Dart-Code am besten (und am schnellsten) ausführen kann, antwortete Omar kurz und bündig. "Indem man den effektiven Dart-Stil und -Standards folgt, zusätzlich zur Ausführung von Dart-Code-Metriken", sagte er.
Und schließlich, wofür wird Dart eigentlich am besten verwendet? Omar kam in seiner nächsten Antwort zum Schluss.
"Dart eignet sich am besten für die Erstellung mobiler Anwendungen auf iOS- und Android-Plattformen unter Verwendung des Flutter-SDKs.“
Omar Hussein
Fragen zum Dart-Interview
Hier sind einige Fragen zur Beurteilung der technischen Eignung des Bewerbers:
- Was sind die wichtigsten Merkmale von Dart?
Erwartete Antwort: Refactoring, virtuelle Maschinen, lexikalisches Scoping, optionale statische Typen, Breakpoints und Closures sowie weitere Features.
- Welches sind die unterstützten Datentypen in Dart?
Erwartete Antwort: Strings, Booleans, Maps, Listen und der dynamische Typ.
- Wofür wird "typedef" in Dart verwendet?
Erwartete Antwort: Typedef wird verwendet, um die benutzerdefinierte Identität einer Funktion zu erstellen, auch bekannt als Alias. Dieser Alias wird dann anstelle des Programmcodes im Prozess verwendet.
- Wie viele Operatoren unterstützt Dart?
Erwartete Antwort: Typentest, bitweise, logische, arithmetische, relationale und Gleichheits- und Zuweisungsoperatoren.
- Unterstützt Dart das Überladen von Funktionen?
Erwartete Antwort: Nein, tut es nicht.
- Welche Plattformen werden in Dart verwendet?
Erwartete Antwort: Die beliebteste Plattform, die derzeit von Dart unterstützt wird, ist Flutter, ein SDK für die Entwicklung plattformübergreifender mobiler Anwendungen. Es gibt jedoch auch Server-Frameworks, wie Jaguar, Start und Alfred. Außerdem. Dart unterstützt Client-Web-App-Frameworks, wie OverReact und AngularDart.
- Ist Dart einfacher als JavaScript?
Erwartete Antwort: Es kommt drauf an! Zum Beispiel ist Dart einfacher für Entwickler zu lernen, die bereits mit statisch typisierten Sprachen vertraut sind, die OOP folgen, wie Java und TypeScript.
- Was ist Dart und warum wird es in Flutter verwendet?
Erwartete Antwort: Dart ist eine Open-Source-Sprache, die zum Erstellen von Anwendungen für mobile Geräte und andere Ziele verwendet werden kann. Sie wird hauptsächlich vom Flutter-Framework für die Erstellung von Benutzeroberflächen für iOS- und Android-Plattformen verwendet. Flutter verwendet Dart, weil es entwicklerfreundlich, schnell und zuverlässig ist.
- Welcher Editor wird verwendet, um Breakpoints und schrittweises Debugging zu ermöglichen?
Erwartete Antwort: Android Studio und Visual Studio Code sind die beiden wichtigsten IDEs für Dart-Tooling und Debugging.
- Was ist Methodenüberschreibung in Dart?
Erwartete Antwort: Das Überschreiben von Methoden ist eine Funktion bei objektorientierten Sprachen, die es erlaubt, eine Methode zweimal mit unterschiedlichen Implementierungen zu definieren. In Dart wird dies mit dem Schlüsselwort super realisiert. Dies ermöglicht eine enorme Flexibilität bei der Programmierung und kann helfen, doppelten Code zu vermeiden.
Die Hauptanwendung für das Überschreiben von Methoden in Dart ist die Erweiterung von Klassen. Wenn eine Klasse eine Methode mit demselben Namen und derselben Typsignatur wie eine Elternklasse hat, kann die Kindklasse diese Elternmethode außer Kraft setzen.
- Was ist ein Konstruktor in Dart?
Erwartete Antwort: Ein Konstruktor in Dart ist eine spezielle Funktion einer Klasse, die dafür zuständig ist, die Variablen der Klasse einzurichten, sobald sie erstellt wurde. Dart spezifiziert einen Konstruktor über den Namen der Klasse. Wie eine Funktion kann ein Konstruktor parametrisiert werden.
Warum sollte man einen Dart-Entwickler einstellen?
Dart und vor allem Flutter sind relativ neue Programmierwerkzeuge, was sie für die aktuelle Entwicklungslandschaft für mobile Anwendungen optimaler und anwendbarer macht.
Ein Dart-Entwickler ist schneller und effizienter im Umgang mit den Ressourcen des Unternehmens und kann das Projekt vergleichsweise ohne die Feinheiten von C++ oder C# abschließen (obwohl er auch beide nutzen kann).
Für ein schnelles, agiles und zukunftsorientiertes Unternehmen sollte die Einstellung von Dart-Entwicklern für die Arbeit an anstehenden Projekten und Anwendungen ein absolutes Muss sein.