Come vengono intervistati gli sviluppatori di Scala [chiuso]

16

Come vengono intervistati i programmatori di Scala? Quali sono gli aspetti che l'intervistatore cerca quando intervista uno sviluppatore di Scala?

    
posta prasonscala 15.03.2011 - 09:45
fonte

4 risposte

17

In primo luogo, direi, pensa perché hai bisogno di uno sviluppatore Scala. E 'davvero Scala di cui hai bisogno? Pensa a ciò che arriva con Scala (IDE, strumenti di costruzione, librerie, un altro livello di complessità sopra Java ecc ...). Torna alla domanda. Funziona in due aspetti: comprensione teorica e abilità pratiche. non lasciare che la "teoria" ti inganni. È importante in Scala quanto la praticità sia importante in Java.

teorica

  • Vedi se sanno di cosa tratta veramente il paradigma funzionale. Chiedi loro di confrontare i due paradigmi (FP vs imperativo cioè) in filosofia e pratica. Se possono dare esempi da lingue che hanno il supporto completo o parziale per FP, allora è un vantaggio per loro.

Teoria e pratica mescolate

  • Verifica se possono effettivamente eseguire la programmazione funzionale nel modo giusto. Chiedi loro di elenchi, mappe, zipping e ricorsione. Poi vengono le chiusure, i lambda, la riduzione, le funzioni di ordine superiore e l'immutabilità.

Pratica

  • Verifica se possono refactoring un snippet di codice imperativo in una buona alternativa funzionale (vedi sopra). Prova un ciclo che implementa qualche matematica o qualcosa del genere.

  • Trova il loro gusto per lo stile funzionale vs imperativo. Scegli uno stile più funzionale, ma fai attenzione a non arrivare agli estremi dal lato dello sviluppatore.

  • Scopri quanto sanno sulle librerie Scala (ad esempio Lift, dispatch ecc.) e strumenti (ad esempio SBT, fsc, IDEA).

  • Scopri quanto possono sfruttare Java (code -and-tools). Scala è strettamente accoppiato a Java specialmente in ambienti più seri. Sapere questo è un grande vantaggio.

teorica

  • Chiedigli di confrontare Scala con Java (PHP, C ++, Objective C o altro) e chiedi loro di dirti cosa c'è di sbagliato in Scala. Vedi se capiscono i problemi così come i vantaggi. Chiedi loro di dare esempi reali di quando le carenze di Scala possono causare problemi (ad esempio, è difficile che i nuovi Joes vadano d'accordo, è immaturo in quanto il supporto è molto limitato rispetto a Java ecc.)

Pratica

  • Verifica se sono collegati alla community. Chiedi loro di Martin Odersky e David Pollak. Chiedigli di nominare alcuni progetti Scala e di descriverli (Facebook, Twitter, FourSquare, DBPedia e DBPedia SpotLight). Vedi se sanno come esattamente Scala viene usato in questi progetti. Hanno letto gli articoli, visto i video, ecc.?

  • Chiedi loro dei libri (ce ne sono solo alcuni). Più ne sanno e meglio è.

  • Come ultima parola di cautela, posso dire che le lingue brillanti hanno questo strano potenziale per attirare le persone sbagliate. Fai attenzione al tipo che arriva a Scala per tutte le ragioni sbagliate. Eccone alcuni:

    • Scala è per i privilegiati (mi sento intelligente, mi sento così diverso dagli altri Joes, ho un nuovissimo brillante Ph.D, odio imperativo perché è per i ritardati, Java è superficiale, Scala è così elegante , eccetera.). Questo tipo non è produttivo in progetti seri e difficile da andare d'accordo.
    • Sono innamorata della sintassi di Scala e mi piacerebbe scrivere la mia DSL ovunque io abbia la possibilità di codificare. Questo tipo ama sfruttare le peculiarità di Scala fino all'ultima goccia in modo distruttivo. Si sentono benissimo a scrivere codice criptico e troppo conciso al punto di essere illeggibile. Questo tipo è particolarmente pericoloso in quanto il loro codice è illeggibile. Il loro omaggio è il loro amore per il sovraccarico dell'operatore, nomi strani e scritte one-liner.
    • Mi infilo con Scala fino all'ultima goccia, non importa cosa. Questo è l'ingenuo tipo di purista. Non possono scambiare e proiettare soffre quando è richiesto un approccio ibrido, come nel caso dei progetti del mondo reale.

P.S: Se hai trovato un buon Joe, per favore, fammi sapere come ne abbiamo bisogno;)

    
risposta data 06.04.2011 - 07:02
fonte
8

In un'intervista nel mondo reale, semplicemente sapere che Scala è la metà della battaglia vinta. Assumere un buon programmatore è sempre difficile, indipendentemente dalla lingua!

I programmatori di Scala tendono a venire nella lingua perché erano già in cima al loro gioco in Java e volevano "portarlo al livello successivo".

Se disponi di un vasto numero di sviluppatori di Scala disponibili per un colloquio, considera di essere fortunato. In caso contrario, le domande più rilevanti potrebbero essere "Quali aspetti dovrei cercare in un programmatore che mi allenerò per utilizzare Scala?" E "Quali aziende sono attualmente in grado di fornire servizi di formazione?"

    
risposta data 21.03.2011 - 10:28
fonte
7

Mi piace vedere le soluzioni a piccoli problemi come questo: Creare un istogramma dei risultati del lancio di due dadi a sei facce 200 volte.

Vedi i commenti qui per alcune risposte interessanti: link

Qualcuno con una soluzione come quella di Daniel Sobral, o quella di Kevin Wright: link varrebbe la pena dare un'occhiata più da vicino.

Se la risposta è simile al codice Java, allora il candidato potrebbe non essere abbastanza avanti.

Mi piacerebbe anche vedere che la persona è connessa alla comunità di Scala: conosce i libri, gli autori, gli sviluppatori open source, i gruppi di utenti, le persone interessanti.

    
risposta data 21.03.2011 - 01:31
fonte
4

Non ho mai fatto alcuna assunzione di Scala, ma cercherò di capire come funzionano gli impliciti, il tipo di modello di classe e le basi della programmazione funzionale.

    
risposta data 21.03.2011 - 00:45
fonte

Leggi altre domande sui tag