Soorten ontwikkelaars

hoeveel soorten ontwikkelaars kent u? En, als je een ontwikkelaar bent, naar welk type verwijs je jezelf? In de echte wereld zijn de grenzen tussen verschillende soorten ontwikkelaars vervaagd. Hoe professioneler je wordt, hoe meer types je zult passen. Dus laten we eens kijken, hoeveel soorten ontwikkelaars zijn beschikbaar in software ontwikkeling industrie.

voordat we beginnen, willen we graag Lorenzo Pasqualis bedanken wiens artikel ons inspireerde om dit materiaal te maken.

om eerlijk te zijn, herkennen de meesten van ons slechts drie soorten softwareontwikkelaars: frontend, backend en fullstack. Dat is duidelijk, maar dit is slechts de helft van de waarheid. Tegenwoordig verschillende ontwikkelaars met dezelfde tech stacks onwaarschijnlijk kunnen hun vaardigheden en kennis toe te passen op het verschillende gebied. Het is alsof je je mobiele ontwikkelaar vraagt om te werken aan het maken van een spel. Hij kan de tools kennen, maar hij is geen spelontwikkelaar. Dat maakt een enorme differentiatie in ontwikkelaarstypes.

we beginnen met de belangrijkste types:

Frontend

gisteren hebben we het grootste artikel geschreven met cheatsheet voor frontenders. Wie zijn dat dan? Dit is een type ontwikkelaars die gespecialiseerd zijn in visuele gebruikersinterfaces, esthetiek en lay-outs. Hun code draait op een webbrowser, op de computer van de gebruiker van de site. Ze werken aan het maken van web apps en websites. Hardware is niet wat frontend specialisten meestal denken over.Hun werk vereist meer inzicht in de interactie tussen mens en machine en ontwerpprincipes dan computerwetenschappelijke theorie.

Frontend-ontwikkelingsvaardigheden:

  • design of user interface (UI)
  • design of user experience (UX)
  • CSS
  • JavaScript
  • HTML
  • UI frameworks.

Frontend devs moeten vertrouwd zijn met frameworks zoals Bootstrap, Foundation, Backbone, AngularJS en EmberJS, die zorgen voor mooie content ongeacht het apparaat, en bibliotheken zoals jQuery en LESS, die pakketcode in een nuttiger, tijdbesparende vorm. Veel front-end developer vacatures vragen ook om ervaring met Ajax, een veelgebruikte techniek voor het gebruik van Javascript waarmee pagina ‘ s dynamisch kunnen worden geladen door servergegevens op de achtergrond te downloaden.

Backend

het tweede meest populaire type ontwikkelaars. De backend-ontwikkelaar is gespecialiseerd in het ontwerp, de implementatie, functionele kernlogica, prestaties en schaalbaarheid van een stuk software of systeem dat draait op machines die op afstand van de eindgebruiker zijn. Ze integreren een breed scala aan diensten zoals databases, caching, logging, e-mail systemen etc.

wat maakt de front-end van een website mogelijk? Waar worden al die gegevens opgeslagen? Dit zijn de vragen voor de backend ontwikkeling. De backend van een website bestaat uit een server, een applicatie en een database. Een backend ontwikkelaar bouwt en onderhoudt de technologie die de bevoegdheden die componenten die, samen, in staat stellen de gebruiker gerichte kant van de website zelfs bestaan in de eerste plaats.

backend-ontwikkelingsvaardigheden:

  • Java
  • C, C++
  • Ruby
  • Python
  • Scala
  • Go, etc.

ze gebruiken ook tools zoals MySQL, Oracle en SQL Server om gegevens te vinden, op te slaan of te wijzigen en deze terug te geven aan de gebruiker in front-end code. Vacatures voor backend-ontwikkelaars vragen vaak ook om ervaring met PHP frameworks zoals Zend, Symfony en CakePHP; ervaring met versiebeheersoftware zoals SVN, CVS of Git; en ervaring met Linux als ontwikkelings-en implementatiesysteem.

Fullstack

noem deze ontwikkelaar een wizard, maar hij (of zij) doet zowel frontend als backend werk. De fullstack ontwikkelaar heeft de vaardigheden die nodig zijn om een volledig functionele webapplicatie te creëren. Er wordt van uitgegaan dat werken aan zowel de server kant en client kant professioneel opent meer mogelijkheden. Het zijn boeren-van-alle-beroepen.

de complexiteit van de ontwikkeling van volledige stack kan met dit beeld worden geïllustreerd (natuurlijk zijn er meer technologieën):

Image via TechCrunch

de fullstack ontwikkelaar moet in staat zijn:

  • het opzetten en configureren van Linux-servers
  • het schrijven van server-side API ‘ s
  • het duiken in de client-side JavaScript het voeden van een applicatie
  • om een “design oog” te zetten naar de CSS

mobiele ontwikkelaar

Dit is een ontwikkelaar die code schrijft voor applicaties die native draaien op consumenten mobiele apparaten zoals smartphones en tablets. Dit type verscheen na de boom van mobiele apparaten in de vroege jaren 2000 en de explosie van de smartphonemarkt. Voor die tijd werd mobiele ontwikkeling beschouwd als een subset van embedded ontwikkeling (we zullen schrijven over embedded ontwikkelaars in dit artikel ook).

een mobiele ontwikkelaar begrijpt de fijne kneepjes van mobiele besturingssystemen zoals iOS en Android, en de ontwikkelomgeving en frameworks die worden gebruikt om software op die besturingssystemen te schrijven.

vaardigheden voor mobiele ontwikkelaars:

  • Java
  • Swift
  • Objective-C
  • C, C++ en Java
  • Application Programming Interfaces (API ‘ s) zoals Apple iOS, Android, Windows Mobile en Symbian
  • Web ontwikkeling-talen, zoals HTML 5 en CSS
  • Cross-platform mobiele suites zoals Antenne en AMP ( Accounting-Management-Promotie)

Game-ontwikkelaar

Elke game-verslaafd kind wil een game-ontwikkelaar in de toekomst. Maar deze bezetting zo romantisch en leuk als ingewikkeld en veeleisend.Game developer is gespecialiseerd in het schrijven van games en kan vallen in een van de andere categorieën van ontwikkelaars, maar ze hebben vaak specifieke kennis en vaardigheden in het ontwerpen en implementeren van boeiende en interactieve spelervaringen.

vaardigheden voor spelontwikkelaars:

  • DirectX, OpenGL, Unity 3D, WebGL frameworks
  • talen zoals C, C++, en Java
  • JavaScript en HTML5
  • Swift en Java voor mobiele apparaten.

Data Scientist

dit type Ontwikkelaar schrijft softwareprogramma ‘ s om datasets te analyseren. Ze zijn vaak verantwoordelijk voor statistische analyse, machine learning, datavisualisatie en voorspellende modellering. Heel romantisch, toch? Maar de lijst met vaardigheden die een data scientist zou moeten hebben, omvat veel wetenschappelijke dingen:

  • statistische programmeertalen, zoals R of Python, en een database querying talen zoals SQL
  • inzicht in de statistieken en verschillende technieken die (al dan niet) een geldige benadering zijn
  • vertrouwdheid met machine learning methoden
  • kennis van multivariabele Calculus en lineaire Algebra principes
  • weten hoe om te gaan met onvolkomenheden in gegevens (inclusief ontbrekende waarden, inconsistente string opmaak etc.)
  • visualiseren en communiceren van gegevens is ongelooflijk belangrijk
  • met een sterke software engineering achtergrond
  • vermogen om problemen op hoog niveau op te lossen

DevOps developer

dit is een type ontwikkelaar die vertrouwd is met technologieën voor het bouwen, implementeren en integreren van het systeem en het beheren van back-end software en gedistribueerde systemen.

om de weg uit te leggen:

  1. een Ontwikkelaar (Programmeur) maakt toepassingen
  2. Ops implementeert, beheert, bewaakt toepassingen
  3. DevOps creëert toepassingen en implementeert/beheert/bewaakt deze.

DevOps werd mogelijk gemaakt door de cloud en de tools/platforms om implementatie en beheer eenvoudig te maken. Vaardigheden die devops nodig heeft:

  • Kubernetes
  • Docker
  • Apache Mesos
  • de HashiCorp-stack (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
  • Jenkins, enz.

Software Development Engineer in Test

dit type ontwikkelaar is verantwoordelijk voor het schrijven van software om de kwaliteit van softwaresystemen te valideren. Ze maken geautomatiseerde tests, tools en systemen om ervoor te zorgen dat producten en processen naar verwachting lopen. Vaardigheden die nodig zijn voor ingenieurs in test:

  • Python
  • Ruby
  • Selenium.

Embedded developer

de embedded developer werkt met hardware die gewoonlijk niet als computers wordt geclassificeerd. Bijvoorbeeld, microcontrollers, real-time systemen, elektronische interfaces, set-top boxes, consumenten apparaten, IoT apparaten, hardware drivers, en seriële gegevensoverdracht vallen in deze categorie.

Embedded ontwikkelaars werken vaak met talen zoals:

  • C, C++
  • Assembly
  • Java of propriëtaire technologieën, frameworks, en toolkits

met de ingesloten Ontwikkelaar definitie, willen we graag de lijst met ontwikkelaarstypen voltooien. We noemden naar u de belangrijkste ontwikkelaar types die fundamenteel verschillend zijn. Maar je kon ook horen over:

– web ontwikkelaar (het doel van de ontwikkeling van het web ligt voor de hand)

– application developer (die is bedreven in het maken van verschillende soorten apps)

– beveiliging ontwikkelaar (die zorgt systemen, methoden en procedures voor het testen van de beveiliging van een software systeem)

– CRM ontwikkelaar (ze hangen met SAP, Salesforce, microsoft Sharepoint, en Enterprise Resource Planning)

– Big data developer (zelden voldaan, is dit type van ontwikkelaars gebruik van systemen voor gedistribueerde opslag en verwerking van grote hoeveelheden gegevens zoals MapReduce, Hadoop, en Vonk)

– grafische ontwikkelaars (zij zijn gespecialiseerd in het schrijven van software voor het renderen, belichten, schaduwen, schaduwen, ruisen, en het beheer van scènes)

abonneer u op onze wekelijkse nieuwsbrief om meer interessante dingen over software ontwikkeling te vinden!