Come trovare un valido Prolog Developer

  • Categoria dell'articolo:articolo / News

Sei alla ricerca di un Prolog Developer, ma stai incontrando difficoltà nel reclutarlo? Ti sei affidato a società di selezione del personale ma non hai avuto i risultati attesi?

In questo articolo ti spieghiamo chi è e di cosa di occupa tale figura e i vantaggi nel rivolgersi a Ricercamy quale partner nella ricerca e selezione di profili nel settore informatico.

Cenni storici sul linguaggio Prolog

Il Prolog (PROgramming in LOGic) fu progettato ed implementato a Marsiglia da Colmerauer e Roussel nel 1972. È basato sul principio di risoluzione di Robinson del 1965 e sull’interpretazione data da Kowalski della logica dichiarativa come insieme di istruzioni procedurali per un calcolatore [Kowalski 1979]. Da allora è stato utilizzato per un’infinità di applicazioni: integrazione simbolica, pianificazione, CAD, progetto di compilatori, interrogazione e descrizione di basi di dati, problemi meccanici, analisi del linguaggio naturale, robotica. La sua diffusione è stata talmente ampia da diventare il linguaggio scelto dai Giapponesi per il progetto dei calcolatori della V Generazione. Il motivo di questo successo è da ricercarsi da un lato nella sua semplicità e naturalezza, dall’altro nella potenza espressiva della logica formale. 

Per queste ragioni il Prolog si sta diffondendo anche fuori dagli ambienti prettamente scientifici, tanto è vero che sono già disponibili sul mercato varie implementazioni per personal computer (anche piccoli). Va inoltre evidenziato il fatto che, a differenza di altri linguaggi di programmazione, per imparare il Prolog non è richiesto alcun prerequisito specifico; tanto è vero che tale linguaggio viene attualmente insegnato in via sperimentale (e con grande successo) agli alunni di alcune scuole elementari inglesi allo scopo di sviluppare capacità di ragionamento logico. Oltre al Prolog nato a Marsiglia, esistono attualmente parecchie altre implementazioni, tra cui ricordiamo quelle di Edimburgo, Imperial College di Londra, Budapest, Waterloo (Canada), Palo Alto (California), Svedish Institute of Computer Science (Svezia).

Il Prolog è un linguaggio di programmazione logica basato sulle clausole di Horn. Un programma logico consiste in un insieme di procedure espresse in clausole di Horn ed attivate da una asserzione iniziale di obiettivo. Considerando le clausole espresse secondo le due categorie di fatti e regole, diciamo che un programma Prolog è costituito da un insieme di fatti, che dichiarano un certo stato di cose, da un insieme di regole, che definiscono relazioni fra stati di cose, e da obiettivi (o domande) a cui rispondere. La procedura utilizzata dal Prolog è il Principio di risoluzione. In informatica la programmazione logica è un paradigma di programmazione nato negli anni ’70 che adotta la logica del primo ordine sia per rappresentare sia per elaborare l’informazione. La programmazione logica differisce dalla programmazione tradizionale, sviluppata da linguaggi ad alto livello quali Fortran, Cobol, Basic, Algol, Pascal, Ada, etc., in quanto richiede e nello stesso tempo consente al programmatore di descrivere la struttura logica del problema piuttosto che il modo di risolverlo [1]. Da un punto di vista concettuale, il programmatore si può così concentrare sugli aspetti logici del problema e sul modo migliore per rappresentarli, senza essere focalizzato sulla necessità di determinare in dettaglio il modo di pervenire ai risultati.

In particolare viene adottato il frammento della logica a clausole di Horn che rappresenta la base teorica su cui sono costruiti i linguaggi di programmazione afferenti al paradigma logico e in particolare il Prolog, o suoi sottolinguaggi, come Datalog o AnsProlog.

Il meccanismo principale per elaborare teorie logiche fatte di clausole è l’unificazione. Fra le estensioni della programmazione logica sono la programmazione logica induttiva e la programmazione logica abduttiva.

Esempio di programma Prolog

 genitore(pam,tom).

  genitore(tom,bob).

  figlio(Y,X) :- genitore(X,Y).

  ?- figlio(X,Y).

  X = tom

  Y = pam

In questo contesto opera il Prolog Developer, il quale per capire il linguaggio di programmazione, deve familiarizzare con alcuni dei termini fondamentali di Prolog che ne guidano il funzionamento, sono spiegati in breve di seguito:

● I fatti definiscono le affermazioni vere

● Le regole definiscono la dichiarazione ma con condizioni aggiuntive

● Gli obiettivi definiscono la posizione delle dichiarazioni presentate in base alla base di conoscenza

● Le query definiscono come rendere vera la tua affermazione e l’analisi finale di fatti e regole

Prolog offre due approcci per l’implementazione dell’IA che è in pratica da molto tempo ed è ben noto tra i data scientist e i ricercatori:

● L’Approccio Simbolico include sistemi esperti basati su regole, dimostratori di teoremi, approcci basati su vincoli.

● L’approccio statistico include reti neurali, data mining, apprendimento automatico e molti altri. 

  • Una lista è una collezione ordinata di termini, separati da virgole; viene indicata per mezzo di parentesi quadre; è ammessa la lista vuota []. Esempi: [1,2,3] e [rosso,verde,blu].
  • Una stringa è una sequenza di caratteri delimitata da doppi apici (“), p.es. “essere o non essere”.

Prolog è particolarmente adatto per esprimere idee complesse ed è il linguaggio preferito per molte applicazioni di Intelligenza Artificiale. È particolarmente adatto per sistemi esperti e parser del linguaggio naturale e, in generale, per qualsiasi sistema basato sulla rappresentazione della conoscenza e sulla risoluzione dei problemi.

Dal punto di vista del programmatore Prolog è molto diverso dai linguaggi tradizionali. La fatica della gestione della memoria, dei puntatori dello stack, ecc. è lasciata al motore di calcolo e il programmatore è libero di concentrarsi sulla descrizione logica del problema. Quindi, piuttosto che concepire un modo procedurale per risolvere il problema stesso, il programmatore Prolog si concentra sulla rappresentazione di un dominio di conoscenza, lasciando al motore Prolog il compito di trovare soluzioni per qualsiasi problema che si presenta in quel dominio. Molte delle ricerche che hanno portato alle moderne implementazioni di Prolog sono venute dagli effetti spin-off causati dal Fifth Generation Computer Systems Project che ha scelto di utilizzare una variante di Prolog, denominata Kernel Language, per il proprio sistema operativo.

Oggi, gli esempi più avanzati di robotica e intelligenza artificiale hanno ispirato diversi leader della comunità scientifica a esprimere preoccupazioni sull’intelligenza artificiale. Joseph Weizenbaum, il creatore del famoso programma ELIZA, ne fu uno dei critici più accesi.

Di cosa si occupa, nello specifico, il programmatore Prolog Developer?

Le principali attività che dovrà svolgere sono:

  • Risoluzione del problema: Uno dei migliori motivi per utilizzare Prolog è che non devi dire al computer come risolvere un problema, ma fornire al computer le regole coinvolte nella risoluzione
  • Adottare una logica di quantificazione: Prolog utilizza la logica di quantificazione anziché la logica più semplice utilizzata dalle altre lingue
  • Adottare una logica di unificazione: Unificazione significa solo che le due cose non devono essere uguali e non devono corrispondere finchè possono essere realizzate uguali utilizzando qualche lista di sostituzioni

Per svolgere le suddette attività le persone dovranno avere tra le loro competenze:

  • Buone capacità di programmazione (minimo 3 anni di esperienza)
  • Conoscenza delle strutture dati e del linguaggio di interrogazione e management relativo (SQL) con i Framework di sviluppo specifici
  • Utilizzo di almeno un sistema operativo
  • Competenze in ambito analisi e stesura di specifiche SW
  • Buona conoscenza lingua inglese per protocolli, normative e call con colleghi

Completano il profilo ovviamente soft skill importanti, quali: attitudine al lavoro in team, proattività e creatività, buone doti di organizzazione e orientamento al risultato.

Nel settore informatico esiste una forte concorrenza sul mercato e la velocità nel contattarli e uno studio di retribuzioni sono le basi per ottimizzare un processo di selezione.

Ricercamy, head hunter rivoluzionario e dinamico, nato nel marzo 2012, si è, sin dalla sua nascita, impegnato ad introdurre nel mondo della Ricerca e Selezione elementi di innovazione che migliorassero la redemption delle attività di Recruiting.

Secondo uno studio di Linkedin, il 75% dei talenti è passivo e sta già lavorando, non dedicandosi proattivamente alla ricerca di nuove opportunità professionali. Solo il 25% di essi si interessa con più costanza alla ricerca attiva di nuove offerte di lavoro. Di conseguenza investire il budget aziendale in abbonamenti e/o offerte di piattaforme di job posting sicuramente non può essere la sola soluzione efficace o quantomeno non potrà essere l’unica.

E’ necessario adottare una metodologia che permetta di arrivare ai migliori candidati: le chiamate di caccia (o Head Hunting che dir si voglia)!

E’ così che i nostri head hunter specializzati trovano personale qualificato per i nostri clienti.

Le chiamate in anonimo, dei nostri consulenti riescono ad intercettare qualsiasi profilo con diverse seniority.

Tramite un pre-screening telefonico molto approfondito e tecnico, oltre ai dati anagrafici, vengono raccolte tutte le specifiche sull’esperienza del candidato necessarie per valutarne la validità e permettendo così allo stesso di accedere allo step successivo.

Tutto ciò di cui sopra viene svolto e condiviso in tempo reale tramite un file in cloud in cui è possibile lavorare a quattro mani con il referente delle risorse umane dell’azienda cliente, che non deve aspettare 2-3 settimane per poter ricevere la prima shortlist di validi profili, ma giusto poche ore!

La trasparenza e la condivisione immediata è un tratto distintivo di Ricercamy che si è andata specializzando negli anni nella ricerca e selezione di figure tecniche in ambito informatico e grazie allo sviluppo di competenze specifiche e conoscenza dei profili ricercati e del mercato di riferimento.

Cercando personale quotidianamente, i nostri head hunter hanno acquisito un know how e una specializzazione nei loro settori, che ci consentono di essere leader in questo mercato affollato da Recruiter.

Forte dei nostri strumenti, fin dal suo inizio, Ricercamy ha aiutando dalle più piccole Start Up informatiche, ai grandi Colossi IT nella selezione di Personale qualificato difficile da trovare e da inserire. Grazie poi all’offerta commerciale SMART i nostri clienti ci chiedono di svolgere selezioni che tendenzialmente hanno sempre svolto internamente, ma avendo costi certi e non prevedendo né completion fee né esclusiva, si sentono così liberi di delegarci tutta la gestione delle loro vacancy, o quelle attività più ostiche o ripetitive alleggerendosi il lavoro.

Se anche tu sei alla ricerca di questi profili, non aspettare!

Compila la form che trovi di seguito e sarai contattato entro un’ora dai nostri consulenti specializzati.

Manuele Epifanio

HR Consultant

Ricercamy