Programatori, andate à l'entrevista

Programatori, andate à l'entrevista
A stampa hè presa da un video da u canali "Ametisti militanti»

Aghju travagliatu cum'è programatore di sistema per Linux per circa 10 anni. Quessi sò moduli di kernel (spaziu di kernel), diversi demoni è travagliendu cù hardware da u spaziu di l'utilizatori (u spaziu d'utilizatore), diversi bootloaders (u-boot, etc.), firmware di controller è assai più. Ancu qualchì volta hè accadutu à cutà l'interfaccia web. Ma più spessu hè accadutu chì aghju avutu à pusà cù un ferru di saldatura è interagisce cù i disinfettori di circuiti stampati. Unu di i prublemi cù un tali travagliu hè chì hè abbastanza difficiuli di valutà u livellu di a vostra cumpetenza, postu chì pudete cunnosce un compitu assai prufonda, ma pudete micca cunnosce un altru in tuttu. L'unicu modu adattatu per capiscenu induve andà è quali currenti ci sò avà hè di andà per l'entrevista.

In questu articulu, vogliu riassume a mo sperienza d'entrevista per un postu vacante cum'è programatore di sistema Linux, e specificità di l'entrevista, u travagliu, è cumu valutà u vostru livellu persunale di cunniscenza cumunicanu cù un futuru patronu è ciò chì ùn deve micca. aspetta da ellu.

L'articulu includerà una piccula cumpetizione cù premii.

Caratteristiche di a professione

Un programatore di sistemi, in u campu specificu in quale aghju travagliatu, hè un generalista cumpletu: aghju avutu à scrive codice è debug hardware. È spessu ci era bisognu di saldà qualcosa sè stessu. Da u tempu à u tempu, hè accadutu chì i mo aghjustamenti à u hardware sò stati trasferiti à i sviluppatori. Dunque, per travaglià in questa zona, avete bisognu di una basa di cunniscenza abbastanza bona, sia in u campu di i circuiti digitale sia in a prugrammazione. Per via di questu, l'entrevista per una pusizioni di programatore di u sistema spessu s'assumiglia à una ricerca per un specialista in l'elettronica.

Programatori, andate à l'entrevista
Una stazione di travagliu tipica per un programatore di sistemi.

A foto di sopra mostra u mo locu di travagliu tipicu quandu debugging drivers. L'analizzatore logicu mostra a correttezza di i missaghji trasmessi, l'oscilloscopiu monitorizza a forma di i bordi di u signale. Inoltre, u debugger jtag ùn era micca inclusu in u quadru, chì hè utilizatu quandu l'uttine di debugging standard ùn sò più affruntate. È avete bisognu di pudè travaglià cù tuttu stu equipamentu.

Succede à spessu chì hè più veloce è più faciule per re-salder certi elementi è curreghje l'errore di topologia sè stessu cà di piglià u pruduttu à un installatore. È dopu una stazione di saldatura piglia ancu a residenza in u vostru locu di travagliu.

Una altra caratteristica di u sviluppu à u nivellu di u driver è u hardware hè chì Google ùn aiuta micca. Spessu avete da circà l'infurmazioni nantu à u vostru prublema, è ci sò trè ligami, dui di quali sò e vostre dumande nantu à qualchì foru. O ancu peggiu, quandu avete una dumanda da u stessu poviru omu chì l'hà dumandatu 5 anni fà nantu à a lista di mailing kernel è ùn hà mai ricevutu una risposta. In questu travagliu, in più di l'errori in u disignu di u hardware è di u software, l'errore di documentazione sò spessu scontri - questi sò probabilmente i prublemi più severi è dispiacenti. A volte i registri sò descritti in modu incorrectu, o ùn ci hè micca una descrizzione per elli. Tali prublemi ponu esse risolti solu da mette scientificamente numeri aleatorii in certi registri (una spezia di reversu). Succede spessu chì u processatore cuntene una certa funziunalità, ma nimu, salvu chì avete implementatu sta funziunalità (in particulare se u processatore hè novu). È questu significa caminari in u campu cù un rake, u 70% di i quali sò per i zitelli. Ma quandu ci hè a documentazione, ancu cù l'errori, questu hè digià prugressu. Piuttostu spessu succede chì ùn ci hè micca ducumentazione in tuttu, è questu hè quandu caminari attraversu i campi minati principia quandu u ferru hè brusgiatu. È iè, aghju ancu risoltu cù successu tali prublemi.

Interviste

U mo parè hè chì duvete andà per l'entrevista almenu una volta ogni sei mesi, ancu s'ellu adore u vostru travagliu è ùn vulete micca cambià. Una entrevista permette di capisce u vostru livellu cum'è specialista. Credu chì l'entrevista più preziosa sò quelli chì fallenu. Sò quelli chì mostranu più precisamente quali colli di bottiglia in a vostra cunniscenza deve esse migliuratu.

Una altra caratteristica interessante hè a qualità di l'entrevista. Questa hè a mo osservazione, è ùn hè micca a verità, admessu chì eru solu furtunatu. Se l'entrevista va secondu u scenariu:

  • dicci di sè stessu;
  • Avemu tali compiti;
  • ti piace?

E s'è dopu à stu dialogu vi piace à l'altri, andate à u travagliu, allora, in regula, a cumpagnia è i travaglii diventanu assai piacevuli è adatti. Se una entrevista s'assumiglia à passà per 12 circles di l'infernu: a prima entrevista cù HR, dopu una entrevista cù un gruppu di programatori, dopu u direttore, più travaglii, ecc. per assai longu. In novu, questu hè una osservazione persunale, ma in regula, troppu burocrazia è un prucessu di assunzione allargatu mostranu chì i stessi prucessi precisi si sò in a cumpagnia. E decisioni sò fatte lentamente è inefficacemente. Ci era ancu e situazioni cuntrariu, quandu ci era circhuli di l'infernu di l'entrevista, è a cumpagnia hè stata grande, è quandu, dopu à una slap in u polso, a cumpagnia hè stata un palude, ma questi sò rari.

Se pensate chì u scenariu: scontru, hà dettu di sè stessu è hè stata assuciata, esiste solu in picculi imprese, allora no. Aghju vistu questu in cumpagnie assai grande chì impieganu più di centinaie di persone è sò rapprisintati nantu à i mercati mundiali. Questu hè un miccanisimu normale, soprattuttu s'è vo avete un riccu track record è avete l'uppurtunità di chjamà i vostri patroni precedenti è dumandà di voi.

Per mè, hè un indicatore assai bonu di una cumpagnia quandu dumandanu di vede esempi di i so prughjetti è u codice. U livellu di furmazione di u candidatu hè immediatamente mostratu. È, in quantu à mè, da u puntu di vista di a selezzione di i candidati, questu hè u metudu di selezzione più efficau chè l'entrevista di mostra. In fatti, pudete falla in una entrevista da eccitazione, o, à u cuntrariu, esce da l'adrenalina. Ma in u travagliu veru ùn pudete micca affruntà i travaglii veri. È aghju ancu scontru questu quandu aghju intervistatu a ghjente stessu. Veni un specialista, si mostra eccellenti, mi piaceva, ci piaciamu. E aghju luttatu cù u prublema più simplice per un mesi, è in u risultatu, un altru programatore risolviu in un paru di ghjorni. Aviu avutu à parte cù quellu programatore.

In particulare valore i travaglii di prugrammazione in l'entrevista. E quelli chì anu da esse risolti ghjustu durante a riunione, sottu stress, è i travaglii. U primu mostra quantu site prontu per risolve rapidamente è precisamente i prublemi in una situazione stressante è emergenza. U sicondu mostra u vostru livellu di cumpetenza è a capacità di circà l'infurmazioni è di risolve i prublemi attuali.

I travaglii più interessanti chì aghju avutu era in u cumplessu di difesa di u nostru paese. In u prucessu di u travagliu, aghju avutu à risolve solu prublemi fantastichi chì i programatori cummerciale ùn avianu mai sognu. Supercomputer, cuncepimentu di router, diversi sistemi di cumbattimentu di nodi - questu hè incredibilmente eccitante. Quandu durante a parata vi vede un cumplessu chì guarda u vostru codice, hè veramente bellu. Curiosamente, l'entrevista cù tali cumpagnie sò generalmente assai sèmplice, littiralmenti venenu, cum'è questu, accettatu (probabilmente i specifichi di l'armata, chì ùn piace micca di parlà troppu), sò sovrapposti. E sfide chì aghju affruntatu quì eranu veramente interessanti è sfida. Cù l'experientia, hè risultatu chì sò boni per amparà à esse un programatore di sistema di alta qualità. Ci sò ancu disadvantages, è questu ùn hè mancu salarii bassi. À u mumentu, u salariu in u cumplessu di difesa hè abbastanza decentu, cù bonus è benefici. In regula, ci hè assai burocrazia, longu ore di travagliu, travaglii senza fine, è travagliendu sottu un grande stress. In certi casi, u sicretu ùn pò micca esse esclusu, chì aghjunghje certi prublemi per viaghjà à l'esteru. In più, sicuru, a tirannia di i patroni, è questu, alas, succede ancu. Ancu se a mo sperienza di travaglià cù un rappresentante di u cliente hè assai piacevule. Questa hè una impressione cullettiva di trè diversi istituti di ricerca è cumpagnie ligati à ordini di difesa statali.

I travaglii di l'entrevista

Per evitari malintesi è per ùn espunà e cumpagnie chì aghju intervistatu, ùn tentaraghju micca u destinu è indicà i so dati. Ma aghju ringraziatu per ogni intervista, per u tempu chì a ghjente hà passatu nantu à mè, per l'uppurtunità di fighjà mè da l'esternu. Puderaghju solu chì i travaglii eranu per grandi cumpagnie internaziunali rapprisentate in diversi paesi.

Vi dicu a cosa più interessante: quali compiti sò dati durante l'entrevista. In generale, e dumande più cumuni per a vacante di un programatore di sistema è di u microcontroller di u microcontroller sò operazioni di bit, in tutte e variazioni pussibuli. Dunque, preparate megliu in questu spaziu.

U sicondu tema più polarizante hè signalposti, questu deve veramente saltà da i vostri denti. Per ch'elli vi svegliate à mezu à a notte è pudete cuntà è mustrà tuttu.

Aghju arrubbatu e dumande da parechje interviste in a mo testa, è li prisintà quì, postu chì li trovu assai interessanti. Deliberatamente ùn dete micca risposte à queste dumande in modu chì i lettori ponu risponde à queste dumande stessi in i cumenti è avè un pocu di polvere quandu passanu una vera entrevista.

Dumande n ° 1

I. Cunniscenza di SI. Chì significà e seguenti entrate:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Sò tutte e entrate currette?

II. Perchè stu prugramma lanciarà un difettu di segmentazione?

int main ()
{
       fprintf(0,"hellon");
       fork();
       return(0);
}

III. Per esse intelligente.

Ci hè un bastone longu un metru. Dece formiche cascanu casualmente nantu à ella, arrampicanu in diverse direzzione. A vitezza di u muvimentu di una furmica hè 1 m/s. Se una formica scontra un'altra formica, si volta è si arrampica in a direzzione opposta. Chì ghjè u tempu massimu chì avete bisognu à aspittà chì tutte e formiche cascanu da u bastone?

A prossima entrevista hè stata un fallimentu per mè, è a cunsiderà u più utile in a mo pratica di prugrammazione. Hà dimustratu a prufundità di a mo incompetenza. Prima di sta intervista, era cunnisciuta cù ognuna di queste dumande è sò sempre venute in a mo pratica, ma in qualchì manera ùn aghju micca assai impurtanza à elli, è per quessa, ùn aghju micca capitu bè. Dunque, aghju fallutu stu esame in disgrazia. È sò assai grati chì un tale fallimentu hè accadutu; hà avutu l'effettu più sobriante nantu à mè. Pensate chì site un spezialistu cool, sapete u disignu di circuiti, interfacce, è travaglià cù u kernel. È tandu avete veri dumande è fluttu. Allora andemu à vede.

Domande d'entrevista #2

Problemi di hardware.

  • Cumu e chjama di u sistema Linux sò disposti in lingua assemblea nantu à un processore ARM, in x86. Chì ghjè a diffarenza ?
  • Chì strumenti di sincronizazione ci sò? Quali strumenti di sincronizazione ponu esse aduprati in un cuntestu di interruzzione, chì ùn pò micca, è perchè?
  • Chì ghjè a diffarenza trà i2c bus è spi bus?
  • Perchè ci sò terminatori nantu à u bus i2c è quale hè u so valore?
  • L'interfaccia RS-232 pò travaglià SOLO in dui fili: RX è TX? Quì vi daraghju a risposta : Risulta chì hè male, à 9600, ma pò !!!
  • È avà a seconda quistione: perchè?
  • Chì ghjè u megliu modu per organizà e linee di signale è a putenza in pannelli multistrati è perchè? Potenza in i strati, o linee di signale in i strati? (A quistione hè in generale puramente nantu à u disignu di u circuitu).
  • Perchè e linee differenziali anu tracce chì vanu inseme in ogni locu?
  • bus RS-485. Di solitu ci sò terminatori nantu à una tale linea. In ogni casu, avemu un circuitu stella, cù un numeru variabile di moduli plug-in. Chì mezi per evità scontri è interferenze deve esse usatu?
  • Chì sò l'arburi rossi è binari?
  • Cumu travaglià cù cmake?
  • Dumande nantu à a custruzione di yocto Linux.

Obiettivi per questa entrevista:

1. Scrivite una funzione chì inverte à uint32_t tutti i pezzi. (U travagliu cù bit hè assai populari in l'entrevista, u cunsigliu)
2.

int32_t a = -200;
uint32_t b = 200;
return *(uint32_t) * (&a)) > b;

Chì turnerà sta funzione? (soluzione nantu à carta, senza computer)

3. Funzione di calculà a media aritmetica di dui numeri int32_t.

4. Chì sò i metudi di pruduzzioni in prugrammi, incl. in un flussu di errori.

A terza selezzione era relativamente recente, è ùn saria micca maravigliatu s'ellu ci hè sempre un tali questionnaire quì, per quessa ùn revelà micca a cumpagnia per ùn espunà micca... Ma in termini ginirali daraghju un esempiu. di e dumande pussibuli, è se ricunnosce e vostre dumande, allora salutu :).

Domande d'entrevista #3

  1. Un esempiu di codice traversale di l'arburu hè datu; hè necessariu di dì ciò chì hè fattu in stu codice è indicà l'errori.
  2. Scrivite un esempiu di l'utilità ls. Cù l'opzione più simplice "-l".
  3. Dà un esempiu di cumu fà ligami statichi è dinamichi. Chì ghjè a diffarenza ?
  4. Cumu funziona RS-232? Chì ghjè a diffarenza trà RS-485 è RS-232? Chì ghjè a diffarenza trà RS-232 è RS-485 da u puntu di vista di un programatore?
  5. Cumu funziona u USB (da u puntu di vista di u programatore)?
  6. Traduzzione di testu tecnicu da Russu à Inglese.

Una entrevista di successu ùn hè micca una guaranzia di u travagliu successu

Stu capitulu ùn hè micca prubabilmente ancu per i programatori (ancu per elli ancu), ma più per HR. L'imprese più adatte ùn guardanu micca meticulosamente i risultati di l'entrevista. Hè normale per sbaglià; a maiò spessu si guardanu cumu una persona sà cumu risolve i prublemi è ragiunate.

Unu di i prublemi chjave hè chì un candidatu risolve bè i prublemi durante l'entrevista, si mostra cum'è un eccellente specialista, ma falla à u primu travagliu veru. Ùn mentiraghju micca, questu hè accadutu ancu à mè. Aghju passatu cù successu in tutti i circhuli di l'infernu, risolviu tutti i travaglii di teste, ma in cundizioni veri u travagliu hè statu troppu duru per via di l'inexperience simplici. Arrivà à bordu ùn hè micca u travagliu più difficiule. U più difficiule hè di stà à bordu di sta cumpagnia.

Per quessa, aghju fiducia in più cumpagnie chì facenu interviste simplici cù u candidatu è dicenu: dopu à u primu mese di travagliu, serà chjaru se site adattatu per noi o micca. Questu hè l'approcciu più adattatu, sì, forse un pocu caru, ma hè subitu chjaru quale hè quale.

Ci hè una altra opzione per l'entrevista: quandu avete successu, ma basatu nantu à i risultati di l'entrevista, capisce chì u patronu hè cumplettamente inadegwate. Immediatamente ricusate u travagliu s'ellu mi offre à travaglià cum'è un entrepreneur individuale, prumettendu grandi rivenuti. Questa hè una forma di evasione fiscale per una urganizazione operativa, è perchè i prublemi di u patronu mi preoccupanu cum'è programatore? Un'altra opzione hè diverse agenzie di guvernu. Aviu avutu una entrevista, cum'è u risultatu di a quale mi hè statu offrittu un bonu salariu, ma anu dettu chì u programatore precedente abbandunò, s'hè malatu, hè mortu, si n'andò in abbuffate per via di a carica di travagliu, è u vostru ghjornu di travagliu principia à 8 di a matina. . Da un locu cusì curria ancu cusì chì i so tacchi scintillavanu. Iè, HR, per piacè nutate chì i programatori sò pronti à ricusà ancu u travagliu più diliziosu se u ghjornu di travagliu deve principià prima di a matina.

À a fine, daraghju un video eccellente di selezzione di u programatore, una screenshot di quale hè datu à u principiu di stu articulu. Aghju avutu ancu una tale entrevista più di una volta. Se vi vede a tirania in u stadiu di e dumande, allora rispettu sè stessu, alzate, pigliate e vostre cose è lasciate - questu hè normale. Se HR è u manager affirmanu à u vostru spesa durante l'entrevista, questu indica chì a cumpagnia hè tossica è ùn deve micca travaglià quì, salvu chì ùn ti piace micca i patroni inadegwate.

scuperti

Programatori, andate à l'entrevista ! È sempre pruvate à esse promossi. Dicemu s'è vo avete N soldi, poi vai per una entrevista per almenu N * 1,2, o megliu N * 1,5. Ancu s'ellu ùn pigliate micca sta vacante subitu, capirete ciò chì hè necessariu per stu livellu di pagamentu.
I mo osservazioni anu dimustratu chì una bona cunniscenza di a lingua inglese, una sperienza abbastanza ricca in l'industria è a fiducia in sè decide. L'ultima hè a qualità principale, cum'è in ogni locu in a vita. In regula, un candidatu più cunfidendu pò esse megliu in una entrevista, ancu cù più sbagli, cà un candidatu eccellente, ma più timida è proattiva. Bona furtuna cù e vostre interviste!

Concorso P/S

Sì avete esempi interessanti di prublemi chì HR vi hà caricatu, allora benvenuti in i cumenti. Avemu preparatu una piccula cumpetizione - e cundizioni sò simplici: scrive u compitu più inusual chì avete avutu durante una entrevista, i lettori l'evaluanu (più), è dopu una settimana riassumemu i risultati è ricumpinsemu u vincitore cù boni divertenti.

Programatori, andate à l'entrevista

Programatori, andate à l'entrevista

Source: www.habr.com

Add a comment