In un colloquio per Data scientist, ti verranno poste domande volte a verificare le tue capacità di data modeling, risoluzione di problemi e programmazione. Preparati a rispondere a domande di carattere generale che valutano la tua conoscenza della statistica e della scienza dei dati. Dovresti inoltre prepararti a rispondere a domande aperte mirate a testare la tua creatività, le tue doti comunicative e la tua formazione nella programmazione e modellazione dei dati.

63.023Domande dei colloqui per Data Scientist condivise dai candidati

Ecco le 3 domande più frequenti nei colloqui di lavoro per Data scientist e consigli su come rispondere:

Come rispondere: Trasformare i dati in informazioni comprensibili e fruibili è un aspetto fondamentale del lavoro di Data scientist. Con questa domanda i datori di lavoro vogliono capire il tuo backgruond e valutare le tue capacità di data modeling. Elenca e illustra le tecniche di data modeling che preferisci, includendo vantaggi come semplicità d'uso, flessibilità, ecc.

Come rispondere: Domande come questa permettono ai selezionatori di testare le tue capacità di risolvere i problemi. Quando rispondi a domande aperte di questo tipo, non esitare a chiedere chiarimenti o a usare lavagne per dimostrare le tue abilità nel tracciare diagrammi e usare codici. Condividi il tuo processo di pensiero mentre elabori il problema.

Come rispondere: I selezionatori ti porranno domande come questa per testare le tue abilità di programmazione in Python. Ripassa gli elementi fondamentali di Python, come liste, tuple e set prima del colloquio. Dovrai essere in grado di spiegare quando e come ogni strumento deve essere usato da un Data scientist.

Domande per la posizione di Data Analyst...9 gennaio 2020

↳

So if you get any call from a company sating that you are selected then first visit their office get your hard copy of offer letter do some research on google ask people then think. And if anyone is saying you first you need to do certification then it will be final then dont choose that company. They are fooling you by taking your money and wasting your time. Meno

↳

So have you paid money then visited? These are looters.

↳

Ya we will report it to police and cybercrime their all numbers their all Email ids and all from so called company people to specialist learning institute we will report everyones number Meno

Domande per la posizione di Data Scientist...1 marzo 2016

↳

CREATE temporary table likes ( userid int not null, pageid int not null ) CREATE temporary table friends ( userid int not null, friendid int not null ) insert into likes VALUES (1, 101), (1, 201), (2, 201), (2, 301); insert into friends VALUES (1, 2); select f.userid, l.pageid from friends f join likes l ON l.userid = f.friendid LEFT JOIN likes r ON (r.userid = f.userid AND r.pageid = l.pageid) where r.pageid IS NULL; Meno

↳

select w.userid, w.pageid from ( select f.userid, l.pageid from rollups_new.friends f join rollups_new.likes l ON l.userid = f.friendid) w left join rollups_new.likes l on w.userid=l.userid and w.pageid=l.pageid where l.pageid is null Meno

↳

Use Except select f.user_id, l.page_id from friends f inner join likes l on f.fd_id = l.user_id group by f.user_id, l.page_id -- for each user, the unique pages that liked by their friends Except select user_id, page_id from likes Meno

Domande per la posizione di Data Scientist...12 settembre 2013

↳

Bayesian stats: you should estimate the prior probability that it's raining on any given day in Seattle. If you mention this or ask the interviewer will tell you to use 25%. Then it's straight-forward: P(raining | Yes,Yes,Yes) = Prior(raining) * P(Yes,Yes,Yes | raining) / P(Yes, Yes, Yes) P(Yes,Yes,Yes) = P(raining) * P(Yes,Yes,Yes | raining) + P(not-raining) * P(Yes,Yes,Yes | not-raining) = 0.25*(2/3)^3 + 0.75*(1/3)^3 = 0.25*(8/27) + 0.75*(1/27) P(raining | Yes,Yes,Yes) = 0.25*(8/27) / ( 0.25*8/27 + 0.75*1/27 ) **Bonus points if you notice that you don't need a calculator since all the 27's cancel out and you can multiply top and bottom by 4. P(training | Yes,Yes,Yes) = 8 / ( 8 + 3 ) = 8/11 But honestly, you're going to Seattle, so the answer should always be: "YES, I'm bringing an umbrella!" (yeah yeah, unless your friends mess with you ALL the time ;) Meno

↳

Answer from a frequentist perspective: Suppose there was one person. P(YES|raining) is twice (2/3 / 1/3) as likely as P(LIE|notraining), so the P(raining) is 2/3. If instead n people all say YES, then they are either all telling the truth, or all lying. The outcome that they are all telling the truth is (2/3)^n / (1/3)^n = 2^n as likely as the outcome that they are not. Thus P(ALL YES | raining) = 2^n / (2^n + 1) = 8/9 for n=3 Notice that this corresponds exactly the bayesian answer when prior(raining) = 1/2. Meno

↳

26/27 is incorrect. That is the number of times that at least one friend would tell you the truth (i.e., 1 - probability that would all lie: 1/27). What you have to figure out is the odds it raining | (i.e., given) all 3 friends told you the same thing. Because they all say the same thing, they must all either be lying or they must all be telling the truth. What are the odds that would all lie and all tell the truth? In 1/27 times, they would the all lie and and in 8/27 times they would all tell the truth. So there are 9 ways in which all your friends would tell you the same thing. And in 8 of them (8 out of 9) they would be telling you the truth. Meno

Domande per la posizione di Data Engineer...22 maggio 2020

↳

Here is the Python Code (inspired by someone's code on this page): def setUp(word, input_list): word = word.strip() temp_list = [] Ismatch = False if word in input_list: Ismatch = True elif word is None or len(word) == 0: Ismatch = False else: for w in input_list: if len(w) == len(word): temp_list.append(w) for j in range(len(temp_list)): count=0 for i in range(len(word)): if word[i] == temp_list[j][i] or word[i] == '.': count += 1 else: break if count == len(word): Ismatch = True print(Ismatch) def isMatch(word, input_list): return setUp(word, input_list) isMatch('c.t', ['cat', 'bte', 'art', 'drat', 'dart', 'drab']) Meno

↳

bear in mind for your solution, checking the lengths of words in the dictionary is very fast. That's what you can use your setup for. There's no need to iterate through the whole loop of checks if the word fails the length already. See my solution above Meno

↳

This was the fastest I could do without regex: def func(wrd,lst): if len(wrd) not in [len(x) for x in lst]: return False elif wrd in lst: return True else: lst1 = [x for x in lst if len(x)==len(wrd)] for z in lst1: c=0 for i in range(len(wrd)): if wrd[i] != '.' and wrd[i] == z[i]: c=c+1 if len(wrd)-wrd.count('.') == c: return True return False Meno

↳

If you group by parent_id, you'll be leaving out all posts with zero comments.

↳

@ RLeung shouldn't you use left join? You are effectively losing all posts with zero comment. Meno

↳

Here is the solution. You need a left self join that accounts for posts with zero comments. Select children , count(submission_id) from ( Select a.submission_id, count(b.submission_id) as children from Submissions a Left Join submissions b on On a.submission_id=b.parent_id Where a.parent_id is null Group by a.submission_id ) a Group by children Meno

Domande per la posizione di Data Scientist...23 marzo 2017

↳

All these supposed answers are missing the point, and this question isn't even worded correctly. It should be lists of NUMBERS, not "objects". Anyway, the question is asking how you figure out the number that is missing from list B, which is identical to list A except one number is missing. Before getting into the coding, think about it logically - how would you find this? The answer of course is to sum all the numbers in A, sum all the numbers in B, subtract the sum of B from the sum of A, and that gives you the number. Meno

↳

select b.element from b left join a on b.element = a.element where a.element is null Meno

↳

In Python: (just numbers) def rem_elem_num(listA,listB): sumA = 0 sumB = 0 for i in listA: sumA += i for j in listB: sumB += j return sumA-sumB (general) def rem_elem(listA, listB): dictB = {} for j in listB: dictB[j] = None for i in listA: if i not in dictB: return i Meno

Domande per la posizione di Data Engineer...22 maggio 2020

↳

if l == sorted(l) or l == sorted(l,reverse=True): print(True) else: print(False) Meno

↳

python solution. inc = dec = True for i in range(len(nums)-1): if nums[i] > nums[i+1]: inc = false if nums[i] < nums[i+1]: dec = false return inc or dec Meno

↳

An array is monotonic if and only if it is monotone increasing, or monotone decreasing. Since p = A[i+1] for all i indexing from 0 to len(A)-2. Note: Array with single element can be considered to be both monotonic increasing or decreasing, hence returns “True“. --------------------Python 3 code---------------------- # Check if given array is Monotonic def isMonotonic(A): return (all(A[i] = A[i + 1] for i in range(len(A) - 1))) # Test with an Array A = [6, 5, 4, 4] # Print required result print(isMonotonic(A)) Meno

Domande per la posizione di Data Scientist...9 maggio 2016

↳

Can't tell you the solution of the ads analysis challenge. I would recommend getting in touch with the book author though. It was really useful to prep for all these interviews. SQL is a full outer join between life time count and last day count and then sum the two. Meno

↳

Can you post here your solution for the ads analysis from the takehome challenge book. I also bought the book and was interested in comparing the solutions. Also can you post here how you solved the SQL question? Meno

↳

for the SQL, I think both should work. Outer join between lifetime count and new day count and then sum columns replacing NULLs with 0, or union all between those two, group by and then sum. Meno

Domande per la posizione di Data Analyst...23 marzo 2013

↳

I gave a kidney to a sick little girl who was on the verge of death, Her parents could not afford the operation so I performed the operation myself, I am a pizza delivery man with just a pair of scissors. Meno

↳

Time. I spent an afternoon in an assisted-living home and helped with the Bingo tournament. It was all the rage and my ounce of time is immeasurable to those who need it the most. Meno

↳

Patience, though it is a virtue, it can be a gift when you try to understand a co-worker rather than gossip, yell or ostracize them. Meno

Domande per la posizione di Data Scientist...29 marzo 2017

↳

For the questions 1: I think both options have the same expected value of 4 For the question 2: Use binomial distribution function. So basically, for one case to happen, you will use this function p(one case) = (0.96)^99*(0.04)^1 In total, there are 100 positions for the ad. 100 * p(one case) = 7.03% Meno

↳

For "MockInterview dot co": The binomial part is correct but you argue that the expected value for option 2 is not 4 but this is false. In both cases E(x) = np = 100*(4/100) = 4 and E(x) = np=100*(1/25) = 4 again. Meno

↳

Chance of getting exactly one add is ~7% As the formula is (NK) (0,04)^K * (0,96)^(N−K) where the first (NK) is the combination number N over K Meno

data engineerstatistical modeling analystresearch scientistdata modelerdata analystdata scienceanalytics managerbusiness intelligence analystmachine learning engineermachine learning scientistquantitative analystquantitative researcherdata mining engineeranalytics consultantdata consultantmodeling engineercomputational biologiststatistical consultantdata mining analyst