Tipi di sviluppatori
Quanti tipi di sviluppatori conosci? E, se sei uno sviluppatore, a quale tipo ti riferisci? Nel mondo reale, i confini tra i diversi tipi di sviluppatori sono sfocati. Il più professionale si diventa, più tipi si adatta. Quindi vediamo, quanti tipi di sviluppatori sono disponibili nel settore dello sviluppo software.
Prima di iniziare, vorremmo dire grazie a Lorenzo Pasqualis il cui articolo ci ha ispirato a creare questo materiale.
Ad essere onesti, la maggior parte di noi riconosce solo tre tipi di sviluppatori di software: frontend, backend e fullstack. Questo è ovvio, ma questa è solo una metà della verità. Al giorno d’oggi diversi sviluppatori con gli stessi stack tecnologici improbabili possono applicare le loro abilità e conoscenze alla diversa area. È come chiedere al tuo sviluppatore mobile di lavorare sulla creazione di un gioco. Poteva conoscere gli strumenti, ma non è uno sviluppatore di giochi. E questo fa un’enorme differenziazione nei tipi di sviluppatori.
Inizieremo con i tipi principali:
Frontend
Ieri abbiamo scritto il più grande articolo con cheatsheet per frontenders. Allora, chi sono? Questo è un tipo di sviluppatori specializzati in interfacce utente visive, estetica e layout. Il loro codice viene eseguito su un browser web, sul computer dell’utente del sito. Lavorano sulla creazione di applicazioni web e siti web. L’hardware non è ciò che gli specialisti di frontend di solito pensano.
Il loro lavoro richiede una comprensione dell’interazione uomo-macchina e dei principi di progettazione più della teoria dell’informatica.
Capacità di sviluppo frontend:
- progettazione dell’interfaccia utente (UI)
- progettazione dell’esperienza utente (UX)
- CSS
- JavaScript
- HTML
- Framework dell’interfaccia utente.
Gli sviluppatori di Frontend devono avere familiarità con framework come Bootstrap, Foundation, Backbone, AngularJS e EmberJS, che garantiscono contenuti di grande aspetto indipendentemente dal dispositivo, e librerie come jQuery e LESS, che racchiudono il codice in una forma più utile e risparmio di tempo. Molti annunci di lavoro per sviluppatori front-end richiedono anche esperienza con Ajax, una tecnica ampiamente utilizzata per l’utilizzo di Javascript che consente di caricare dinamicamente le pagine scaricando i dati del server in background.
Backend
Il secondo tipo più popolare di sviluppatori. Lo sviluppatore backend è specializzato nella progettazione, implementazione, logica di base funzionale, prestazioni e scalabilità di un software o sistema in esecuzione su macchine remote dall’utente finale. Integrano una vasta gamma di servizi come database, caching, registrazione, sistemi di posta elettronica ecc.
Cosa rende possibile il front-end di un sito web? Dove sono memorizzati tutti quei dati? Queste sono le domande per lo sviluppo del back-end. Il backend di un sito web è costituito da un server, un’applicazione e un database. Uno sviluppatore di back-end costruisce e mantiene la tecnologia che alimenta quei componenti che, insieme, consentono al lato rivolto all’utente del sito Web di esistere anche in primo luogo.
Capacità di sviluppo backend:
- Java
- C, C++
- Ruby
- Python
- Scala
- Vai, ecc.
Usano anche strumenti come MySQL, Oracle e SQL Server per trovare, salvare o modificare i dati e servirli all’utente in codice front-end. Le aperture di lavoro per gli sviluppatori back-end spesso richiedono anche esperienza con framework PHP come Zend, Symfony e CakePHP; esperienza con software di controllo di versione come SVN, CVS o Git; e esperienza con Linux come sistema di sviluppo e distribuzione.
Fullstack
Chiama questo sviluppatore una procedura guidata, ma lui (o lei) fa sia il frontend che il backend funzionano. Lo sviluppatore fullstack ha le competenze necessarie per creare un’applicazione web completamente funzionale. Si ritiene che lavorare sia sul lato server che sul lato client apre professionalmente maggiori opportunità. Sono dei “jacks-of-all-trades”.
La complessità dello sviluppo dello stack completo può essere illustrata con questa immagine (ovviamente, ci sono più tecnologie):
Immagine tramite TechCrunch
Lo sviluppatore fullstack dovrebbe essere in grado:
- to set up e configurazione di server Linux
- per scrivere Api lato server
- per tuffarsi in JavaScript lato client che alimenta un’applicazione
- per attivare un “progetto” occhio al CSS
Mobile developer
Questo è uno sviluppatore che scrive codice per applicazioni che vengono eseguite in modo nativo su di consumo dispositivi mobili come smartphone e tablet. Questo tipo è apparso dopo il boom dei dispositivi mobili nei primi anni 2000 e l’esplosione del mercato degli smartphone. Prima di allora lo sviluppo mobile era considerato un sottoinsieme di sviluppo embedded (scriveremo anche sugli sviluppatori embedded in questo articolo).
Uno sviluppatore mobile comprende le complessità dei sistemi operativi mobili come iOS e Android e l’ambiente di sviluppo e i framework utilizzati per scrivere software su tali sistemi operativi.
Competenze per sviluppatori mobili:
- Java
- Swift
- Objective-C
- C, C++ e Java
- Interfacce di Programmazione delle Applicazioni (API) come Apple iOS, Android, Windows Mobile e Symbian
- sviluppo Web con linguaggi come HTML 5 e CSS
- Cross-platform mobile suite come Antenna e AMPLIFICATORE ( Contabilità-Gestione-Promozione)
sviluppatore del Gioco
Ogni gioco-addicted bambino vuole diventare uno sviluppatore di giochi in futuro. Ma questa occupazione tanto romantico e divertente come complicato ed esigente.
Game developer è specializzata nella scrittura di giochi e può rientrare in una delle altre categorie di sviluppatori, ma spesso hanno conoscenze e competenze specifiche nella progettazione e realizzazione di esperienze di gioco coinvolgenti e interattive.
Competenze per gli sviluppatori di giochi:
- DirectX, OpenGL, Unity 3D, framework WebGL
- linguaggi come C, C++ e Java
- JavaScript e HTML5
- Swift e Java per dispositivi mobili.
Data Scientist
Questo tipo di sviluppatore scrive programmi software per analizzare set di dati. Sono spesso responsabili di analisi statistiche, apprendimento automatico, visualizzazione dei dati e modellazione predittiva. Abbastanza romantico, giusto? Ma l’elenco delle competenze che uno scienziato dei dati dovrebbe avere copre un sacco di cose legate alla scienza:
- Statistica linguaggi di programmazione, come R o Python, e un database di query lingue come SQL
- Comprendere le statistiche e le diverse tecniche che sono (o non sono) un valido approccio
- Familiarità con la macchina di metodi di apprendimento
- Sapendo più variabili di Calcolo infinitesimale e Algebra Lineare i principi
- Sapere come affrontare le imperfezioni dei dati (inclusi i valori mancanti, incoerente stringa di formattazione etc.)
- Visualizzazione e la comunicazione dei dati è incredibilmente importante
- Avere un forte di ingegneria del software in background
- Capacità di risolvere alta problemi a livello di
DevOps sviluppatore
Questo è un tipo di sviluppatore familiarità con le tecnologie per costruire, implementare e integrare il sistema e amministrare back-end software e sistemi distribuiti.
Per spiegare la via:
- Uno sviluppatore (programmatore) crea applicazioni
- Ops distribuisce, gestisce, monitora applicazioni
- DevOps crea applicazioni E le distribuisce/gestisce/monitora.
DevOps è stato reso possibile grazie al cloud e agli strumenti/piattaforme per semplificare la distribuzione e la gestione. Competenze necessarie per devops:
- Kubernetes
- Docker
- Apache Mesos
- lo stack HashiCorp (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
- Jenkins, ecc.
Software Development Engineer in Test
Questo tipo di sviluppatore è responsabile della scrittura di software per convalidare la qualità dei sistemi software. Creano test, strumenti e sistemi automatizzati per assicurarsi che prodotti e processi funzionino come previsto. Competenze necessarie per gli ingegneri in prova:
- Python
- Rubino
- Selenio.
Sviluppatore embedded
Lo sviluppatore embedded lavora con hardware che non è comunemente classificato come computer. Ad esempio, microcontrollori, sistemi in tempo reale, interfacce elettroniche, set-top box, dispositivi consumer, dispositivi IoT, driver hardware e trasmissione dati seriale rientrano in questa categoria.
Gli sviluppatori embedded spesso lavorano con linguaggi come:
- C, C++
- Assembly
- Java o tecnologie, framework e toolkit proprietari
Con la definizione di sviluppatore incorporata, vorremmo completare l’elenco dei tipi di sviluppatore. Abbiamo chiamato per voi i principali tipi di sviluppatori che sono fondamentalmente diversi. Ma si potrebbe anche sentire parlare di:
– sviluppatore web (lo scopo di sviluppo web è ovvio)
– sviluppatore di applicazioni (che è competente nella creazione di diversi tipi di applicazioni)
– sviluppatore di sicurezza (che crea sistemi, metodi e procedure per testare la sicurezza di un sistema software)
– CRM developer (appendere fuori con SAP, Salesforce, Sharepoint, e l’Enterprise Resource Planning)
– i Big data developer (raramente incontrato, questo tipo di sviluppatori di utilizzare sistemi di storage distribuito e l’elaborazione di grandi quantità di dati come MapReduce, Hadoop, e Scintilla)
– Sviluppatori di grafica (specializzati nella scrittura di software per il rendering, illuminazione, shadowing, ombreggiatura, abbattimento, e la gestione delle scene)
Iscriviti alla nostra newsletter settimanale per trovare le cose più interessanti sullo sviluppo del software!