Arten von Entwicklern

Wie viele Arten von Entwicklern kennen Sie? Und wenn Sie Entwickler sind, auf welchen Typ beziehen Sie sich? In der realen Welt verschwimmen die Grenzen zwischen verschiedenen Arten von Entwicklern. Je professioneller Sie werden, desto mehr Typen passen zu Ihnen. Mal sehen, wie viele Arten von Entwicklern in der Softwareentwicklungsbranche verfügbar sind.

Bevor wir beginnen, möchten wir uns bei Lorenzo Pasqualis bedanken, dessen Artikel uns zu diesem Material inspiriert hat.

Um ehrlich zu sein, erkennen die meisten von uns nur drei Arten von Softwareentwicklern: frontend, Backend und Fullstack. Das ist offensichtlich, aber das ist nur die Hälfte der Wahrheit. Heutzutage können verschiedene Entwickler mit den gleichen Tech-Stacks ihre Fähigkeiten und Kenntnisse auf den verschiedenen Bereich anwenden. Es ist, als würde man seinen mobilen Entwickler bitten, an der Erstellung eines Spiels zu arbeiten. Er könnte die Werkzeuge kennen, aber er ist kein Spieleentwickler. Und das macht einen großen Unterschied in den Entwicklertypen.

Wir beginnen mit den Haupttypen:

Frontend

Gestern haben wir den größten Artikel mit Cheatsheet für Frontender geschrieben. Also, wer sind sie? Dies ist eine Art von Entwicklern, die sich auf visuelle Benutzeroberflächen, Ästhetik und Layouts spezialisiert haben. Ihr Code wird in einem Webbrowser auf dem Computer des Site-Benutzers ausgeführt. Sie arbeiten an der Erstellung von Web-Apps und Websites. Hardware ist nicht das, worüber Frontend-Spezialisten normalerweise nachdenken.

Ihre Arbeit erfordert mehr Verständnis für Mensch-Maschine-Interaktion und Gestaltungsprinzipien als Informatiktheorie.

Frontend-Entwicklung:

  • Design der Benutzeroberfläche (UI)
  • Design der Benutzererfahrung (UX)
  • CSS
  • JavaScript
  • HTML
  • UI-Frameworks.

Frontend-Entwickler müssen mit Frameworks wie Bootstrap, Foundation, Backbone, AngularJS und EmberJS vertraut sein, die unabhängig vom Gerät für gut aussehende Inhalte sorgen, und Bibliotheken wie jQuery und LESS, die Code in eine nützlichere, zeitsparendere Form verpacken. Viele Stellenangebote für Front-End-Entwickler erfordern auch Erfahrung mit Ajax, einer weit verbreiteten Technik zur Verwendung von Javascript, mit der Seiten dynamisch geladen werden können, indem Serverdaten im Hintergrund heruntergeladen werden.

Backend

Die zweitbeliebteste Art von Entwicklern. Der Backend-Entwickler ist auf das Design, die Implementierung, die funktionale Kernlogik, die Leistung und die Skalierbarkeit einer Software oder eines Systems spezialisiert, die auf Computern ausgeführt werden, die vom Endbenutzer entfernt sind. Sie integrieren eine Vielzahl von Diensten wie Datenbanken, Caching, Protokollierung, E-Mail-Systeme usw.

Was macht das Frontend einer Website möglich? Wo werden all diese Daten gespeichert? Das sind die Fragen an die Backend-Entwicklung. Das Backend einer Website besteht aus einem Server, einer Anwendung und einer Datenbank. Ein Backend-Entwickler erstellt und wartet die Technologie, die die Komponenten antreibt, die zusammen die Benutzerseite der Website überhaupt erst ermöglichen.

Backend-Entwicklung Fähigkeiten:

  • Java
  • C, C ++
  • Ruby
  • Python
  • Scala
  • Gehen usw.

Sie verwenden auch Tools wie MySQL, Oracle und SQL Server, um Daten zu finden, zu speichern oder zu ändern und sie im Front-End-Code an den Benutzer zurückzugeben. Stellenangebote für Backend-Entwickler erfordern oft auch Erfahrung mit PHP-Frameworks wie Zend, Symfony und CakePHP; Erfahrung mit Versionskontrollsoftware wie SVN, CVS oder Git; und Erfahrung mit Linux als Entwicklungs- und Bereitstellungssystem.

Fullstack

Nennen Sie diesen Entwickler einen Assistenten, aber er (oder sie) erledigt sowohl Frontend- als auch Backend-Arbeit. Der Fullstack-Entwickler verfügt über die erforderlichen Fähigkeiten, um eine voll funktionsfähige Webanwendung zu erstellen. Es wird davon ausgegangen, dass die professionelle Arbeit sowohl auf der Serverseite als auch auf der Clientseite mehr Möglichkeiten eröffnet. Sie sind Tausendsassa.

Die Komplexität der Full-Stack-Entwicklung kann mit diesem Bild veranschaulicht werden (natürlich gibt es mehr Technologien):

Bild über TechCrunch

Der Fullstack-Entwickler sollte in der Lage sein:

  • Einrichten und Konfigurieren von Linux-Servern
  • Schreiben von serverseitigen APIs
  • Eintauchen in das clientseitige JavaScript, das eine Anwendung antreibt
  • um ein „Design-Auge“ auf das CSS zu richten

Mobiler Entwickler

Dies ist ein Entwickler, der code für Anwendungen, die nativ auf mobilen Endgeräten wie Smartphones und Tablets ausgeführt werden. Dieser Typ erschien nach dem Boom mobiler Geräte in den frühen 2000er Jahren und der Explosion des Smartphone-Marktes. Zuvor galt die mobile Entwicklung als Teilmenge der Embedded-Entwicklung (wir werden auch in diesem Artikel über Embedded-Entwickler schreiben).

Ein mobiler Entwickler versteht die Feinheiten mobiler Betriebssysteme wie iOS und Android sowie die Entwicklungsumgebung und Frameworks, mit denen Software auf diesen Betriebssystemen geschrieben wird.

Fähigkeiten als mobiler Entwickler:

  • Java
  • Swift
  • Objective-C
  • C, C ++ und Java
  • Anwendungsprogrammierschnittstellen (API) wie Apple iOS, Android, Windows Mobile und Symbian
  • Webentwicklungssprachen wie HTML 5 und CSS
  • Plattformübergreifende mobile Suiten wie Antenna und AMP (Buchhaltung-Management-Promotion)

Spieleentwickler

Jedes spielsüchtige Kind möchte in Zukunft Spieleentwickler werden. Aber dieser Beruf so viel romantisch und Spaß wie kompliziert und anspruchsvoll.

Game Developer ist auf das Schreiben von Spielen spezialisiert und kann in eine der anderen Kategorien von Entwicklern fallen, verfügt jedoch häufig über spezifische Kenntnisse und Fähigkeiten beim Entwerfen und Implementieren ansprechender und interaktiver Spielerlebnisse.

Fähigkeiten für Spieleentwickler:

  • DirectX, OpenGL, Unity 3D, WebGL Frameworks
  • Sprachen wie C, C++ und Java
  • JavaScript und HTML5
  • Swift und Java für mobile Geräte.

Data Scientist

Diese Art von Entwickler schreibt Softwareprogramme zur Analyse von Datensätzen. Sie sind häufig für statistische Analysen, maschinelles Lernen, Datenvisualisierung und Vorhersagemodellierung verantwortlich. Ziemlich romantisch, oder? Aber die Liste der Fähigkeiten, die ein Data Scientist haben sollte, deckt viele wissenschaftsbezogene Dinge ab:

  • Statistische Programmiersprachen wie R oder Python und Datenbankabfragesprachen wie SQL
  • Verständnis der Statistiken und verschiedener Techniken, die ein gültiger Ansatz sind (oder nicht)
  • Vertrautheit mit Methoden des maschinellen Lernens
  • Kenntnis der Prinzipien der Multivariablen Analysis und der linearen Algebra
  • Wissen, wie man mit Unvollkommenheiten in einschließlich fehlender Werte, inkonsistenter Zeichenfolgenformatierung usw.)
  • Die Visualisierung und Kommunikation von Daten ist unglaublich wichtig
  • Ein starker Hintergrund in der Softwaretechnik
  • Fähigkeit, Probleme auf hoher Ebene zu lösen

DevOps-Entwickler

Dies ist eine Art Entwickler, der mit Technologien zum Erstellen, Bereitstellen und Integrieren des Systems sowie zum Verwalten von Back-End-Software und verteilten Systemen vertraut ist.

Um den Weg zu erklären:

  1. Ein Entwickler (Programmierer) erstellt Anwendungen
  2. Ops stellt Anwendungen bereit, verwaltet und überwacht sie
  3. DevOps erstellt Anwendungen UND stellt sie bereit / verwaltet / überwacht sie.

DevOps wurde durch die Cloud und die Tools / Plattformen ermöglicht, die die Bereitstellung und Verwaltung vereinfachen. Von Devops benötigte Fähigkeiten:

  • Kubernetes
  • Docker
  • Apache Mesos
  • der HashiCorp-Stack (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
  • Jenkins usw.

Softwareentwicklungsingenieur im Test

Diese Art von Entwickler ist für das Schreiben von Software verantwortlich, um die Qualität von Softwaresystemen zu validieren. Sie erstellen automatisierte Tests, Tools und Systeme, um sicherzustellen, dass Produkte und Prozesse wie erwartet laufen. Erforderliche Fähigkeiten für Ingenieure im Test:

  • Python
  • Ruby
  • Selenium.

Embedded developer

Der Embedded Developer arbeitet mit Hardware, die üblicherweise nicht als Computer klassifiziert wird. In diese Kategorie fallen beispielsweise Mikrocontroller, Echtzeitsysteme, elektronische Schnittstellen, Set-Top-Boxen, Consumer-Geräte, IoT-Geräte, Hardwaretreiber und serielle Datenübertragung.

Embedded-Entwickler arbeiten oft mit Sprachen wie:

  • C, C ++
  • Assembly
  • Java oder proprietäre Technologien, Frameworks und Toolkits

Mit der Embedded Developer Definition möchten wir die Liste der Entwicklertypen beenden. Wir haben für Sie die wichtigsten Entwicklertypen benannt, die sich grundlegend unterscheiden. Aber man konnte auch hören über:

– Webentwickler (der Zweck der Webentwicklung liegt auf der Hand)

– Anwendungsentwickler (der verschiedene Arten von Apps erstellt)

– Sicherheitsentwickler (der Systeme, Methoden und Verfahren zum Testen der Sicherheit eines Softwaresystems erstellt)

– CRM–Entwickler (sie arbeiten mit SAP, Salesforce, Sharepoint und Enterprise Resource Planning zusammen)

– Big Data Developer (selten getroffen, diese Art von Entwicklern verwendet Systeme zur verteilten Speicherung und Verarbeitung großer Datenmengen wie MapReduce, Hadoop und Spark)

– Grafikentwickler (sie sind spezialisiert auf das Schreiben von Software für Rendering, Beleuchtung, Beschattung, Beschattung, Keulung und Verwaltung von Szenen)

Abonnieren Sie unseren wöchentlichen Newsletter, um weitere interessante Dinge zur Softwareentwicklung zu erfahren!