Come vagliare le competenze degli sviluppatori JavaScript per trovare i migliori - guida al reclutamento IT

Pubblicato: Ultimo aggiornamento:
JavaScript: domande di intervista per ingegneri del software

1. Che cos'è JavaScript?

JavaScript (noto anche come JS) è un linguaggio di alto livello, basato su prototipi, non tipizzato e dinamico. A seconda dell'ambiente, JavaScript può essere interpretato o compilato. È un linguaggio di programmazione multi-paradigma, che supporta stili di programmazione orientati agli oggetti, imperativi e funzionali.

JavaScript è nato come linguaggio per soli browser, aggiungendo molte possibilità per migliorare i siti web già scritti con HTML e CSS. Nel 2009 tutto è cambiato. Ora JavaScript può essere utilizzato ovunque (letteralmente ovunque), anche in tuta spaziale) grazie a Node.js, un ambiente di runtime JavaScript basato sul motore JavaScript V8 di Google. Le applicazioni scritte in JavaScript possono essere molto veloci se realizzate da sviluppatori esperti. A causa del livello di ingresso molto basso nel mondo di JavaScript, è ora uno dei più importanti strumenti di sviluppo del mondo. le lingue più diffuse in uso.

Ricordate: Java e JavaScript non sono lo stesso linguaggio di programmazione. Gli sviluppatori sono sensibili ai loro linguaggi preferiti, quindi è molto importante non confondere i nomi.

2. Che cosa è importante che il selezionatore IT conosca di JavaScript?

La domanda di sviluppatori JavaScript sta aumentando molto rapidamente. Ci sono alcune cose da sapere quando si cerca uno sviluppatore JS.

- Come ho già detto, JavaScript è molto facile da utilizzare. Con poche righe di codice è possibile modificare il comportamento del sito web o creare semplici server HTTP con Node.js. E questo è anche l'insidia di JavaScript: molti sviluppatori imparano solo piccole parti del linguaggio solo per poter fare le cose. Per scrivere applicazioni veloci e di alta qualità è necessario avere un'ottima conoscenza di JavaScript stesso.

- Nel mondo di JavaScript si dice: "Un giorno senza un nuovo framework JavaScript è un giorno perso". Nuovi strumenti spuntano come funghi in un tempo piovoso. Non condanno questo fenomeno, anzi lo incoraggio. Questo fenomeno ci mostra quanto sia creativa e appassionata la comunità di JavaScript. Ma questo stato di cose ha un enorme svantaggio: si richiede agli sviluppatori la conoscenza dei framework appena creati. Un'ottima conoscenza dei framework più diffusi è importante per scrivere velocemente applicazioni JavaScript efficienti, ma è meglio avere uno sviluppatore con una grande esperienza con JavaScript puro e vecchi framework o librerie per imparare nuovi strumenti, piuttosto che avere uno sviluppatore che segue ciecamente le novità senza una profonda comprensione del linguaggio.

- D'altra parte, a volte il puro JavaScript non è sufficiente. Si può fare tutto da zero, ma richiede molto tempo e, come tutti sappiamo, il tempo è denaro. Un buon sviluppatore JavaScript dovrebbe conoscere almeno un framework o una libreria popolare e collaudata. E poiché l'ecosistema è in continua evoluzione, le conoscenze sugli strumenti utilizzati 2-3 anni fa possono essere obsolete.

- È necessario sapere che tipo di sviluppatore JavaScript si sta cercando: qualcuno che si unisca al team Front-end? Oppure qualcuno che lavorerà con applicazioni lato server?

O forse si tratta di qualcuno che lavorerà su applicazioni mobili ibride o su dispositivi Internet of Things? La comprensione di base del linguaggio in questi casi è la stessa. Tuttavia, ognuno di questi sviluppatori dovrebbe avere conoscenze diverse in relazione al proprio campo di lavoro.

- Per le posizioni di alto livello è richiesta un'esperienza commerciale, ma per gli sviluppatori junior o anche di medio livello un portfolio interessante con un codice ben scritto su uno dei servizi di repository hosting più diffusi (come GitHub) può essere altrettanto valido. Punti bonus se il candidato è un collaboratore di progetti Open Source.

3. Come verificare le competenze di JavaScript nella fase di screening?

Lo screening è difficile quando non si conoscono le tecnologie utilizzate dagli sviluppatori. È ancora più difficile quando tutto cambia così velocemente come nell'ecosistema JavaScript. Passiamo quindi ad alcuni consigli pratici per il recruiting su come verificare le competenze degli sviluppatori JavaScript.

3.1 Screening tecnico delle competenze JavaScript sulla base del CV

Tecnologia JavaScript - glossario di base dei termini JavaScript per i reclutatori IT

Il curriculum vitae di un candidato può fornire molte informazioni utili, ma bisogna saper scegliere quelle più importanti. Ogni curriculum contiene molte frasi tecniche diverse ed è molto importante non farsi confondere da esse. In qualità di reclutatore tecnico alla ricerca di uno sviluppatore JavaScript, dovete avere familiarità con tutta la terminologia utilizzata dai candidati.

Di seguito troverete informazioni utili che vi aiuteranno a mantenere la lucidità durante lo screening.

Glossario JavaScript per i reclutatori tecnici

Versioni JavaScript EcmaScript 5 (ES5 - disponibile ovunque), EcmaScript 6 (ES6 - disponibile nei browser più recenti), EcmaScript 2016 (ES7 )
Framework e librerie JavaScript Angular.js, jQuery, React, Backbone, Ember, Vue.js, Polymer, Aurelia, Knockout, Rx.js
Framework JavaScript per Node.js Express.js, Hapi.js, Koa, Sails, Meteor
Gestori di pacchetti Node.js NPM, Bower, JSPM
Strumenti di compilazione e task runner basati su Node.js Gulp, Grunt, Broccoli, Webpack
Framework di test JavaScript Casper, Mocha, Jasmine, Jest, Karma
Trasponditori JavaScript Traceur, Babel
Framework per applicazioni mobili ibride Sencha Touch, Ionic, Apache Cordova, IntelXDK
Superset di JavaScript o linguaggi che si compilano in JavaScript TypeScript, CoffeScript, Elm, Dart

Queste sono le basi. Ora possiamo andare più a fondo. Esiste una varietà di strumenti, framework e librerie e ognuno di essi è diverso. Per rendere le cose più piccanti, possono esserci grandi differenze nelle versioni degli strumenti. Se un candidato dichiara di conoscere AngularJS, si tratta della versione del framework che il nostro cliente sta cercando? Continuate a leggere e tutto sarà chiaro.

Nomi JavaScript più comuni che vengono utilizzati in modo intercambiabile:

- JS, JavaScript, EcmaScript

- Node.js, Node, ambiente di runtime JavaScript lato server

- Applicazione ibrida, applicazione mobile ibrida, applicazione ibrida

Relazioni tra le rispettive versioni della tecnologia JavaScript:

- EcmaScript 6 estende EcmaScript 5 (JavaScript deve essere retrocompatibile, altrimenti le nuove versioni romperebbero il Web)

- jQuery 1.x , 2.x e 3.x sono simili

- Angular 1.x è totalmente diverso da Angular 2.x

- Il concetto di base è lo stesso, ma ci sono differenze tra le varie versioni di React.

- Vue 1.x è totalmente diverso da Vue 2.x

- Le applicazioni scritte con Ember.js 1.x funzionano ancora con 2.x

- Il concetto di base è lo stesso, ma ci sono differenze tra le varie versioni di Node.js.

- NPM 3.x è una versione più ricca di NPM 2.x

È inoltre utile conoscere le seguenti relazioni:

- Framework MV* - Se qualcuno conosce uno dei framework Ember, Knockout o Angular 1.x allora sarà in grado di gestire il resto

- Applicazioni mobili ibride - Se qualcuno conosce Angular o React, sarà in grado di creare applicazioni mobili ibride.

- Applicazioni lato server - Se qualcuno conosce Express, Hapi, Koa o Meteor sarà in grado di occuparsi di rest.

Altre informazioni sul curriculum che possono mostrare le competenze JavaScript dello sviluppatore:

A causa dei continui cambiamenti nel mondo di JavaScript, non esistono certificati in grado di dimostrare le competenze di un candidato. Ebbene, uno c'è. È l'account GitHub. I bravi sviluppatori JavaScript spesso partecipano a progetti Open Source come collaboratori o creano software da soli per il bene comune. In questo ambiente, sono esposti ad altri sviluppatori che verificano costantemente la qualità del loro codice. Condividere il proprio codice con altri è il modo migliore per diventare uno sviluppatore migliore.

Un altro aspetto è la partecipazione come relatore a conferenze su JavaScript. Molto spesso gli sviluppatori con competenze molto elevate in un determinato campo vengono invitati in vari luoghi per parlare delle loro esperienze con queste tecnologie.

3.2 Screening tecnico delle competenze JavaScript durante il colloquio tecnico telefonico/video

Il curriculum può dirci qualcosa sulle competenze dello sviluppatore, ma non ci dice nulla sullo sviluppatore stesso. Ecco perché i colloqui telefonici o in videoconferenza sono così popolari: le competenze sono importanti, ma dobbiamo sapere con che tipo di persona abbiamo a che fare e, cosa ancora più importante, con che tipo di persona potrebbe lavorare il nostro cliente. Ecco perché è necessaria una preparazione adeguata prima di un colloquio.

Di seguito troverete alcuni esempi di domande che vi diranno di più sul candidato. Spero che la ricerca del candidato giusto sia più semplice.

  1. Domanda di intervista su JavaScript riguardante l'esperienza dello sviluppatore

Q1: Con quali tecnologie elencate nel suo CV, ha avuto esperienze commerciali negli ultimi 2 anni? Quali erano le sue responsabilità?

Perché chiedere il Q1: Ponendo questa domanda, potete scoprire di più sull'esperienza aggiornata di Java, sulle responsabilità e sui risultati ottenuti dal candidato. Così potrete conoscere meglio il vostro candidato.

  1. Domande di intervista su JavaScript riguardanti la conoscenza e le opinioni degli sviluppatori

Q2: Quali librerie JavaScript ritenete valide e perché?

Perché chiedere il Q2: Questa domanda mostra la conoscenza del candidato sull'ecosistema JavaScript. Possiamo vedere tutto ciò che riguarda la scelta della tecnologia.

Q3: Ho notato che nel suo CV ha inserito il quadro X. Qual è la sua opinione in merito? È una buona scelta?

Perché chiedere il Q3: Queste domande ci mostrano la conoscenza di una particolare tecnologia. Le risposte incerte e incerte possono aiutarci a trovare bugie in un curriculum. Potete anche fare l'avvocato del diavolo in base alle loro risposte: "Ma perché non usare il framework Y per questo?". In questo modo potete vedere come i candidati scelgono una tecnologia, giustificano le loro scelte e se le loro opinioni sono in linea con i vostri team IT.

Q4: Se volesse imparare una nuova tecnologia legata a JavaScript, quale sarebbe?

Perché chiedere il Q4: Le risposte a questa domanda dimostrano l'approccio dei candidati all'apprendimento e possono aiutarci a individuare gli sviluppatori che utilizzano ancora conoscenze obsolete acquisite in passato.

  1. Domanda di intervista Java riguardante il processo decisionale dello sviluppatore in merito alla tecnologia JavaScript

Q5: In quale fase ha partecipato a progetti recenti? Siete stati coinvolti nella scelta della tecnologia o nell'impostazione del progetto? Se sì, quale tecnologia ha scelto o consigliato per il progetto e perché?

Perché chiedere la Q5: Queste domande mostrano non solo come il candidato compie le scelte tecnologiche, ma anche se è stato coinvolto nel processo decisionale. È particolarmente importante se si cerca una persona con esperienza.

  1. Domanda comportamentale per uno sviluppatore JavaScript

Q6: Pensate alla decisione di programmare un progetto che si è rivelata un fallimento. Perché pensate che sia stato un errore? Perché è successo? Si poteva fare qualcosa di diverso per trasformarla in un successo? Quali misure avete adottato per migliorare la situazione? Che cosa avete imparato da questa esperienza?

Perché chiedere la Q6: Questo tipo di domande vi aiuterà a scoprire come il candidato percepisce le proprie decisioni, trae conclusioni e quanto impara dalle esperienze precedenti.

Q7: State contribuendo a qualche progetto Open Source o state curando il vostro progetto Open Source? Partecipate a qualche conferenza su JavaScript?

Perché chiedere la Q7: Domande come queste ci mostrano se un candidato vuole condividere le proprie conoscenze e vuole essere una parte significativa dell'ecosistema JavaScript. Le persone con una forte volontà di condividere la propria esperienza sono spesso dei buoni giocatori di squadra.

Controlla il nostro sito completo Stipendio sviluppatore JavaScript guida.

Autore - Mateusz Rojecki Sviluppatore front-end @ Laboratorio Coders

Laboratorio CodersLaboratorio Coders (www.coderslab.pl) è la più grande scuola di coding in Polonia, attiva a Varsavia, Cracovia, Katowice, Breslavia, Poznań e Łódź. Durante il bootcamp di sei settimane gli studenti imparano le tecnologie di sviluppo web: front-end o back-end. I nostri metodi di insegnamento si concentrano su 4 aree: pratica, lavoro con il mentore, costruzione del portfolio dello studente e supporto alla carriera. Adeguiamo il programma alle attuali esigenze tecnologiche del mercato per sostenere un'istruzione basata sulla conoscenza. Oltre 300 studenti si sono diplomati ai bootcamp.

DevSkiller: test di valutazione della codifica JavaScript online pronti per l'uso

DevSkiller aiuta le aziende nel processo di reclutamento IT fornendo loro un'infrastruttura che consente di testare le capacità di programmazione dei candidati in un ambiente che imita l'esperienza del primo giorno di lavoro. Permettiamo alle aziende di utilizzare la propria base di codice, interi progetti IT utilizzando framework e librerie, per testare i programmatori online. Tuttavia, abbiamo anche alcuni test di codifica JavaScript pronti all'uso che potete utilizzare nella vostra campagna di reclutamento tecnico.

TypeScript
MEDIO
Competenze testate
Durata
72 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di Dattiloscritto

Lacune nel codice

valutare la conoscenza di Dattiloscritto

Attività di programmazione - Livello: Medio

TypeScript | Redux, Selectors | HR Department Salary - Implementare i selettori Redux che elaborano i dati HR. L'implementazione sarà testata con test istantanei.

Reagire
MEDIO
Competenze testate
Durata
96 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JavaScript, Reagire,

Lacune nel codice

valutare la conoscenza di JavaScript, Reagire, ES6

Attività di programmazione - Livello: Medio

JavaScript | React, Class Components, Enzyme | Contact Form - Terminare l'implementazione di un semplice modulo di applicazione React.

sicurezza
JUNIOR
Competenze testate
Durata
46 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di Matematica, Probabilità, Competenze trasversali, Sicurezza informatica, Vulnerabilità, Sicurezza web

Lacune nel codice

valutare la conoscenza di Sicurezza informatica, Netcat, Inversione di rotta, Nmap, Portscan, Arricciatura, Password, Protezione

Compito di verifica - Livello: Facile

Cybersecurity | XSS Pastebin - In questa sfida al concorrente viene assegnato un compito con una pagina pastebin che è soggetta alla vulnerabilità XSS nel portale dell'amministratore. Questo permette all'attaccante di impersonare l'amministratore senza conoscere le credenziali corrette.

JavaScript
JUNIOR
Competenze testate
Durata
46 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JavaScript

Lacune nel codice

valutare la conoscenza di JavaScript

Attività di programmazione - Livello: Facile

JavaScript | Gioco d'ufficio - Tic Tac Toe - Terminare una versione modificata del popolare gioco TicTacToe.

JavaScript
JUNIOR
Competenze testate
Durata
51 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JavaScript

Lacune nel codice

valutare la conoscenza di JavaScript

Attività di programmazione - Livello: Facile

JavaScript | Ricerca di parole - Inizializzare l'oggetto WordSearch per contenere la griglia di lettere e implementare il metodo find, che cercherà una determinata griglia in tutte le direzioni.

Reagire
JUNIOR
Competenze testate
Durata
39 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JS, JavaScript, Reagire

Lacune nel codice

valutare la conoscenza di JavaScript, Reagire

Attività di programmazione - Livello: Facile

JavaScript | React, Class Components, Enzyme | Applicazione motore di ricerca - Implementare un'applicazione per cercare e filtrare prodotti in un negozio online.

Node.JS
MEDIO
Competenze testate
Durata
87 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JavaScript, Node.JS

Lacune nel codice

valutare la conoscenza di JavaScript, Node.JS, SQL

Attività di programmazione - Livello: Medio

Node.JS | Rest API | News backend service - Implementare un servizio di news backend creato in Node.JS con Vanilla JS, compresa la scrittura di autorizzazioni e API Rest.

TypeScript
JUNIOR
Competenze testate
Durata
51 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di Dattiloscritto

Lacune nel codice

valutare la conoscenza di JavaScript, Reagire

Domande a scelta

valutare la conoscenza di HTML, CSS

Attività di programmazione - Livello: Facile

TypeScript | React Hooks | Gestione dello stato dei film - Applicazione completa per la gestione dei film utilizzando React Hooks e implementando la gestione dello stato nelle viste esistenti.

JavaScript
MEDIO
Competenze testate
Durata
62 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di JavaScript, Redux

Lacune nel codice

valutare la conoscenza di HTML, HTML5, CSS

Attività di programmazione - Livello: Medio

JavaScript | Redux Selectors | Formazione del reparto HR - Implementare correttamente i riduttori e i selettori redux.

React Native
MEDIO
Competenze testate
Durata
107 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di React Native

Lacune nel codice

valutare la conoscenza di JavaScript, React Native

Attività di programmazione - Livello: Medio

React Native | Cheeper - una nuova app per i social media - Finite l'implementazione in modo da rendere possibile la socializzazione di base.

Condividi post

Per saperne di più sulle assunzioni nel settore tecnologico

Iscrivetevi al nostro Learning Hub per ricevere utili approfondimenti direttamente nella vostra casella di posta elettronica.

Verifica e sviluppo delle competenze di codifica senza soluzione di continuità.

Guardate i prodotti DevSkiller in azione.

Certificazioni di sicurezza e conformità. Ci assicuriamo che i vostri dati siano sicuri e protetti.

Logo DevSkiller Logo TalentBoost Logo TalentScore