Am o intrebare banala pentru cei care vor sa se angajeze ca incepatori, si sunt absolventi care nu stiu sa raspunda: “Care e diferenta intre o clasa si un obiect?”
Voi ce intrebari aveti pentru a separa “graul de negina” ?
Am o intrebare banala pentru cei care vor sa se angajeze ca incepatori, si sunt absolventi care nu stiu sa raspunda: “Care e diferenta intre o clasa si un obiect?”
Voi ce intrebari aveti pentru a separa “graul de negina” ?
clasa → schita (ca la o casa)
obiect → treaba concreta
La oop se poate folosi si analogia cu lumea reala Si chiar pe baza acestui lucru, poti sa decizi cat sa modelezi.
Parerea mea, evident.
LE: Nu am momentan intrebari din astea
Stai ca n-am vrut sa aflu raspunsul, am vrut sa aflu alte intrebari, ca am de testat niste studenti in cateva zile
diferenta intre private/protected
diferenta intre interfata/clasa abstracta
tipuri de data
structuri de date
…
Ah, da, diferenta intre “struct” si "union"in C, sau “care sunt cele 2 moduri de definire a structurilor in C”. Clasa a 10-a. Bune intrebari.
well, lucrand cu tot felul de seniori am ajuns sa inteleg de ce se pun genul asta de intrebari, aparent banale, la un interviu.
Stii un algoritm de sortare fara comparatie ? (bine ca si fapt divers, 90% din oameni n-au treaba cu asta)
Pe ce job vrei totusi sa angajezi? IT e un domeniu larg - junior DBA !== junior SWE.
Chiar si la SWE, pentru o pozitie in care se foloseste cu precadere C, o intrebare “clasa vs obiect” poate nu-si are rostul (zic si eu - realist toata lumea ar trebui sa stie).
Depinde si de compania care face angajarea intr-o masura. “Companiile de top” () isi permit sa fie mult mai selective la angajarea de juniori - cauta care pot da dovada ca au experienta in acele cateva domenii pe care le poti stapanii in scoala (algoritmi, cunostinte de SO/sisteme/ML/matematica in diversele ei forme/statistica/etc, proiecte OSS, etc).
In general pe partea de “early career” cauti potential. Vrei sa raspunzi la intrebarea “o sa fie omul asta o aditie buna echipei in X luni/ani”? Checklist-uri de intrebari pot fi o parte din asta, dar zic ca mai degraba ar trebui sa te uiti dupa cat de serios e omul sa invete si sa munceasca, cat de autodidact este, daca are o atitudine de “owner” sau nu (ie mentalitate de genul “la scoala nu m-au invatat asta” vs “nu m-am intalnit cu problema asta, dar studiez si revin”), cat de self-directed este, etc.
Un truc bun e sa vorbesti despre “ce stie sa faca” si ce a explorat de capul sau pana acum. Poate ca e bazat pe embedded mult ca acolo i-a placut sa exploreze, dar habar n-are de “SOLID” sau zice ca Java-i doar o insula. Daca iei cu un checklist poti rata pe cineva misto.
algoritmii se pot invata. personal eu nu cred ca mai stiu ceva din ei. n-am avut motive sa-i folosesc, i-am uitat. acu cca 2 ani ma jucam cu un arduino si a trebuit sa implementez un sort. mi-a luat 20 de minute. deci, sunt irelevanti. mai bine intrebi chestii de baza sa vezi cum gandeste. e mai usor sa memorzi un algortim decat sa intelegi concepte.
N-am intrebat de un algoritm de sortare, am intrebat daca stie de un algoritm de sortare fara comparatie. Ceea ce e o smecherie faina, arata ca te intereseaza ciudatenii din domeniul tau. Daca gasesti pe cineva care stie, stii si tu ca ai deaface cu cineva interesant.
O alta intrebare faina e daca stie de regex si cum functioneaza. (nu sa stii efectiv sa scrii un matcher, ci doar sa intelegi ca e vorba de backtracking in spate, care e foarte ineficient si ca nu e o idee buna sa il folosesti peste tot) Daca a facut o validare sigur a dat de regex si poate a fost destul de curios sa afle ce face de fapt functia aia de match. (sa nu zic nimic de awk/grep/sed daca vrea sa fie devops)
Daca stie de automata theory, finite state machines pornind de la discutia de regex ai in fata clar un posibil programator.
Pentru cei mai incepatori:
OOP ( + SOLID).
Structuri de date si algoritmi - nu ii pun sa implementeze ceva, dar trecem prin “materie” si apreciez cand cineva are idee ce inseamna O(n) (se intampla din ce in ce mai rar…).
Coding exercise Ceva de dificultatea EASY/MEDIUM pe hackerrank. Nu ma astept intotdeauna sa rezolve problema (unii candidati sunt stresati), ii las sa caute pe google (daca au nevoie) si urmaresc procesul de gandire, eventual ii ajut. Am experimentat (la sfatul cuiva) sa iau o problema pe care nu o stiu si sa incerc sa o rezolv impreuna cu candidatul ca echipa - rezultatele au fost mixte (o data am ales o problema prea grea :))).
Din experienta mea, cei mai buni candidati juniori vin doar de la 2-3 facultati. Dupa 2-3 ani, nu mai conteaza facultatea.
Pentru oricine e incepator are “bonus” points daca are la CV un profil de github sau un site de tip portofoliu.
Nasol.
Foarte probabil pentru ca ai sanse din ce in ce mai mici sa-i vezi pe-aia buni cu facultate. Dupa 2-3 ani, incepi sa vezi mai mult rebuturile.
Depinde de job, nu-i așa. De exemplu dacă este vorba despre business software prin web sau api, și mai ales cam tot ce realizezi tu este crud și legat de un framework, atunci întrebări despre algoritmi sau ceva mai profi, gen examene de facultate sau olimpiade, sau nu știu, poate blockchain, atunci da, poate faci o anumită selecție, dar nu cred că te ajută la problemele de zi cu zi din dezvoltarea aplicației sau produsului.
Dar dacă ai companie de genul Piped Piper, ca în serialul Silicon Valley, și faci ceva inovator, ceva ce nu mai există, poate într-un domeniu mai critic, atunci da, nivel de olimpiadă, chiar și pentru aflați la început de carieră.
Din ce am vazut eu prin facultate conceptul de transmitere prin valoare si transmitere prin referinta ii dadea gata pe multi. Nici cu SQL si baze de date nu se impaca lumea prea bine. La algoritmi se invata pe de rost, imi amintesc ca era unu care o picat testu pentru ca el stia quicksort-ul pe de rost dar pe int-uri iar la test era pe strings si nu o stiut sa il schimbe.
Ai fost cumva la Poli in Cluj si ai avut ore cu Cret? Ca parca de acolo tin minte exact sintagma asta, ce ai zis, “automata theory, finite state machines”
In alta ordine de idei, depinde foarte tare si de post si level, cum au mai zis unii. Eu nu intreb aproape niciodata teorie pura, mi se pare useless. Se poate invata, toci, etc. Am si un fail (singurul din fericire) din asta la interviuri de-a lungul anilor, pe cand inca eram incepator la interviuri, a venit o persoana la noi la firma, stia excelent teoria, dar dupa aia cand a fost pusa pe proiecte, a fost varza… Ok, nu neaparat doar tehnic si restul ar fi trebuit sa fie prins de catre cei de la HR, dar e alta poveste.
Eu pentru trainingurile ce se tin la noi la firma de ex. incerc sa-mi dezvolt o poveste, sa discut cu omul, sa vad cum gandeste. Da, normal, introduc si chestii tehnice, sa-mi explice una alta, dar eu sunt de parere ca daca esti om fain si vad ca te duce capul un pic, poti invata orice. Cateodata duc si laptop si de-a lungul anilor am dezvoltat cu colegii un mini test pentru interviu si ii pun sa si scrie ceva cod. Au liber la orice, pot sa caute pe net, orice. Vreau sa vad ce fac cand sunt pusi in fata unei probleme, inclusiv cum se descurca cu cautatul pe net.
Pentru mine “semaforul” e daca stie sa faca pe hartie o sortare, orice algoritm, in pseudocod sau orice limbaj.
E cu atat mai interesant daca si-l aduce aminte / il “inventeaza” pe loc. Deci nu ma intereseaza sa fie cel mai eficient posibil. Si unul mai barbar decat bubble sort e bun, apoi discutam eventual de optimizari.
Cam 50+% din cei care ajung la interviu nu il fac.
E mai naspa cand il stiu pe de rost. dar nu il inteleg. Te poti prinde din intrebari ulterioare si discutii daca intelege ce a scris.
Stiu, stiu, nu o sa scrii niciodata sortare tu manual ca is gata facute. Dar daca nu stii sa faci o sortare pe hartie, inclsiv chiar cea mai ineficienta, eu zic ca pierdem timpul amadoi.
90% din căutatul pe net este să știi să cauți corect.
Pentru asta trebuie să cunoști termenii, să cunoști problema, să știi defini problema, să intuiești la ce layer e problema, etc.
Mereu îmi zic unii sau alții cum de ei caută și nu găsesc și eu găsesc. Păi simplu
Perfect de acord, asa patesc si eu. Tind sa cred ca pe langa tehnologii, metodologii, trebuie predat usor-usor si cautatul pe net la traingurile de la firme.
90% din mesajele de eroare au solutie pe prima pagina
Ar mai trebui sa se predea si cititul codului sursa.