Sunteți pe pagina 1din 5

Professional:

1. Poti sa-mi povestesti un pic despre tine ?


Acum 3 ani am facut un training de javascript si m-am angajat la prima firma,
acuma se numeste Life is Hard. Acolo am lucrat pe un proiect, poate ati auzit de
eOkey, folosind AngularJS si ocazionat PHP. Dupa aceea m-am angajat la 3Pillar unde
am lucrat pe diverse proiecte, folosind React, Angular si Node. Unul dintre cele
mai interesante proiecte a fost pentru National Geographic care avea cateva
feature-uri foarte interesante, cum ar fi ca in stanga puteai sa citesti un articol
iar in dreapta aveai imagini sau harti, iar in timp ce faceai scroll harta se
completa cu drumul pe care l-au facut cercetatorii, precum o harta de pirati. Acuma
lucrez pe unul din proiectele de la Cisco, insa nu prea avem taskuri si simt ca
stagnez, si ca sa nu-mi rugineasca skilurile de tot mai lucrez seara la un proiect.

2. Povesteste-mi despre acest proiect.


Sigur. Este vorba de o platforma care genereaza site-uri web folosind un
builder. Ca tehnologii folosesc Angular si Node, iar ceea ce genereaza sunt pagini
statice folosind PUG (Jade).

3. Ce stii despre Greppy ?


Nu tare multe. Am auzit de la un coleg ca de fapt numele firmei este grep.py
si ca faceti mult python. Puteti sa-mi povestiti despre politica firmei ?

4. Ce asteptari ai de la compania noastra ?


Sa pot invata mai mult. Sunt foarte curioasa de Angular si Node si vreau sa
lucrez pe un proiect cu amandoua. Desigur, pot sa invat singura acasa lucrand la
proiectul meu, dar e obositor sa am "2 joburi" in acelasi timp.

5. Care sunt slabiciunile si atuurile tale ?


(Retarded question, interviewer has no idea what she's doing)

6. Ai de gand sa ramai insarcinata in curand ?


Nu ne-am hotarat in privinta asta inca. Momentan si eu, si sotul meu, ne
concentram pe cariera noastra, si trebuie sa recunosc ca-mi place sa ma distrez. Un
copil ar aduce un sfarsit stilului nostru de viata si nu vrem asta inca.

Note: Evita discutiile despre salariu pana la sfarsitul interviului. Nu raspunde la


intrebari de genul "cat castigi acuma", "cate zile de concediu mai ai" si nu
mentiona de vacanta din Thailanda.

7. Cum te-ar descrie prietenii tai ?


(Retarded question, try to be funny)

8. Folosesti cod de pe GitHub sau Stackoverflow ? Contribui ?


Folosesc foarte des dar nu am contribuit niciodata. (Simple and honest this
time)

Note: Raspunde la intrebari cu incredere (chiar si atunci cand nu esti sigura pe


tine) si fi naturala. Ia-ti cateva secunde sa te gandesti cand trebuie sa
povestesti ceva, precum un challenge pe care l-ai avut sau ceva ce te-a enervat.
Respira adanc si vorbeste normal, poti incerca sa faci o gluma sau sa fi
sarcastica, it's all good.

9. Ai intrebari pentru noi ?


- voi putea lucra pe un proiect cu tehnologiile pe care mi le doresc sau dupa
2 luni voi fi mutata pe Backbone sau altceva ?
- cum isi petrec colegii vostri pauzele ?
-
10. Povesteste-mi cateva proiecte la care ai lucrat si ce ti-a placut la ele.
Note: La genul asta de intrebare povestesti business-ul aplicatiei si challenge-ul
care ti-a placut
National Geographic, dupa cum am zis mai devreme, un site cultural care mi-a
si dat batai de cap cand am implementat harta cu articolele ce se incarcau lazy
loading, eOkey care a fost primul meu mare proiect pentru care pot sa zic ca totul
a fost nou si super interesant, iar acum pe proiectul de la Cisco, din pacate nu va
pot da multe detalii deoarece nu vreau sa incalc NDA-ul, dar ce pot sa va zic este
ca am folosit ultimile tehnologii, dedicam mult timp sa testam fiecare feature,
facem scram in fiecare zi, in mare este foarte strict si precis.
Definition: NDA - Non Disclosure Agreement - un contract prin care esti deacord sa
nu oferi date sensibile din afacerea clientului

Note: Daca mentionezi de NDA si nu dai detalii multe, angajatorii vor avea mai
multa incredere in tine si ca nu vei imparti informatiile cu oricine.

11. Ai zis ca ai lucrat cu Node, ce ne poti spune despre asta ?


Nu pot spune ca e o diferenta uriasa intre a lucra pe front-end sau back-end
cu javascript. Marea diferenta o fac librariile pe care le folosesc, de exemplu:
Express pentru a crea rute, restrictiona acces, pentru a crea un API, Mongoose,
care este un ORM pentru MongoDB, pe care l-am folosit sa-mi creez structura bazei
de date impreuna cu toate functiile pe care le ofera (find, findOne, update, save,
etc), Multer pe care l-am folosit sa trimit fisiere catre server, PUG ca sa creez
fisiere HTML din template-uri pe server in loc de front-end, si multe altele.
Definition: ORM - Object Relationship Mapping - adica exista un tabel in baza de
date care arata exact ca obiectul tau si mapeaza fiecare coloana din tabel
(username, password, etc) la un field din obiect.

Note: Daca vrei sa mai insiri librarii poti mentiona: mailer (trimite emailuri
catre GMail, Yahoo, etc), moment (precizie si parsare de timp), request (trimite
requesturi catre un alt server), socket.io (web-sockets), fs (file system - crezi
fisiere, stergi, modifici, etc)

12. Unde te vezi in urmatorii 5 ani ?


(Retarded question) Cel mai probabil ca team-lead sau chiar arhitecta pe un
proiect. Nu prea am inclinatii spre project management.

13. Poti sa-mi descrii procesul prin care rezolvi un bug ?


Ah, depinde foarte mult de bug. Dar ca sa incerc sa fac o generalizare, intai
incerc sa-l reproduc apoi incerc sa-i gasesc cateva simptome: ma uit in consola
daca este vreo eroare, verific in network daca requesturile se executa in ordine,
daca sunt url-urile corecte, metodele corecte (GET, POST, etc), daca se trimit
datele care trebuie si daca primesc de la server ce ma astept, urmaresc codul linie
cu linie pana ajung la o discrepanta. Alteori ma uit in DOM, nu o data mi s-a
intamplat ca codul sa fie corect dar actiunea sa fie ascunsa din cauza unei clase
de CSS gresita. Alteori e o problema de pointeri, dar cele mai frecvente sunt
cazurile in care cineva a scris gresit un cuvant.

14. Ce tool-uri folosesti pentru a depista bug-urile ?


Consola si browserul. Nu am nevoie de nimic mai mult.

15. Ai fi dispusa sa lucrezi peste program cand e nevoie ?


De ce, e un lucru care se intampla frecvent ?
Nuuuu, nu, doar intreb.
Atunci sunt dispusa s-o fac intr-o situatie exceptionala, dar in niciun caz
nu va deveni o obisnuinta.

16. Cat de confortabila esti in a scrie HTML si CSS ?


(Red flag) Ma descurc destul de bine cu amandoua insa sper ca nu in asta
consta acest job.

Note: Arata ca esti dispusa sa ajuti in cazuri grave, nu ca te doare-n cot, dar
exprima ferm faptul ca te astepti ca asta sa nu se intample.

Technical:

Note: Cand nu stii un raspuns incearca sa zici ce crezi ca ar fi decat sa spui "nu
stiu". Efortul este mult apreciat, inseamna ca ai incercat, indiferent daca
raspunsul e la o mila distanta.

1. Ce este REST ?
Un protocol de comunicare intre client si server folosind ajax. In standard-
ul REST se gasesc metodele de GET (Read), POST (Create), PUT (Update) si DELETE
(Delete). Altele de mentionat ar fi OPTIONS si PATCH.

2. Care este diferenta intre Null si Undefined ?


Undefined este o valoare global setata de javascript cand o instanta nu
primeste valoare, iar null este o valoare setata de programator sa indice ca
valoarea a fost stearsa.

3. Ce este Delegation ?
Delegation e des intalnit la meniuri sau liste, dar nu numai. In loc sa
atasezi un event listern, de exemplu click, pe fiecare item in parte, atasezi unul
singur pe parinte si delegi itemurile, astfel incat sa optimizezi codul.

4. Cum rezolvi un closure in loop ?


Pui un self executing function in loop:

let array = [1, 2, 3]


for (let i = 0; i < array.length; i++) {
setTimeout(function() {
console.log(i); // 3 3 3
}, 100);
}

for (let i = 0; i < array.length; i++) {


(function(index) {
setTimeout(function() {
console.log(index); // 0, 1, 2
}, 100);
})(i);
}

5. Ce sunt socketurile ?
Socketurile sunt canale de comunicare persistente prin care clientul si
serverul pot timite mesaje oricand, de exemplu daca ai nevoie de notificari in real
time sau chat.

6. Ce este long pool ?


Solutia preistorica a socketurilor. Clientul face un request la care serverul
va raspunde daca are date noi. De indata ce datele sunt primite sau requestul
expira, se face un altul.

7. Ai folosit vreodata prototype ?


Nu, dar inteleg conceptul. Atasezi functii si variabile unui obiect, e
echivalentul creari claselor in alte limbaje sau ceea ce face typescript acuma.

8. Ce este CORS ?
Cors este un protocol care permite share-urirea de resurse intre domenii.

9. Ce optimizari ai face ca sa cresti performantele unei aplicatii web ?


Optimizarea de imagini, cel putin pentru mobile si desktop.
Minifierea fisierelor de css si js, iar daca HTTP 2 nu este disponibil,
combinarea lor intr-un singur fisier.

Note: Mentioneaza cu orice ocazie de tool-uri pe care le folosesti: Atom ca IDE,


librarii precum color picker, file upload, harta, etc.

10. Ce sunt si daca ai folosit vreodata SVG-uri.


Nu am folosit, dar sunt imagini vectoriale generate folosind o formula
matematica. In general sunt folosite atunci cand se doresc animatii, dar procesul
de creare a unui SVG e destul de lung.

11. Care este diferenta intre bind, apply si call ?


Toate 3 fac o functie sa fie apelata de oricine este desemnat ca "this". Bind
creaza o functie noua ce poate fi apelata oricand in timp ce Call si Apply apeleaza
functia in acel moment. Diferenta intre Apply si Call este ca unul primesti
parametrii insiruiti normal, dupa this, iar cealalta primeste un array in care se
afla toti parametrii.

12. Cum creezi CSS responsive ?


Daca va referiti la framework-uri, Bootstrap. De obicei aplicatiile pe care
le fac sunt atat de custom incat Bootstrap nu ma ajuta, asa ca-mi fac propriul meu
CSS responsive avand flex la baza. Flex este un atribut destul de nou dar suportat
de toate browserele care, impreuna cu width, max-width si min-width, poate face un
design responsive foarte usor si fara batai de cap.

Note: La toate intrebarile tehnice, chiar daca nu stii exact care-i raspunsul
incearca sa faci o asociere cu altceva ce stii. De multe ori o sa vezi ca stiai
doar ca au folosit termeni la care nu te asteptai.

13. Cu ce te ajuta atributul de "data" intr-un tag ?


Atributul data este folosit pentru a asigna valori custom unui tag, spre
exemplu de identificare sau valori ascunse.

14. Poti sa-mi spui cateva API-uri din browser pe care le cunosti ?
Media API, Application Cache API, History API, Local Storage API, Geolocation
API, etc.

15. Cum creezi un link catre un element din aceeasi pagina ?


Tagului de <a> va contine ca redirect un url care incepe cu # si se continua
cu un id care exista in aceeasi pagina. In acest caz, pagina se va deschide direct
la id sau va face scroll la el.

16. Care este marea diferenta intre visibility: hidden si display: none ?
Visibility va ascunde obiectul dar inca va ocupa spatiul alocat lui, in timp
ce display nu.

17. Ce este event bubbling ?


Event bubbling este ideea ca un event trece prin mai multe controllere,
precum o bula de aer prin mai multe straturi de apa. Mai exact, daca atat un tag
cat si parintele sau are atasat cate un event listener de click, ambele vor fi
apelate in ordinea importantei, intai cel de pe tag apoi cel de pe parinte. De
asemenea, acest concept se aplica si pentru cand ai mai multe event listenere
atasate aceluiasi tag, ele executandu-se in ordine. Aceasta ordine poate fi oprita
folosind functia de stopPropagation.
18. Ce este o functie anonima ?
O functie fara nume. (doooh)

19. Ai auzit de MVC ? Dar de MVVM ?


Ambele sunt design patterns. MVC inseamna Model View Controller si presupune
ca ai un Model, sa zicem un obiect user cu username si password, un View, sa zicem
un formular cu cele 2 field-uri, si un Controller, o clasa de javascript care
injecteaza datele din model in view si invers. MVVM este foarte asemanator doar ca
lipseste controller-ul, lucru des intalnit in framework-uri precum Angular.

20.

Foreign Languages

1. Ce limbi straine cunosti ?


Engleza, etc, si romana (poti sa fi funny aici, etaleaza-ti umorul).

2. Poti sa-mi spui ceva in engleza ?


Sure. Let me see (gandeste-te vreo 2-3 secunde)... I enjoy reading, quite a
lot, mostly romantic or adventure stories. One of my colleagues recommended me a
fantasy book, not a huge fan, but I gave it a shot and to my surprise I actually
enjoyed it more than I thought I would. So far I think I've read over 100 books.

S-ar putea să vă placă și