Newsgroup: it.lavoro.informatica
Titolo: why-github-is-not-your-cv

Se ne era parlato qualche tempo fa, in rete è già di moda chiedere l'account su github...
ma è davvero un buon indicatore? Aiuta davvero il processo di selezione?
 
http://blog.jcoglan.com/2013/11/15/why-github-is-not-your-cv/
 


Se sei uno sviluppatore e scrici codice per diletto o contribuisci a
progetti Open Source, secondo me ha senso.
 
- Fai vedere che non fai lo sviluppatore solo per i soldi.
- Il potenziale datore di lavoro puo' vedere se scrivi codice alla
penedisegugio
- Magari ti risparmi quei test tipo "come hai a sapere se un munero e'
palindromo ?" (che comunque secondo me servono per far vedere come
ragioni, se sai gestire i casi particolari, se ti vengono in mente
piu' idee per risolvere un problema).
-- 
Living in Barbaropoli
http://www.barbaropoli.com
 


intval(strrev($numero)) === $numero ?
 
 
-- 
I fatti mi cosano


LOL: "OSS as a hiring filter biases your selection process toward white men" ghghgh
 
  ngw

intval(strrev($numero)) === $numero ?
 
Fai finta che non hai librerie a supporto e la cosa diventa un
esercizio da scuole superiori a botte di array, confronti o cicli,
confronti, sottrazioni.
 
Tanto per perdere 30 minuti a scarabocchiare alla lavagna.



 
Di fretta a me esce tipo cosě:
 
int n = 818;
 
int n1 = n;
int nn = 0;
while (n1 != 0)
{
   c = n1 % 10;
   n1 = n1 / 10;
   nn = n1 * 10 + c ;
}
bool isPalindromo = nn == n;
 
 
 

 confronti, sottrazioni.
 
No cicli facile facile,
 
 
se posso assumere di avere il numero in input come stringa/lista:
 
aucontraire []     = []
aucontraire (x:xs) = aucontraire xs ++ [x]
 
palindrome xs = xs == aucontraire xs
 
 
se è un intero c'aggiungo:
 
nToList 0 = []
nToList n = nToList i ++ [r]
    where i = div n 10;
          r = mod n 10
 
 
fatto1: più che con i numeri è divertente sulle stringhe con
punteggiatura etc.
 
 
fatto2: che succede d'interessante se posso cambiare base al numero? ;)


Ma infatti ho letto solo di sfugita mentre palindromavo, di che diavolo
parlano? Poco tempo per ricostruire sta cosa razziale, se qualcuno ha
seguito e ha breve sunto thx in anticipo.

 bool isPalindromo = nn == n;
 
mmm, pensa:
 
finchè n > 0
  contrario = contrario * 10 + n % 10
  n = n / 10


Ok, risparmi una variabile, n1 non ti garba... :-)
 

   n = n / 10
 
oppure un approccio piu' esplicito:
 
	unsigned int n=123454321; //number
	unsigned int b=10; //base
	//unsigned int n=0b110010011; //number
	//unsigned int b=2; //base
 
	int i, j;
	bool isPalindrome = true;
	for (i=0, j=floor(log(n)/log(b)); i < j; i++, j--){
		int rightValue = (unsigned int)floor(n/pow(b,i)) % b;
		int leftValue  = (unsigned int)floor(n/pow(b,j)) % b;
		if (leftValue != rightValue) {isPalindrome = false; j=-1;}
	}
 


Più che altro ci guadagno l'algoritmo corretto al primo colpo. Prova a
correggere e vedrai che è stato l'introdurre (l'inutile) n1 a
confonderti e farti sbagliare (imho).


Certo è tanto per e non stiamo simulando l'interview dove avremmo fatte
diverse domande prima di passare al codice...
Per esperienza comunque soluzioni del genere alle domandine facili
alla whiteboard non le tenterei - non a caso ho pensato alla mia di
prima (in Haskell) o a qualcosa tipo
 
let pal(n, rev=0)
  if not n
    return rev
  return pal(n / 10, rev * 10 + n % 10)
 
da cui derivavo il semplice loop (come quello sopra, dove usavo
"contrario" per evidenziarne l'idea)
 
let pal(n)
  rev = 0
  while n > 0
    rev = rev * 10 + n % 10
    n = n / 10
  return rev
 
 
perché le butto giù in 30 secondi su carta e sono ragionevolmente sicuro
siano corrette. Le interview le ho sempre passate così, è il miglior
punto di partenza per poi discutere performance e trradeoffs (oltretutto
una soluzione corretta subito allenta la pressione e predispone bene
l'intervistatore nei tuoi confronti, che non è poco considerando quanti
stronzi ti ritrovi in giro... ;)

 stronzi ti ritrovi in giro... ;)
 
ben predisporre chi fa l'intervista e' un buon punto di partenza.
Io d'istinto tendo ad essere arrogante e a rigirare la frittata, ossia a mettere sotto esame chi mi fa la domanda, mi rendo conto che indispone.
 
 


Dato che in matematica sono una zappa e non so se ci siano rapporti 
"magici" che mi dicono se un numero è palindromo andrei sostanzialmente 
con lo stesso approccio, ma scritto in modo più prolisso
Per inciso quell'esempio non usa _librerie_ in senso stretto: quelli 
sono costrutti standard di PHP, uno dei motivi per cui si è diffuso così 
a macchia d'olio imho
 
In Java potrei scrivere:
 
int numeroOriginale = 123321;
String numero = ""+numeroOriginale;
char[] exploded = numero.toCharArray(); //non trimmo perché è un cast da 
int gestito dal mio codice quindi mi posso fidare (alla peggio unit test)
 
String reversed = "";
for (int i = 0; i < exploded.length; i++ ){
   reversed = exploded[i]+reversed;
}
 
if(reversed.equals(numero)){
  System.out.println("E ce l'abbiamo fatta");
} else {
  System.out.println("Se leggi ar contrario Romaaaaaa ...");
}
 
Niente Integer.parseInt perché poi tocca
a) importare Integer
b) fare il try catch
 
Secondo me questi esercizi sono utili come il fare calcoli aritmetici a 
mente, puro esercizio "muscolare"
Fanno bene, ma sono abbastanza inutili a livello di colloquio


 indispone.
 
Dipende, se la si rigira senza essere bruschi può essere
interessante ma certo bisogna saperlo fare (ed essere in giornata).

 No cicli facile facile,
 
... e anche senza stati mutevoli (esempio in Python 2.x, facilmente
riscrivibile in altri linguaggi funzionali).
E in una sola riga (quella del return). :-)
 
 
#!/usr/bin/env python2
 
def is_palindrome(num):
    return num == int( reduce( lambda x, y: y + x, list(str(num)) ) )
 
num = 12345
print is_palindrome(num)
num = 12321
print is_palindrome(num)


Non capisco dove è sbagliata la mia, non mi pare.
n1 l'ho usato perché mentre debuggi altrimenti non sai da che numero sei 
partito...
 

 Non capisco dove è sbagliata la mia, non mi pare.
 
Non ho provato ma ad occhio il tuo algoritmo non può far altro che
ritornare la prima cifra di n. Il loop corretto dovrebbe essere
 
while (n1 != 0) {
  c = n1 % 10;
  nn = nn * 10 + c;


 solo come simpatica "curiosità" e nulla di più.
 
ce ne stanno a migliaia qui:
http://primes.utm.edu/curios/
 
:-)


Secondo me dipende chi ti trovi davanti, e in che contesto ti fanno la
domanda.
 
Tanto per perfdere tempo, puoi usare un algoritmo a cazzo tipo:
 
- Prendi il numero
- Convertito in stringa
- Spezzalo in due
- Inverti la prima meta'
- Confrontala con la seconda
 
A meno che le cifre siano dispare.
 
In quel caso spezzi a meta -1 e confronti da meta'+1.
 
Orrendo e inefficiente. Magari l'intervistatore apprezza che sai
gestire l'eccezione, magari pensa che sei una capra. Dipende dal
lavoro che vaia  fare.
 
Altra soluzione da superiori:
- Converti in stringa
- Fai una scansione partendo dagli estremi
- Sottrai gli estremi
- Vai avanti fino ad arrivare a meta' (o a meta'-1/+1), esci se la
sottrazione non da come risultato zero
 
Poi vuoi puoi anche parlare di distribuzioni gaussiane, conversione in
base 11, pattern particolari o sviuluppare la funzione matematica che
dimostra la palindromicita' del numero.
 
Ma ho paura che nella maggior parte dei casi quel lavoro non lo prendi
perche' ne sai molto di piu' dell'intervistarore che si sentirebbe in
pericolo.


  fare.
 
buono se devi entrare all'ucas :-)
 
un conto è se passi da un procedimento matematico, ma se converti in 
stringa è assurdo andare a confrontare le due metà invertite per vedere 
se una stringa è uguale a se stessa invertita :-) sarebbe una prova di 
fantasia, ma con la fantasia si fa lo scrittore non il programmatore :-)

 pericolo.
 
questo e' un buon punto di riflessione.
In generale credo sia difficile che si verifichi, perche' chi prende le decisioni ha ruoli manageriali, non tecnici. Se si cerca una persona nuova e' per colmare un vuoto, non per fare overlap con ruoli gia' esistenti.
 
Il problema e' semai *dopo*, a lavoro, ma e' sempre un problema di managment. Se il managment e' scarso in technical skills, usera' un approccio divide et impera che annichilira' anche il piu' rambaldo dei sottoposti, certo, i risultati del gruppo saranno minori, ma il sederino rimarra' ben incollato sul trono del comando.
 

 Fanno bene, ma sono abbastanza inutili a livello di colloquio
 
Forse mi sarei divertito, provocatoriamente, a scrivere  solo questo:
 
bool res = isPalindrome(x);
 
Alla domanda: ma che cribbio è?
 
Avrei risposto: come nel 99% dei casi reali, la soluzione è trovare una libreria che ha già la funzione richiesta, non reinventare la ruota :-)
Che avrebbe detto il selezionatore?
 
 
 
 


Ingenuo. :)
 
Chi ti fa le domande tecniche magari e' il tim lider. E' vero che non
stanno cercando un tim lider, ma e' anche vero che se quello attuale
si sentira' poco tranquillo e, nella pratica quello che puo' succedere
e' questo:
 
Manager: beh? Com'era?
Tim lider in pericolo: Mah, si le potenzialita' ce le avrebbe ma c'e'
qualcosa che... non saprei, non mi ha convinto.
Manager: OK, chiamiamo il prossimo.
 
In genere le aziende cercano buoni attori, poi il 48% di quelli che
assumono si rivelano essee la scelta sbagliata.


 assumono si rivelano essee la scelta sbagliata.
 
ottima la prima, la seconda non saprei.

ottima la prima, la seconda non saprei.
 
Knock yourself out:
http://www.amazon.com/Sway-Irresistible-Pull-Irrational-Behavior/dp/0385530609
 
 
Riassunto fa pio' o meno cosi': a seconda se un canditdato ti piace o
meno, cercherai delle giustificazioni razionali per la decisione che
hai gia' preso nei primi 60 secondi che ce l'hai nella stanza.
 
Il risultato e' che potresti benissimo selezionare tizio e caio in
base al CV, parlarci al teledono, e assumerlo tirando una moneta per
aria.
 
Oggettivamente sarebbe piu' utile selezionare in base al CV, parlare
con tizio e caio, parlare con quelli che ci hanno lavorato prima (le
referenze) e decidere in base alle risposte che ti danno queste
ultime.


 :-)
 
eh been there done that for soo long :)

 
http://www.amazon.com/Sway-Irresistible-Pull-Irrational-Behavior/dp/0385530609
 
 
Stavo pensando "passi Dan Ariely, ma tutti sti libri di mò che fanno il
'sunto concentrato' alla Freakonomics un pò hanno rott..", quando ho
intravisto
 
 "Sway helped me recognize an aspect of irrational behavior in my
 experimental work in physics. Sometimes I have jumped into some
 research that didn't feel quite right... but some irrational lure,
 such as the hope of quick success, pulled me in."
 -- Martin L. Perl, 1995 Nobel Laureate in Physics
 
mmm penso ci darò un'occhiata


wrote:

E' interessante se vuoi approfondire concetti di psicologia sociale,
che sono utili in vari ambiti, incluso infosec.


 Che avrebbe detto il selezionatore?
 
l'intervistatore a specchio:
 
  "ottimo, assunto! ... pensi che all'epoca io passai l'interview qui
  rispondendo ad una difficile domanda su deployment distribuito in
  ambienti complessi con un semplice ma efficace 'deploy()'. Faremo
  scintille con lei in squadra, me lo sento!"
 
quello paterno:
 
  "Sa, usiamo il test come filtro proprio per distinguere tra
  programmatori e copiaincollatori da Stackoverflow. Se adesso
  gentilmente vuole provare a risolvere il quesito utilizzando solo..."
 
quello dell'interview a Roma:
 
  "ARFIOOOOOOOOOOO, VIE' DE QQUA CHE CE STA UN MATTO CHE ME STA A FA
  STRIPPA' 'RTACCI SUA !1!!11!!!"
 
quello a cui non piace reinventare la ruota: 
 
  "Le faremo sapere. Grazie"


Vero! Ho scambiato una n con un 1... :-)
Così è ok:
 
while (n1 != 0)
{
   c = n1 % 10;
   n1 = n1 / 10;
   nn = nn * 10 + c ;
}
 
Che è la tua con le ultime due assegnazioni invertite come ordine 
 

 Che avrebbe detto il selezionatore?
 
avrebbe detto: "si ok, ma ora mi dica quello che cribbio è"
siamo d'accordo che nel 99% dei casi usi una libreria esistente, ma mica
per questo te ne puoi inventare di sana pianta l'esistenza. 

 
http://blog.jcoglan.com/2013/11/15/why-github-is-not-your-cv/
 
 
Github non è un cv/resume, è l'equivalente del mio "Index of /~user"
pubblico di Apache di anni fa. Se il contenuto è interessante e c'è un
minimo di presentazione affinchè non si debba tirare ad indovinare cosa
il codice dovrebbe fare, può essere d'aiuto.
 
Tutto aiuta quando si tratta di dati oggettivi su cui poter fare
valutazioni. Nessuno un minimo furbo vuole decidere in base alle
chiacchiere.
 
Come ultima difesa, si può sempre assegnare un compito da svolgere e
rispedire con n giorni d'anticipo sulla data dell'interview. Se i
risultati sono insufficienti si ringrazia d'aver partecipato, altrimenti
ci si vede come stabilito e lo si discute insieme. Si risolve così anche
il problema del neolaureato, chi non può mostrare codice perché
closed, e via così.


Noi qui le librerie le facciamo, quindi... :-D
 
 
 
 
 

il codice dovrebbe fare, puň essere d'aiuto.
 
"Niente commenti? Assunto!
Sa, noi usiamo agile/scrum, qui lei si trovera benissimo.
Non si preoccupi per il testing, lo facciamo solo se c'e' tempo..."
 
:)


 rispedire con n giorni d'anticipo sulla data dell'interview. 
 
mmm si' viene fatto anche questo, in effetti c'e' pure gente che sbarca il lunario offrendo
servizio di selezione di tecnici proprio perche' la selezione e' un'attivita' onerosa
 
io sono quantomeno perplesso... non basta leggere un po' di codice per capire
se la persona che si candida e' l'ideale per la posizione...

se la persona che si candida e' l'ideale per la posizione...
 
Per quello sarebe importante chiedere a chi ci ha gia' lavorato e
invitare il candidato a fare una partita a un gioco da tavolo.
 
Ma le soluzioni ovvie, evidentemente sono troppo ovvie...


 capire se la persona che si candida e' l'ideale per la posizione...
 
beh intanto mi sembra che l'articolo argomenti dal punto di vista del 
candidato piuttosto che del selezionatore. in ogni caso sì, se uno la 
vede come una scorciatoia per capire senza ulteriore sforzo se una 
persona è l'ideale per una posizione è evidente che prende un granchio, 
salvo ovviamente casi eccezionali. 

   "Le faremo sapere. Grazie"
 
-1
 
Punteggio medio: negativo.
 
Quindi, sintetizzando: se cerchi di fare l'esercizio senza ricorrere a funzioni, ovvero con le operazioni più basiche del linguaggio, non va bene. Se ti cerchi l'algoritmo su internet (magari partendo dall'assunto che ci potrebbe essere qualcuno più bravo di te, in giro...) neppure va bene.
Boh. 
 
 

 eh been there done that for soo long :)
 
:-P
primes.utm.edu/curios/
 e' veramente un bel sito :-)
Io ogni tanto apro numeri a caso per curiosita' :-)
Col tempo un paio di facts li ho suggeriti tempo addietro ma ancora li devono approvare LOL :-)
 
 

 Noi qui le librerie le facciamo, quindi... :-D
 
Tutte tutte? ;-)

 se la persona che si candida e' l'ideale per la posizione...
 
no, ma basta leggere un po' di codice per capire se la persona che si 
candida e' inadeguata per la posizione
 
-- 
A million bright ambassadors of morning
 
 

 avrebbe detto il selezionatore?
 
si sarebbe divertito, provocatoriamente, a scartare il CV
 
al di la' della battuta (mia, tu invece mi sembri quasi serio) il 
processo di selezione e' molto semplice: il selezionatore cerca di 
conoscere il piu' possibile del selezionato in un tempo limitato, ed il 
selezionato cerca di farsi conoscere il piu' possibile dal 
selezionatore nel suddetto tempo limitato
 
per questo motivo quelli che fanno i furbi durante il colloquio hanno - 
almeno con me - vita molto breve


 almeno con me - vita molto breve
 
Al di là di questo piccolo caso particolare, in cui ti dò ragione, non valuto  per niente positivo per la selezione imporre uno schema rigidissimo. Del tipo: qua le domande le faccio solo io.
 
 

 tipo: qua le domande le faccio solo io.
 
sono d'accordo, e spero che non si sia evinto questo dal mio discorso


 sono d'accordo, e spero che non si sia evinto questo dal mio discorso
 
Dalla tua risposta alla provocazione di prima sembra il contrario, ovvero se il candidato si permette di "mancare di rispetto" allo schema predeterminato, può subito accomodarsi alla porta. 
 

 Boh.
 
se ti pongono di fronte ad un esercizio è ovvio devi fare l'esercizio. 
non inventarti scorciatoie che non esistono o rispondere che la soluzione
basta cercarla su internet.
l'esercizio ha lo scopo di valutare quello che sai, non di valutare come
te la cavi con quello che non sai.


io penso che fra uno schema "qui le domande le faccio solo io" e accettare 
per buona una provocazione ci sia nel mezzo il mare.

 Col tempo un paio di facts li ho suggeriti tempo addietro ma ancora li devono approvare LOL :-)
 
Non ci avevo fatto caso ma c'è il libro 
http://www.primecurios.com
 
lo prendo perché se lo meritano

 Boh. 
 
Si scherza eh (e mi assumo anche la piena responsabilità che non facesse
ridere ;)
 
Sui costrutti, ripeto che quei semplici tests algoritmici hanno proprio
la funzione di tagliare

 la funzione di tagliare
 
Ma senz'altro. Il suggerimento è di non sopravvalutare la loro validità. E di non aver troppa paura a rompere gli schemi.
 

 capire se la persona che si candida e' l'ideale per la posizione...
 
E hai ragione, non è condizione necessaria e sufficiente manco alla
lontana. Se adesso salta fuori che c'è chi ci crede e ne blogga come
fosse il verbo... fatti loro e di chi vuole lavorare per loro.
Confesso comunque che a me spesso certe storie sembrano più una scusa
per sentirsi protagonisti della "blogosfera" (si dice così?) che non...


Se sono dalla parte dell'intervistato e mi interessa il lavoro, non li
"valuto" nemmeno: penso solo a superarli e a battere la concorrenza.
Dall'altra parte, prenderei il tuo isPalindrome(x) come trolling e ti
chiederei che ci sei venuto a fare al colloquio.
 
Rompere gli schemi, figurati, modestamente mi ritengo uno specialista ma
parliamo di ben altro.

 sugli aspetti medico/biologici... eh.
 
:-)
guarda, molti aspetti sono tuttora bui, e i testi (anche universitari) danno per assodate molte cose che non sono cosi' assodate. Per le immagini mediche e' peggio, perche' ci sono di mezzo i colossi commerciali che rendono la vita difficile.
 
Ti faccio un esempio, le TAC con gli artefatti derivati dal movimento del paziente. Se il paziente fa micromovimenti l'immagine ricostruita esce una schifezza (anche se trattiene il fiato). Quando acquisici le immagini da detector, in realta' puoi ancora piu' o meno correggerle. Pero' in generale le aziende che producono i macchinari NON forniscono i dati raw (nel caso delle TAC si chiamano sinogrammi), sui volumi gia' ricostruiti non puoi fare nula, e' anche sprecato applicare algoritmi per correggerle. DEVI avere i dati dal sensore, che i produttori (in genere) non ti danno.
 
Piu' in generale, le immagini mediche ti danno una media di quello che succede nel corpo. Per capirci appieno devi andare a livello microscopico. Ma a livello microscopico sei molto limitato: i pazienti hanno da ridire se cerchi di affettarli :-) E anche con le immagini ex-vivo e' un po' un casino avere info dettagliate a pochi nanometri. Insomma e' tutto un compromesso, tra tanti mezzi d'indagine. A conoscere superficialmente solo l'image processing fai danni ;-) C'e' da capire la fisica degli strumenti, le varie fasi dell'image formation, l'anatomia/fisiologia, la biochimica. Io ho dovuto farci un dottorato in biochimica per capirci un attimino di piu', fai te :-)
 
Un libro che dia le basi tecniche non saprei, qualsiasi libro di image processing puo' essere utile, e' buono il "Digital Image Processing" di Gonzalez, e' apprezzato anche "Image Processing, Analysis, and Machine Vision" di Milan Sonka, che all'epoca non mi era piaciuto troppo, poi ho conosciuto Milan ad un seminario e ho apprezzato il libro un po' di piu'. Boh?!? Questi libri danno le basi basi, sono piu' testi universitari generici. La cosa piu' intelligente da fare e' magari leggersi gli articoli su
http://www.journals.elsevier.com/medical-image-analysis/
 
http://www.ieee-tmi.org/
 
man mano che escono ;-) o riviste del genere. Piano piano ci si fa un'idea ;-)
 
Io ai tempi per capirci qualcosa ho dovuto seguire e dare anatomia e fisiologia a medicina, fare dissections di cadaveri, e questo per avere le basi basi di quello che poi si va a vedere! Poi tutte le tecniche di processing dipendono dal metodo d'indagine che usi, quindi devi conoscere la fisica dietro il K-space per le MRI, i sinogrammi per le CT, come processarli, etc. etc. Un discorso generico ha senso solo per parlarne cosi' sul NG. Io diffiderei di un libro "medical imaging for dummies" LOL :-)
 

 per buona una provocazione ci sia nel mezzo il mare.
 
Capisco che non puoi non riconoscere l'autorita' di chi ti fa l'interview, pero' e' un processo necessario. Il colloquio serve all'intervistatore per conoscere meglio il candidato e al candidato per conoscere meglio il lavoro che andra' a fare. In un colloquio, le parti sotto esame sono sempre due.
 
Se uno ti fa la domanda di Freddy ("dimmi come fai a sapere se un numero e' palindromo"), non e' uno schema rigidissimo, t'ha fatto una domanda. Sta a te gestire la risposta.
 
Nel caso specifico l'esaminatore non ha fatto una domanda brillante (volutamente o meno), e vuole vedere sa lui cosa, e passa a te il gioco. A questo punto sta a te fare la seconda mossa. Lo scrivere "r = isPrime(x)" e' -francamente- una mossa stupida perche' ri-passi il gioco all'esaminatore, senza aver fatto alcuna analisi, senza aver portato nessun contributo tecnico, senza aver ricevuto alcuna informazione sul posto di lavoro che andrai a fare, rispondendo in maniera provocatoria. Fossi stato io l'esaminatore la partita sarebbe stata chiusa qui. T'avrei magari chiesto il perche' di quella risposta, ma solo per curiosita' mia, non t'avrei assunto.
 
Fossi stato io l'esaminando, invece, avrei chiesto il perche' di quella domanda. Avrei sicuramente detto qualcosa del tipo "il problema che mi chiede e' mal posto, perche' prevede risposte molto diverse in base al contesto. Per poterle dare una risposta corretta ho bisogno di piu' informazioni sul contesto", e avrei rigirato la domanda per capire di piu' dell'azienda, perche' mi hanno fatto quella domanda, che rilevanza ha la domanda sul lavoro che andrei a fare.
 
Se mi risponde, "no e' solo per vedere se sai risolvere questo semplice problema", allora se sono indispettito, lo cazzio enumerando applicazioni importanti di varianti del problema e dicendo che e' superficiale chiamarlo semplice e spiegandogli perche', oppure se l'intervistatore m'ha fatto perdere interesse al lavoro gli direi: "si mi hanno chiesto la stessa cosa agli esami di quinta elementare, vuole che le ripeta la risposta che diedi alla maestra all'epoca o vuole che mi ingegni a risponderle in modo diverso?" :-)
 

 fisiologia a medicina, fare dissections di cadaveri, e questo per
 
Già, al solito è principalmente tutta li, nella conoscenza di dominio
spinta, l'impossibilità di contribuire a tanti settori per cui prova
interesse. Le mie conoscenze di fisiologia e biologia sono ferme alle
basi-basi (per altro per soli scopi/interessi sportivi, figurati) e il
tempo extra lavoro non c'è (perché occupato già da logica, algebra e
probabilistica). Comunque posts salvati e grazie delle spiegazioni - non
si sa mai nella vita... !

 Capisco che non puoi non riconoscere l'autorita' di chi ti fa l'interview, pero' e' un processo necessario. Il colloquio serve all'intervistatore per conoscere meglio il candidato e al candidato per conoscere meglio il lavoro che andra' a fare. In un colloquio, le parti sotto esame sono sempre due.
 
è un modo più verboso per dire la stessa cosa che ho detto io.
ma a mio parere per mantenere il colloquio su un piano corretto non c'è
bisogno di fare i "pierini", se non è chiaro si chiarisce ma quando è chiaro
poi si risponde. oppure si dice che non si sa rispondere.

 si sa mai nella vita... !
 
hey hey hey li ho scritti in fretta senza rileggerli, anche questo di su', scritto di getto, spero si capisca il senso :-)
 

te la cavi con quello che non sai.
 
Conoscenza non vuol dire imbottirsi la testa di nozioni, vuol dire
sapere come cercare e dove trovare le informaazioni che ti servono
quando ti servono. Questo me lo diceva un professore 25 anni fa.
 
Tanto per dire...


 Tanto per dire...
 
si ma 25 anni fa quando cercavi un informazione andavi in biblioteca e 
prendevi il libro. magari leggevi solo il capitolo che ti interessava, ma 
almeno leggevi e qualcosa ti rimaneva. ora con la google-cultura ti serve 
l'algoritmo per sapere se un numero è palindromo? cerchi puntuale, lo 
trovi, copincolli e fine della storia. 
oggi sapere come cercare non è più un valore perché è già tutto 
disponibile e soprattutto pronto all'uso. se cerchi gente che lavora così 
ne trovi a bizzeffe, solo che con questi vai poco lontano...
 

 il codice dovrebbe fare, può essere d'aiuto.
 
Guarda, ti dico solo una cosa, conosco una societa' che sta veramente spaccando (Gild) che fa indexing e analisi statica del codice pubblico su Github per dare una "valutazione" dello sviluppatore ai recruiter della Silicon Valley, che appunto spendono bei soldoni per comprare i loro servizi.
Il CTO, putacaso, e' un italiano, Luca Bonmassar. Chi volesse fare 3 chiacchiere con loro li trova a Milano al TAG, dove c'e' il distaccamento di italiani (tra cui il "junior ruby" di cui si parlava proprio qualche mese fa e che aveva fatto scatenare la discussione su Github che hanno assunto qualche mese dopo essere venuto da me).
Linkedin fa da resume volendo. Conta un cazzo e solo uno sciocco o un manager da peso a Linkedin, ma tant'e'. Se fai il programmatore e quello vuoi fare di lavoro, mi dai del codice, anche come repo privato su bitbucket che li da gratis. Altro non mi interessa.
Tantomeno gli indovinelli psicologici del cazzo che per valutare un programmatore non servono ad una beneamata e sono piu' che altro un interdire comico del selezionatore denoantri.
 
  ngw

ne trovi a bizzeffe, solo che con questi vai poco lontano...
 
Che saper cercare non e' un valore non ne sarei cosi' sicuro: bisogna
sapere cosa cercare e come interpretare i risultati e oggi ancora vedo
gente (sia utenti che "engineers") che non sa fare ne' l'uno ne'
l'altro.
 
Quelli che sanno solo cercare li possiamo chiamare copiaincollatori,
ed e' vero, non andranno molto lontano.
 
Ad ogni modo secondo me quanto mi disse il mio professore e' ancora
valido e google dovrebbe essere un complemento: studi qualcosa per
conto tuo (o in un ambiente accademico) e chiaramente non ti
ricorderai tutto a memoria per il resto della tua vita.
 
Pero' ti rimarranno i concetti generali, un'idea generale, in base a
quelli potrai cercare su google i dettagli che ti dovessero servire.
 
Quello che mi viene in mente in questo momento sono concetti di
networking: la differenza generale tra TCP e UDP, uno
connection-oriented e necessita del 3-way-handshake (SYN/SYN-ACK/ACK)e
l'altro no perche' connection-less, piu' tutti i concetti generali
tipo ritrasmissione dei dati, il concetto di sequenza da riassemblare
eccetera eccetera eccetera...
 
Ma non mi ricordo i datagrammi a memoria, il numero di campi, la
lunghezza in byte, i dati aggiuntivi (a uso NAT ad esempio), quelli me
li cerco.
 
Relativamente a un algoritmo, prendiamo i vari algoritmi di sort,
secondo me devi sapere descrivere cosa fanno, poi il dettaglio
implementativo non me lo puoi chiedere di farlo alla lavagna durante
una interview, senza la possibilita' di testare quello che sto
facendo. Anche perche' non siamo piu' abituati a usare carta e penna e
a tracciare il codice e il valore delle variabili a mano come quando
eravamo a scuola...


 interview, senza la possibilita' di testare quello che sto facendo.
 
su questo siamo d'accordo. una domanda del genere fatta ad una scrivania 
può aver senso solo se si chiede di discuterne a voce o, al massimo, di 
buttare giù dello pseudocodice. anche se c'è differenza fra l'esempio 
precedente del numero palindromo e questo degli algoritmi di sort: nel 
primo caso ti verrebbe chiesto di "improvvisare" una soluzione, nel 
secondo di ricordare delle implementazioni universalmente note. secondo 
me, questo esempio di cui si parlava è proprio quello sbagliato per 
parlare del "saper cercare". se chiedessi qualcosa a proposito 
dell'implementazione di un algoritmo è chiaro mi aspetto di valutare la 
capacità di implementare, non la capacità di cercare lo stesso algoritmo 
su internet, cosa alla portata di chiunque. 

 su internet, cosa alla portata di chiunque.
 
scusa la ripetizione, a proposito di copia-incolla: ho ricostruito il 
discorso sul quoting e non ho cancellato il precedente :-)

 parliamo di ben altro.
 
Bè, tra tutte la risposta che più mi è piaciuta è la tua, quando dici: in fondo ogni numero n è palindromo nella base (n-1). Avrei fatto molta attenzione se il selezionatore cita o meno la base di numerazione, nel secondo caso gli avrei sottoposto un bel programma composto da tre righe ... :-)) 

 Se mi risponde, "no e' solo per vedere se sai risolvere questo semplice problema", allora se sono indispettito, lo cazzio enumerando applicazioni importanti di varianti del problema e dicendo che e' superficiale chiamarlo semplice e spiegandogli perche', oppure se l'intervistatore m'ha fatto perdere interesse al lavoro gli direi: "si mi hanno chiesto la stessa cosa agli esami di quinta elementare, vuole che le ripeta la risposta che diedi alla maestra all'epoca o vuole che mi ingegni a risponderle in modo diverso?" :-)
 
Però non è che così il posto lo ottieni, al di là della simpatia od antipatia del singolo esaminatore. 
Anzi, mi viene in mente che anche l'esaminatore, che non è necessariamente uno stupido, può variare le domande in base al tipo umano che si trova di fronte, e farne una provocatoria per vedere la reazione. Nel tuo caso, la sua risposta è: "sei fuori" :-))

 quando ti servono. Questo me lo diceva un professore 25 anni fa.
 
Sottoscrivo. Mi sembra che lo diceva pure Einstein. E se lo diceva lui...

 Sottoscrivo. Mi sembra che lo diceva pure Einstein. E se lo diceva lui...
 
torno a ripetere: anche ai tempi di einstein "cercare informazioni" 
voleva dire andare a spulciare libri, quindi de facto studiare, non googlare e 
trovare puntuale la pappa scodellata da copiaincollare. 

 la reazione. Nel tuo caso, la sua risposta è: "sei fuori" :-))
 
###**$, $&^^, ##@@#.
 


Cos'è, il fumetto del colloquio? :-))

char * ispasQuestion = 
 "On Wednesday, November 20, 2013 11:03:26 PM UTC+11, ispas wrote:\
  > Cos'è, il fumetto del colloquio? :-))";
 
 
reply(ispasQuestion);
 


Eliza> I'm not sure I understand you fully.  Can you elaborate on that? 
 
(ormai carta bianca ai bot :-))
 

 piu' idee per risolvere un problema).


 
 
Il problema si pone quando il candidato ti dice di voler risolvere l'esercizio in python:)
 
s='In girum imus nocte et consumimur igni'.replace(' ','')
s.lower()==s[::-1].lower()

E se lo fanno, questa sarebbe un'indicazione di alta qualit� del suo lavoro?
 
L'ho letto l'articolo. C'e' gente che il proprio lavoro lo fa per
passione e le categorie che mi hai portato come esempio sono proprio
quelle che non calzano.
 
La discriminante qua e' lavorare SOLO per i soldi o ANCHE per i soldi
e c'e' una certa differenza.
 
Quello che lavora SOLO per i soldi non credo che rilasci codice su
github.


 lo fanno, questa sarebbe un'indicazione di alta qualità del suo lavoro?
 
lasciando da parte le questioni ideologiche, penso sia abbastanza 
evidente la differenza fra contribuire a titolo gratuito ad un progetto 
open source e lavorare, sempre a titolo gratuito, per una committenza. se 
uno contribuisce all'os di solito lo fa in primis per se, perché magari 
gli interessa una certa feature implementata o un bug fixato. se non 
altro dimostra che, se si ritrova con un dito il ¢ul0, non lo tiene lì 
solo perché non trova chi gli da 100 euri per sfilarselo...

 c'e' una certa differenza.
 
 
più che altro bisogna sfatare il mito che chi contribuisce all'open 
source è un filantropo disinteressato al profitto. chi lo fa solitamente 
segue comunque un proprio interesse personale, che può essere correggere 
una libreria che utilizza piuttosto che creare una nuova funzionalità che 
gli serve. il fatto che renda liberamente disponibile il lavoro alla 
comunità è anch'esso un modo per dargli visibilità e ricevere feedback, 
se vogliamo anch'esso un investimento professionale. 

 open source e lavorare, sempre a titolo gratuito, per una committenza. 
 
Lo è per te, per me e per la maggioranza di chi legge qui.
Non lo è affatto per il grosso della popolazione dirigenziale italiana.
Ho visto/sentito molte volte sfruttare la passione degli informatici per il 
proprio lavoro al fine di pagarli meno e/o trattarli peggio.
 
Aggiungo un'altra cosa: anche nel caso che chi ti assume conosca bene il fenomeno (o ritenga di farlo) non sempre chi contribuisce all'OS è ben visto nelle aziende. 
Ho personalmente assistito a casi in cui candiati, per ottimi posti, venivano scartati da medio/grandi aziende manifatturiere per paura che il candidato, contributore OS, fosse: 
1) Poco porato non proteggere il Know how aziendale ed ad operare con discrezione
2) Meno concentrato sul lavoro
3) Un fanatico.
 
Non ti dico che concordo ma è un rischio.
 
Ciao
  Francesco

 github.
 
sono un dipendente e la mia azienda mi paga (bene) per rilasciare
 codice open source su github
 
come la mettiamo ?
 
-- 
Soprano
 
 
 
----Android NewsGroup Reader----
http://www.piaohong.tk/newsgroup
 


 
La tua azienda usa l'open source come modello di business (ovvero vende 
i servizi legati all'open source che pubblica)?
 
 

 ha scritto:

Il "core" della soluzione (con tutte le funzioni base,
 installabile e utilizzabile) e' open source e free. L'azienda
 sviluppa e vende estenzioni e servizi specifiche per i vari
 clienti, pi� supporto. Oltre a questo l'azienda ha ovviamente
 voci in capitolo su priorit� nelle release.
 
Il core � parecchio conosciuto e utilizzato nel settore, molti bug
 vengono trovati e segnalati il giorno stesso che
 committiamo.


e vende estenzioni 
 
lol sorry


come la mettiamo ?
 
Bravo, hai vinto una bambolina.	


 Freddy Krueger <inv...@invalid.invalid> ha scritto:

a forza di vivere in barbaropoli ti sei imbarbaropolito :)


a forza di vivere in barbaropoli ti sei imbarbaropolito :)
 
Ti potrei dire che tu sei pagato per rilasciare codice su github e che
la tua passione potrebbe essere zero rispetto a uno che su github
rilascia codice scritto per piacere personale/hobby/per passare il
tempo.
 
Ma stiamo a spaccare il capello in quattro.
 
Magari uno vuole vedere se indenti il codice in maniera compatibile
con quello che si fa nella sua azienda, o altre millemile finezze
simili.
