Newsgroup: it.lavoro.informatica
Titolo: If you were a brick in a wall which brick would you be and why?

Vere domande da colloquio, qualcuna veramente carina :
Microsoft Software Development Engineer in Test : How would you move
Mount Fuji?
Acquity Group Business Analyst : Tell me how you would determine how
many house painters there are in the United States?
Apple Software Engineer : If I put you in a sealed room with a phone
that had no dial tone, how would you fix it?
Qui la lista completa :
http://www.businessinsider.com/25-real-job-interview-questions-you-dont-want-to-be-asked-2009-12#what-was-your-best-mcguyver-moment-1
E qui una selezione di quelle di google :
http://www.businessinsider.com/15-google-interview-questions-that-will-make-you-feel-stupid-2009-11#how-many-golf-balls-can-fit-in-a-school-bus-1
http://www.businessinsider.com/15-more-google-interview-questions-that-will-make-you-feel-stupid-2009-11#every-man-in-a-village-of-100-married-couples-has-cheated-on-his-wife-1
E per chi dice che non bisogna fare domande tecniche ai colloqui  :
Interviewed Oct 2009 in Seattle, WA ﻿(took a day)
Recruiter called and setup interview with one of team manager.
Interview was on the phone ad Microsoft live meeting.
He asked about SQL server data structure :  Ask me to write code to
sort binary array in single pass. e.g. (0,0,1,1,0,0,1,1).
http://www.glassdoor.com/Interview/Microsoft-Interview-Questions-E1651.htm
qui more interview :
http://www.glassdoor.com/Interview/software-development-engineer-interview-questions-SRCH_KO0,29.htm

 Mount Fuji?
Salgo su una mongolfiera e aspetto?!? :-)


Boh! Io risponderei : un camion per volta ;-)


Parlano di C#, ma immagino che la soluzione Array.Sort(bitArr); non vada 
bene... :-)
Volendo tirarne fuori una che si passi l'array una volta sola, a me è uscito 
una cosa così:
int i= 0; int n= bitArr.LastIndexOf(0);
while (i < n) {
  if (bitArr[i]) {
    bitArr[n]= bitArr[i];
    bitArr[i]= 0;
    n= bitArr.LastIndexOf(0);
  }
  i++;
}
Ma non ho modo di provarla da dove sto scrivendo, ma la logica mi pare 
chiara.
Altre idee?


Toh, invece di iniziare a 0 è anche più giusto fare:
int i=bitArr.IndexOf(1); int n= bitArr.LastIndexOf(0);


O ancora meglio:
i= bitArr.IndexOf(1);
n= bitArr.LastIndexOf(0);
if (i > 0 && n > 0) {
  while (i < n) {
    bitArr[n]= bitArr[i];
    bitArr[i]= 0;
    i= bitArr.IndexOf(1);
    n= bitArr.LastIndexOf(0);
  }
}

 n= bitArr.LastIndexOf(0);
[cut]
oppure dichiari un array di pari dimensione e cominci a riempirlo dal
fondo con gli uni che trovi, il resto sono zeri di conseguenza :
ArrayDato[n]
newArray = new Array[n]
Conta = n
for i = 0 to arrayDato.lunghezza
  se arrayDato[i] = 1 allora
     newArray[Conta] = 1
     Conta = Conta - 1
loop
PS: un accenno di questo metodo è nel sito non è mia

 PS: un accenno di questo metodo � nel sito non � mia
Per me la risposta giusta �:
Che senso ha ordinare un vettore composto integralmente da uno e zero?
-- 
Ciao!
Luca

 Che senso ha ordinare un vettore composto integralmente da uno e zero?
Beh, potrebbe essere che il vettore e' in realta' un vettore di strutture di 
cui 1 e 0 sono la chiave da ordinare, e quindi vengono fuori tutti gli 
inghippi del sort come sort stabile, in place, etc. 
Forse la domanda e' un po' per verificare quello.

Forse la domanda e' un po' per verificare quello.
Perche' dovresti fare un sort?
Computazionalment parlando dovrebbe esserre meno oneroso contare il
numero di 0 e di 1 e popolare il vettore di conseguenza.
Saluti.
-- 
Living in Barbaropoli
http://www.barbaropoli.com

Freddy Krueger wrote:

Vero, ma quello che dicevo io era che 0 e 1 potrebbero essere solo una parte 
dei dati. Se e' un vettore puro e semplice, sono d'accordo con te. Ma se 
quegli 0 e 1 sono chiavi con "attaccati" dei dati (cosa che non so, non ho 
guardato il sito linkato), allora ordinare (e "come" ordinare) potrebbe 
essere importante.


Mmmmh, si, qui di sicuro l'array � passato 1 sola volta (le mie chiamate di 
"libreria" a LastIndexOf e IndexOf ovviamente poi sono implementate 
percorrendo a loro volta l'array in un senso o nell'altro, quindi nel 
complesso l'array � spazzolate enne volte), anche se c'� lo scotto di dover 
dimensionare un nuovo array che faccia da risultato.

 
Per sport? :-)

AleTV wrote:

Meglio ancora: per fare una domanda "intelligente" in un colloquio di 
lavoro? :)

essere importante.
Neanche io ho guardato i siti linkati, e' solo che a volte durante un
colloquio quando ti fanno una domanda non sempre si aspettano una
risposta da manuale e se non c'e' niente da ordinare il quicksort non
ti serve... :)


 fondo con gli uni che trovi, il resto sono zeri di conseguenza :
anch'io avrei fatto cos� ... 

 Salgo su una mongolfiera e aspetto?!? :-)
e cosa aspetti, neuronegenerico, il tramonto ?

 Mount Fuji?
un libro che ha come soggetto le "interviste impossibili"  e come
titolo proprio questa domanda e' su gigapedia per chi fosse
interessato..

 Per sport? :-)
Avevo dimenticato una parte del messaggio (ossia un bel ;-) ). Pero'
noto con piacere che tu l'hai letto giusto! :-)
-- 
Ciao!
Luca

 n= bitArr.LastIndexOf(0);
Sei comunque fuori dai requisiti. Tu giri in O(n^2),
loro vogliono che non solo tu sia in O(n), ma che lo fai anche in una
*sola* passata.
    public void sort() {
        int startIndex = 0;
        int endIndex = ba.length() - 1;
        while(startIndex < endIndex) {
            if(ba.get(startIndex) & ba.get(endIndex)) {
                endIndex--;
            } else if(ba.get(startIndex)) {
                ba.set(startIndex, false);
                ba.set(endIndex, true);
                startIndex++;
                endIndex--;
            } else if(ba.get(endIndex)) {
                startIndex++;
                endIndex--;
            } else {
                startIndex++;
            }
        }
    }
-- 
-riko


Clap clap, molto bella.

 Mount Fuji?
Domanda interessante: vogliono sapere come reagisci quando ti chiedono
di fare una cosa impossibile, di cui hanno solo una vaga idea e
l'unica cosa che hanno ben chiaro in testa e' che la vogliono pronta
entro ieri! Io risponderei cosi':
"the state of art of mountain relocation is based on the physical
movement of the original mountain using a top down approach (i.e.
disassemble/assemble the mountain in different places). Physical
moving is an efficient straightforward approach. However, using
physical relocation the completion time cannot be estimated because of
many unavoidable political/legal/social issues (such as, due to the
claimed induced risks of natural catastrophes in the reconstructed
area). Also, the costs of multiple relocations is multiplied by the
number of relocations. As a software engineer I would recommend to set
a virtual environment and perform the Mount Fuji relocation within the
virtual environment. Using my approach the risks of legal impediments
would be minimized and it would be possible to estimate the completion
time (you want it done by yesterday, don't you?).
Also, despite the initial costs of setting a virtual environment (in
the same order of physical relocation) further mountain relocations
would be inexpensive in terms of money and time."

 "the state of art of mountain relocation is based on the physical
Io invece risponderei, a scelta:
"If you're asking that question, maybe you're misunderstanding the problem 
or its requirements. What are you trying to accomplish?"
"Due to earth rotation, Mount Fuji moves at about 1370 Km/h *already* 
(magari con formuletta per calcolarlo, se non fosse tempo perso con certa 
gente). And I'm deliberately excluding the effect of general universe 
expansion and some other minor factors. You should really do your homework 
before asking this kind of questions. Maybe you meant "How would you STOP 
mount Fuji?" Sorry, that's impossible. Wrong question, again."
"Ask David Copperfield. He's very good at this kind of things."
"Just throw some atomic bomb at it. After enough bombs, I'm pretty sure at 
least part of it will have moved. Hey, you guys did that already some 60 
years ago in Japan if I'm not mistaken?"
"My cat's name is "Mount Fuji". I move him around all day when I'm at home."
"Outsorce the job to some external company; get credit if they succeed, 
blame them if they fail."
"Just embrace and extend standard geography and insist that Mount Fuji is in 
America, despite all those maps still claiming it is in Japan. Start selling 
millions of maps with Mount Fuji in America, and hope that it eventually 
becomes a standard." 
"Get some 1:100000 model of it (you didn't say it has to be the real one, 
did you?). That's easier to move around."
"Just get some 500000 people (preferrably chosen among retarded recruiters, 
managers, CEOs, sales, etc., of which there are so many) and ask them to do 
it for you. Hey, Egyptians built pyramids 3000 years ago, after all."
In tutti i casi, ovviamente, la conclusione e' alzarsi, salutare e andarsene 
(anche se purtroppo non servirebbe a cambiare le cose, ma almeno la 
soddisfazione personale...).

 Io risponderei cosi':
Assunto. Senza se e senza ma.

 soddisfazione personale...).
Beh, una tale reazione ad una domanda impossibile sarebbe effettivamente
una risposta completa al quesito. E dubito che la domanda sia stata
posta per ignavia o per caso, ma proprio per sperimentare la reazione
del candidato di fronte ad una richiesta impossibile.

 del candidato di fronte ad una richiesta impossibile.
Benissimo, allora dovrebbero chiedere onestamente: "il cliente ti fa una 
richiesta impossibile; cosa fai?", anziche' rendersi ridicoli. (e, tra 
parentesi, chiunque abbia sostenuto almeno un paio di colloqui sa benissimo 
quali sono le risposte che i recruiter vogliono sentire dai candidati, e 
parte del successo in un colloquio e' proprio dire le cose che vogliono 
sentirsi dire. Il che rende quel tipo di colloqui ancora piu' inutile. 
Triste, ma lo dico per esperienza personale, anche se so che per fortuna nn 
sempre e' cosi'.)
Nel caso non si fosse capito, ero volutamente polemico.

 Nel caso non si fosse capito, ero volutamente polemico.
Nelle interviste non � bene essere n� volutamente polemico n� insolente.
Anche di fronte a domande assurde si devono dare risposte tecniche, e
delineare un possibile metodo per affrontare il problema. Questo ha
senso a prescindere dal fatto che il problema sia risolvibile o assurdo.

 senso a prescindere dal fatto che il problema sia risolvibile o assurdo.
Quale parte di *volutamemte polemico* non ti e' chiara? Dai, sono curioso di 
sentire qualche altra lezione di vita.

 sentire qualche altra lezione di vita.
Quella che in fase di selezione non lo si ï¿œ mai, a prescindere da quanto
si sia convinti che gli altri siano dei ritardati. E, nel caso ti sia
sfuggito, questo era il tema della discussione, che proponeva casi reali
di interviste reali (per quanto ne possiamo dire), alle quali tu hai
risposto: "Io invece risponderei, a scelta:".

 meritato calcio in (_!_)
IMHO vi state accapigliando per niente! ;-)
IMVO Marco ha dato una risposta scherzosa (alcune erano simpatiche),
nisciunu l'ha preso sul serio.
Seriamente parlando, pero', non posso non dare ragione a Nisciuno:
lavorando in piu' ambiti (medico/biologico/informatico) e gestendo
principalmente la parte informatica di diversi progetti, mi trovo
tutti i giorni di fronte allo smistamento di richieste assurde da
parte di medici, biologi, matematici & compagnia cantante: ma non e'
per loro incompetenza o altro, semplicemente hanno una vaga idea di
cosa fare, azzardano delle soluzioni che per loro sembrano le piu'
semplici (ma in realta' son cose assurde, ma loro non essendo del
campo non possono saperlo) o usano buzzwords giusto per far vedere che
qualcosa la sanno anche loro. Tutto sta nel trovare un accordo, che
non li metta a disagio (cosi' come loro non mettono a disagio me con
cose di loro pertinenza) faccia perdere meno tempo possibile e non si
lasci scappare la commissione o il finanziamento.
Se si rivolgono ad un software engineer, e' ovvio che vogliono una
risposta da software engineer, altrimenti sarebbero andati da un
idraulico o un carpentiere!
"quel monte laaaa' devi metterlo quaaa!! C'e' da spostare una
montagna" (pseudo cit. Salvi?) son cose che mi chiedono tutti i
giorni, ma in realta' non vogliono veramente le montagne spostate,
tutto sta a capire cosa vogliono... il mio ex capo (ora m'ha ceduto il
suo posto) m'ha fatto una specie di dizionario (LOL) con a destra il
tipo di richieste, ed a sinistra quello che effettivamente vogliono
dire con quelle richieste! :-))))

 dire con quelle richieste! :-))))
� postabile? Credo sarebbe molto interessante e spassoso!  :-)

 postabile? Credo sarebbe molto interessante e spassoso!  :-)
mah, per chi non lavora qui non e' che sia ne' interessante ne'
spassoso, non e' uno "stupidario", ma semplicemente come alcune
persone chiamano alcune cose in un modo invece che un altro. Per
esempio c'e' chi intende "generate a 3d model" come "image
segmentation" o "mathematical model" per "centerline extraction", e
via discorrendo. Certo che pero' se uno ti chiede una cosa e s'aspetta
un'altra, alla fine a perderci si e' entrambi, meglio sapere di cosa
si sta parlando.

 dire con quelle richieste! :-))))
Puoi condividere sto dizionario?  :)
per il resto, hai ragione.
ciao,
Gabriele

 soddisfazione personale...).
Ma perché ? Imho lo scopo della domanda è proprio rompere i canoni
della classica intervista, una domanda del genere prescinde dalla
preparazione tecnica e mostra i tuoi soft skills : la capacità di
rispondere ad una domanda assurda in primis.
E le differenze emergono subito. C'è chi la prende dal lato tecnico e
cerca una soluzione tecnica, chi immagina subito che ci sia un
tranello, chi la prende come una idiozia e risponde con un'altra
idiozia...

[cazzate a raglio]
Ok, visto che non lo capisci da solo, e' inutile che io continui. 
(se non sai cosa vuol dire, fattelo spiegare da qualcuno)
Mi vedo costretto a fare come si fa coi ritardati, ossia a darti ragione. E' 
vero, io vado in giro a offendere la gente e a dare del ritardato a tutti. 
Quindi mi sento autorizzato a darti del ritardato e della testa di cazzo, 
nonche' a mandarti affanculo, e questo non dovrebbe stupirti visto come mi 
hai dipinto nei tuoi deliri che chi vorra' potra' andarsi a rileggere con 
calma.
Il periodo ipotetico inizia col "se", e di solito (anche se non sempre) usa 
tempi ipotetici, non il passato prossimo, coglione che non sei altro (e 
ignorante). 
http://it.wikipedia.org/wiki/Periodo_ipotetico
, nel caso tu 
voglia ulteriormente constatare quanto sei ritardato.
Ah, e poi non e' che un errore fatto da un madrelingua smetta di essere un 
error, ma lo capisco nell'ottica della tua logica italiota del "lui fa male, 
allora posso farlo anch'io".
Auguri per i tuoi problemi (che, ricordalo sempre, sono solo tuoi).
*plonk*
"Ma chi hai plonkato?"
"Ah, nisciuno, non preoccuparti"
(ROTFL)

 idiozia...
La mia opinione in merito e' che, non essendo all'asilo ne' al circo (anche 
se nell'IT, a volte...), quelle domande hanno poco senso. E' solo la mia 
opinione (come spero dovrebbe essere chiaro, ma forse non per tutti), e non 
significa che io vada in giro a rinfacciarlo alle persone durante i 
colloqui. Come dicevo sopra, io stesso in passato sono stato al gioco quando 
mi capitavano domande che io ritenevo stupide in un intervista, soprattutto 
quando il posto in ballo mi interessava, e probabilmente lo rifarei, perche' 
comunque non vedo nessuna utilita' nel dare una cattiva immagine. 
Il tutto pero' non significa che non mi renda conto che lo faccio perche' so 
che "si deve fare/rispondere cosi'", e dentro di me rimango convinto che 
quelle domande abbiano poco senso.