Come valutare le competenze degli sviluppatori Python

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

Se state cercando una persona con competenze da sviluppatore Python, sappiate che trovarla è solo metà del viaggio. Anche se riuscite a trovarla, potrebbe essere necessario uno sforzo in più per capire veramente quali sono le competenze di Python. Il vero set di competenze Python è complesso da capire, ma qui presentiamo un esperto del settore, Wojtek Erbetowski, per portare alla luce l'argomento.

1. Che cos'è Python?

Python è uno dei linguaggi di programmazione più popolari (al secondo posto secondo la classifica di Indice TIOBE a settembre 2021). È stato rilasciato per la prima volta nel 1991 e si è guadagnato la sua popolarità per la semplicità di apprendimento e la potenza nella risoluzione dei problemi. La sintassi è simile a quella della famiglia C++, ma è equipaggiata con una varietà di soluzioni moderne.

I vantaggi principali di Python sono:

  • Curva di apprendimento piatta. Si rivolge a utenti con poca esperienza tecnica, come gli accademici per la ricerca o le aziende per l'automazione.
  • È di proprietà di una Python Software Foundation (PSF) indipendente e guidata dalla comunità.
  • Potenti strumenti scientifici (ad esempio SciPy).
  • Buona documentazione e supporto della comunità. Questo include molti gruppi di utenti locali e conferenze.

2. Che cosa è importante che un selezionatore IT conosca di Python?

Poiché Python ha una grande varietà di usi. Spesso è difficile distinguere i candidati dagli accademici, passando per la programmazione di rete e le applicazioni web fino al semplice scripting. Tuttavia, per uno sviluppatore è spesso più facile imparare un nuovo Python che cambiare dominio (ad esempio, da Data Science ad Applicazioni Web).

Nel 2007 è stato rilasciato Python 3.0. È stato rifiutato dalla comunità a causa dell'incompatibilità con il passato. Detto questo, nel 2020, 94% di utenti Python sono passati a Python 3.

Python è tipizzato dinamicamente, il che facilita lo scripting e la scrittura di piccole applicazioni. Spesso si dice che comporti delle difficoltà nella creazione di applicazioni di grandi dimensioni e di lunga durata.

3. Come verificare le competenze degli sviluppatori Python nella fase di screening?

Lo screening è faticoso, arduo e richiede molto tempo. Di solito i selezionatori IT ricorrono allo screening del curriculum, allo screening tecnico (test di codifica) e ai colloqui per valutare le competenze di Python.

Di seguito troverete alcuni consigli utili e pratici per il reclutamento su come verificare le competenze di Python utilizzando ciascun metodo.

3.1. Screening tecnico delle competenze dello sviluppatore Python sulla base del CV

Fortunatamente (per il reclutamento), Python ha un minor numero di librerie e tecnologie da selezionare rispetto, ad esempio, a Java. Tuttavia, alcuni aspetti potrebbero creare confusione.

Linguaggio PythonVersione popolare 3.7, 3.8, 3.9, 3.10
Framework web PythonDjango, Flask, Bottle, Tornado, web2py, FastAPI
ORMSQLAlchemy, Django ORM, peewee
Strumenti di costruzioneStrumenti di installazione, pip, tox
Quadri di testUnitTest, py.test
AsyncioPython 3.5, Tornado, Twisted
Strumenti di analisi dei datiNumPy, SciPy, Pandas, PySpark

Punti salienti:

  • Python 2 e 3 sono molto diversi. Python 2.7 è l'ultima (e più recente) versione di Python 2. La versione di Python 3 è in evoluzione e l'ultima è la 3.10.
  • Asyncio è presente solo in Python 3.
  • Tornado, Twisted, Gevent sono tutte librerie per la programmazione asincrona.
  • Django è di gran lunga il framework web più popolare.
  • La libreria per i test unitari è integrata nel linguaggio, quindi raramente viene menzionata separatamente.

Certificazione

La comunità Python non fornisce alcun programma di certificazione. Pertanto è raro incontrare certificati (indipendenti) per il linguaggio o le librerie Python.

Sviluppatori full-stack

Fullstack spesso significa che uno sviluppatore Python può anche creare pagine HTML con CSS e JavaScript. Le competenze di frontend sono ben accette e la maggior parte dei Conoscenza di JavaScript si applica in questo caso.

3.2. Screening tecnico delle competenze tecniche di Python durante un colloquio telefonico/video

Poiché è piuttosto difficile trarre conclusioni affidabili sulle competenze di programmazione del candidato dal curriculum stesso, i selezionatori IT spesso conducono un colloquio telefonico o video. Tale colloquio offre l'opportunità di porre domande sulle competenze del candidato in Python. In molte aziende questo colloquio tecnico telefonico o video è la base per decidere se invitare o meno qualcuno per un colloquio tecnico in loco con il team IT, quindi vale la pena di scegliere e porre le domande tecniche giuste.

Poiché le domande possono variare in base alla posizione per cui si sta reclutando e alle competenze specifiche che si vogliono verificare, in base alla mia esperienza consiglierei le seguenti domande generali per saperne di più sulle competenze Python dei candidati:

A. Domanda di intervista su Python 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à? Qual è stato il suo più grande risultato?
  • Perché chiedere il Q1: Ponendo questa domanda, potete scoprire di più sull'esperienza aggiornata di Python, sulle responsabilità e sui risultati ottenuti dal candidato. Così potrete conoscere meglio il vostro candidato.

B. Domanda di intervista su Python riguardante le conoscenze e le opinioni degli sviluppatori

  • Q2: Quali librerie open source Python ritenete valide e perché?
  • Perché chiedere il Q2: Questa domanda consente al candidato di dimostrare la propria conoscenza dell'ecosistema Python. Inoltre, il candidato può indicare di cosa tiene conto quando sceglie una determinata tecnologia. Come domanda successiva, si può anche chiedere quali sono, secondo lui, i vantaggi delle soluzioni commerciali rispetto a quelle open source e viceversa. Questo dimostra come il candidato pensa.
  • 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: Una domanda aperta di questo tipo permette al candidato di dimostrare le proprie conoscenze, se le possiede. Potete anche fare l'avvocato del diavolo sulla base delle 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.

C. Domanda di intervista su Python riguardante il processo decisionale dello sviluppatore in merito alla tecnologia Python

  • Q4: 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 il Q4: 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.

D. Domanda comportamentale per sviluppatore python

  • Q5: 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 Q5: Questo tipo di domande vi aiuterà a scoprire come il candidato percepisce le proprie decisioni, trae conclusioni e quanto impara dalle esperienze precedenti.

3.3. Screening tecnico delle competenze in Python con test di codifica online

I test di codifica online possono essere un ottimo modo per verificare le competenze di Python. Di seguito troverete informazioni su come utilizzare i test di programmazione e su quali scegliere.

Test di codifica Python online - il metodo principale o aggiuntivo per lo screening

Alcune aziende utilizzano il test di programmazione come aggiunta allo screening dei candidati dopo l'analisi del curriculum e la conduzione di un colloquio telefonico o video. Ma sempre più aziende si rivolgono ai test di codifica come primo metodo di selezione dei programmatori. Oggi le aziende tendono a invitare tutti i candidati che si candidano per una determinata posizione a sostenere un test. In questo modo, i selezionatori dedicano il loro tempo solo ai candidati che hanno superato l'esame, dimostrando di possedere competenze di programmazione Python. D'altra parte, ai candidati non viene chiesto di dedicare troppo tempo al processo di reclutamento fin dall'inizio, ma di completare rapidamente il test (di solito entro un'ora) a loro piacimento sia in termini di tempo che di luogo.

Competenze di sviluppatore Python a schermo con l'IDE PyCharm integrato

Noi di DevSkiller continuiamo a superare i limiti quando si tratta di test per sviluppatori.

La nostra ultima innovazione è quella di permettere ai candidati di risolvere i nostri test di codifica in Python utilizzando una IDE PyCharm nel browser da JetBrains. Nessun download, nessuna attesa e nessun problema.

I candidati risparmiano tempo durante i test, non dovendo aspettare l'installazione delle dipendenze o il caricamento dei programmi. Possono mettersi subito al lavoro concentrandosi sulle soluzioni ai nostri test di codifica Python, invece di imparare a far funzionare a loro favore un IDE primitivo con cui non hanno familiarità.

I candidati non devono più clonare il codice: possono letteralmente iniziare a codificare non appena aprono l'invito al test. I candidati possono eseguire test unitari, visualizzare in anteprima e riprodurre le loro soluzioni, proprio come nel loro lavoro abituale.


Per la vostra azienda, questo significa offrire ai candidati un'esperienza migliore che mai. Significa anche ridurre l'abbandono dei candidati durante il processo. Più veloce è il processo, più è probabile che i vostri candidati lo portino a termine. Significa che non vi lascerete sfuggire i candidati migliori.

Test di codifica Python online: quale scegliere?

Esistono molti test di codifica Python online sul mercato, ma di solito verificano le conoscenze di un candidato piuttosto che le competenze di programmazione e le capacità di risolvere problemi di codifica reali. Per questo motivo, molti programmatori esperti non amano questo tipo di valutazione e, inoltre, non riescono a ottenere un buon punteggio perché non possono dimostrare la loro esperienza e le loro capacità di risolvere problemi di programmazione reali.

Quali caratteristiche deve avere un buon test di codifica? Di seguito troverete le mie 5 caratteristiche principali che dovreste cercare:

  1. I test di programmazione Python devono verificare non solo le competenze di Python per quanto riguarda la tecnologia in generale, ma anche i framework e le librerie;
  2. I test di codifica Python dovrebbero consistere in un paio di compiti, non solo a scelta multipla, ma soprattutto in compiti di programmazione la cui difficoltà dovrebbe corrispondere alle responsabilità che i candidati avranno se otterranno il lavoro (i test non dovrebbero essere basati su compiti algoritmici, perché in questo modo non si può verificare se un candidato è in grado di risolvere le sfide di codifica della vita reale);
  3. Di preferenza, i compiti di programmazione Python dovrebbero essere preparati sulla base di codice dell'azienda, poiché questo è il modo migliore per imitare le sfide che il candidato dovrà affrontare una volta ottenuto il lavoro;
  4. Non ha senso vietare al programmatore di utilizzare fonti esterne. Il modo migliore è creare un ambiente simile a quello del lavoro, quindi un esame a libro aperto è molto più appropriato. Inoltre, il candidato deve poter utilizzare l'IDE che preferisce, proprio come fa quotidianamente.
  5. I test di codifica possono anche includere un compito con sfide di revisione del codice per verificare le competenze di Python. In questo modo si ottengono informazioni molto precise sull'esperienza del candidato, sul suo approccio alla qualità del codice e sull'efficienza nel debugging e nella ricerca di trappole. Una valutazione di questo tipo dovrebbe essere obbligatoria quando si assumono sviluppatori senior Python.

Nota dell'editore: questo post è stato pubblicato originariamente il 28 febbraio 2016. È stato ampiamente aggiornato per rappresentare le informazioni tecniche e le best practice più recenti.

Autore - Wojtek Erbetowski

Wojtek_Erbetowski Competenze tecniche dello sviluppatore Pyhton

Wojtek è un leader pratico con circa 10 anni di esperienza in API e applicazioni web in Python e Java. Ha lavorato come Head of Engineering presso Polidea, CTO presso GrowBots e partecipa attivamente come Community Leader presso il Warsaw Java User Group e Mobile Warsaw e come organizzatore della conferenza MCE. Collaboratore di librerie open source, sviluppatore software, sostenitore dell'agilità. Ha lavorato in diverse aree aziendali (vendite, pubblicità sui vecchi e nuovi media, e-mail marketing, società farmaceutiche, portali finanziati dall'UE, librerie all'ingrosso e altro) e ha trasformato le esigenze aziendali in applicazioni specializzate.

DevSkiller: test di valutazione della codifica Python online pronti all'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 Python pronti all'uso che potete utilizzare nella vostra campagna di reclutamento tecnico.

Pitone
SENIOR
Competenze testate
Durata
82 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di Grandi dati, PySpark, Pitone

Lacune nel codice

valutare la conoscenza di SQL

Attività di programmazione - Livello: Difficile

Python | PySpark | Società di gestione delle flotte - Rilevare gli eventi di eccesso di velocità e verificare la correttezza di un predittore esistente.

Pitone
MEDIO
Competenze testate
Durata
120 minuti al massimo.
Valutazione
Automatico
Panoramica del test

Domande a scelta

valutare la conoscenza di Pitone

Attività di programmazione - Livello: Medio

Python | Rapporto sulle vendite di veicoli - Implementare un'applicazione per creare rapporti basati sul data warehouse delle vendite di veicoli.

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