Programadors, aneu a les entrevistes

Programadors, aneu a les entrevistes
La foto està presa d'un vídeo del canal "Ametistes militants»

Vaig treballar com a programador de sistemes per a Linux durant uns 10 anys. Aquests són mòduls del nucli (espai del nucli), diversos dimonis i treballant amb maquinari des de l'espai d'usuari (espai d'usuari), diversos carregadors d'arrencada (u-boot, etc.), microprogramari del controlador i molt més. Fins i tot de vegades passava per tallar la interfície web. Però més sovint passava que havia de seure amb un soldador i interactuar amb dissenyadors de plaques de circuit imprès. Un dels problemes d'aquest treball és que és bastant difícil avaluar el nivell de la teva competència, ja que potser coneixes una tasca molt a fons, però potser no en coneixes una altra. L'única manera adequada d'entendre cap a on anar i quins corrents hi ha ara és anar a fer entrevistes.

En aquest article m'agradaria resumir la meva experiència d'entrevista per a una plaça vacant com a programador de sistemes Linux, les especificitats de l'entrevista, la feina i com avaluar el vostre nivell de coneixement personal comunicant-vos amb un futur ocupador i què no hauríeu de fer. esperar-ne.

L'article inclourà un petit concurs amb premis.

Característiques de la professió

Un programador de sistemes, en el camp concret en el qual vaig treballar, és un generalista complet: vaig haver d'escriure codi i depurar el maquinari. I sovint calia soldar alguna cosa tu mateix. De tant en tant, passava que els meus ajustos al maquinari es transferien als desenvolupadors. Per tant, per treballar en aquesta àrea cal una base de coneixements força bona, tant en l'àmbit de la circuiteria digital com en la programació. Per això, les entrevistes per a una posició de programador de sistemes solen semblar una recerca d'un especialista en electrònica.

Programadors, aneu a les entrevistes
Una estació de treball típica per a un programador de sistemes.

La foto de dalt mostra el meu lloc de treball típic quan depuro els controladors. L'analitzador lògic mostra la correcció dels missatges transmesos, l'oscil·loscopi supervisa la forma de les vores del senyal. A més, el depurador jtag no es va incloure al marc, que s'utilitza quan les eines de depuració estàndard ja no ho fan. I cal poder treballar amb tot aquest equipament.

Sovint passa que és més ràpid i fàcil tornar a soldar alguns elements i corregir els errors de topologia tu mateix que portar el producte a un instal·lador. I després una estació de soldadura també s'instal·la al vostre lloc de treball.

Una altra característica del desenvolupament a nivell de controlador i maquinari és que Google no ajuda. Sovint heu de buscar informació sobre el vostre problema i hi ha tres enllaços, dos dels quals són les vostres pròpies preguntes en algun fòrum. O encara pitjor, quan et trobes amb una pregunta del mateix pobre que la va fer fa 5 anys a la llista de correu del nucli i mai va rebre resposta. En aquest treball, a més dels errors en el disseny tant del maquinari com del programari, sovint es troben errors de documentació: aquests són probablement els problemes més greus i desagradables. De vegades, els registres es descriuen incorrectament o no hi ha cap descripció per a ells. Aquests problemes només es poden resoldre introduint científicament nombres aleatoris en determinats registres (una mena de revés). Sovint passa que el processador conté alguna funcionalitat, però ningú, excepte tu, ha implementat aquesta funcionalitat (sobretot si el processador és nou). I això vol dir caminar pel camp amb un rasclet, el 70% dels quals són per a nens. Però quan hi ha documentació, fins i tot amb errors, això ja és un progrés. Molt sovint passa que no hi ha cap documentació, i és llavors quan comença a caminar pels camps de mines quan el ferro està cremant. I sí, també vaig resoldre amb èxit aquests problemes.

Entrevistes

La meva opinió és que hauríeu d'anar a fer entrevistes almenys un cop cada sis mesos, encara que us agradi la vostra feina i no la vulgueu canviar. Una entrevista et permet entendre el teu nivell com a especialista. Crec que les entrevistes més valuoses són les que fracassen. Són els que mostren amb més precisió quins colls d'ampolla en el vostre coneixement cal millorar.

Una altra característica interessant és la qualitat de les entrevistes. Aquesta és la meva observació, i no és la veritat, admeto que només vaig tenir sort. Si l'entrevista va segons l'escenari:

  • Parla'ns sobre tu;
  • Tenim aquestes tasques;
  • t'agrada?

I si després d'aquest diàleg us agraden, aneu a treballar, aleshores, per regla general, l'empresa i les tasques resulten molt agradables i adequades. Si una entrevista s'assembla a passar per 12 cercles de l'infern: la primera entrevista amb RRHH, després una entrevista amb un grup de programadors, després el director, més deures, etc., llavors, per regla general, eren organitzacions fallides en les quals no treballava. durant molt de temps. De nou, es tracta d'una observació personal, però, per regla general, l'excés de burocràcia i un procés de contractació prolongat demostren que els mateixos processos es produeixen a l'empresa. Les decisions es prenen de manera lenta i ineficaç. També hi havia situacions contràries, quan hi havia cercles de l'infern d'entrevistes, i l'empresa va resultar genial, i quan, després d'una bufetada al canell, l'empresa va resultar ser un pantà, però aquests són rars.

Si creus que l'escenari: conèixer, parlar de tu mateix i contractar només existeix en petites empreses, no. Ho he vist en empreses molt grans que donen feina a més de centenars de persones i estan representades als mercats mundials. Aquest és un mecanisme normal, sobretot si teniu un historial ric i teniu l'oportunitat de trucar als vostres ocupadors anteriors i preguntar-vos per vosaltres.

Per a mi, és un molt bon indicador d'una empresa quan demanen mostrar exemples dels seus projectes i codi. Es mostra immediatament el nivell de formació del sol·licitant. I, pel que fa a mi, des del punt de vista de la selecció de candidats, aquest és el mètode de selecció més eficaç que les entrevistes de presentació. De fet, pots fallar en una entrevista per il·lusió o, per contra, sortir d'adrenalina. Però en el treball real, no pots fer front a tasques reals. I també em vaig trobar amb això quan vaig entrevistar la gent. Ve un especialista, es mostra excel·lent, a mi m'agradava, a nosaltres ens agradava. I vaig lluitar amb el problema més senzill durant un mes i, com a resultat, un altre programador el va resoldre en un parell de dies. Vaig haver de separar-me d'aquest programador.

Valoro especialment les tasques de programació a les entrevistes. I els que s'han de resoldre justament durant la reunió, sota estrès i amb els deures. El primer mostra com estàs preparat per resoldre problemes amb rapidesa i precisió en una situació d'estrès i una emergència. El segon mostra el teu nivell de competència i capacitat per buscar informació i resoldre problemes actuals.

Les feines més interessants que vaig tenir eren al complex de defensa del nostre país. En el procés de treball, vaig haver de resoldre problemes senzillament fantàstics que els programadors comercials ni tan sols havien somiat. Superordinadors, disseny d'encaminadors, diversos sistemes de combat de nodes: això és increïblement emocionant. Quan durant la desfilada veieu un complex que emmagatzema el vostre codi, és molt agradable. Curiosament, les entrevistes amb aquestes empreses acostumen a ser molt senzilles, literalment vénen, com això, acceptades (probablement les especificitats dels militars, a qui no els agrada parlar massa), es superposen. Els reptes que em vaig enfrontar allà van ser realment interessants i desafiants. Amb l'experiència, va resultar que són bons per aprendre a ser un programador de sistemes d'alta qualitat. També hi ha desavantatges, i això ni tan sols és un salari baix. De moment, el sou al complex de defensa és força digne, amb bonificacions i beneficis. Com a regla general, hi ha molta burocràcia, llargues jornades de treball, treballs sense fi i treball amb gran estrès. En determinats casos no es pot descartar el secret, cosa que afegeix certs problemes per viatjar a l'estranger. A més, és clar, la tirania dels caps, i això, per desgràcia, també passa. Tot i que la meva experiència de treballar amb un representant del client és molt agradable. Aquesta és una impressió col·lectiva de tres instituts de recerca i empreses diferents relacionades amb les ordres de defensa de l'estat.

Tasques d'entrevista

Per evitar malentesos i per no exposar les empreses amb les quals vaig entrevistar, no temptaré el destí i n'indicaré les dades. Però estic agraït per cada entrevista, pel temps que la gent va dedicar a mi, per l'oportunitat de mirar-me des de fora. Només puc dir que les tasques eren de grans empreses internacionals representades en diferents països.

Et diré el més interessant: quines tasques es donen durant les entrevistes. En general, les preguntes més freqüents per a la vacant d'un programador de sistemes i un programador de microcontroladors són les operacions de bits, en totes les variacions possibles. Per tant, prepareu-vos millor en aquesta àrea.

El segon tema més polaritzador són els pals indicadors, això realment hauria de saltar de les dents. Perquè et despertin a mitja nit i ho puguis explicar i mostrar tot.

Em vaig robar preguntes de diverses entrevistes al meu cap, i les presentaré aquí, ja que les trobo força interessants. Deliberadament, no dono respostes a aquestes preguntes perquè els lectors puguin respondre aquestes preguntes ells mateixos als comentaris i tenir una mica de pols quan passen per una entrevista real.

Preguntes núm. 1

I. Coneixement de SI. Què signifiquen les entrades següents:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Són correctes totes les entrades?

II. Per què aquest programa llançarà un error de segmentació?

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

III. Ser intel·ligent.

Hi ha un pal d'un metre de llarg. Deu formigues cauen a l'atzar sobre ella, arrossegant-se en diferents direccions. La velocitat de moviment d'una formiga és d'1 m/s. Si una formiga es troba amb una altra formiga, es gira i s'arrossega en la direcció oposada. Quin és el temps màxim que cal esperar perquè totes les formigues caiguin del pal?

La següent entrevista va ser un fracàs per a mi, i la considero la més útil en la meva pràctica de programació. Mostrava la profunditat de la meva incompetència. Abans d'aquesta entrevista, estava familiaritzat amb cadascuna d'aquestes preguntes i em van sorgir constantment a la meva pràctica, però d'alguna manera no els hi donava molta importància i, per tant, no les vaig entendre bé. Per tant, vaig suspendre aquest examen en desgràcia. I estic molt agraït que hagi passat un fracàs com aquest; va tenir l'efecte més descoratjador per a mi. Creus que ets un gran especialista, coneixes el disseny de circuits, les interfícies i el treball amb el nucli. I després tens preguntes reals i sures. Així que anem a veure.

Preguntes de l'entrevista #2

Problemes de maquinari.

  • Com s'organitzen les trucades del sistema Linux en llenguatge ensamblador en un processador ARM, a x86. Quina és la diferència?
  • Quines eines de sincronització hi ha? Quines eines de sincronització es poden utilitzar en un context d'interrupció, quines no i per què?
  • Quina diferència hi ha entre el bus i2c i el bus spi?
  • Per què hi ha terminadors al bus i2c i quin és el seu valor?
  • La interfície RS-232 pot funcionar NOMÉS amb dos cables: RX i TX? Aquí donaré la resposta: resulta que està malament, a 9600, però es pot!!!
  • I ara la segona pregunta: per què?
  • Quina és la millor manera d'organitzar les línies de senyal i l'alimentació en plaques multicapa i per què? Potència dins de les capes, o línies de senyal dins de les capes? (La pregunta és generalment purament sobre el disseny de circuits).
  • Per què les línies diferencials tenen vies que van juntes per tot arreu?
  • Bus RS-485. Normalment hi ha terminadors en aquesta línia. Tanmateix, tenim un circuit en estrella, amb un nombre variable de mòduls endollables. Quins mitjans s'han d'utilitzar per evitar col·lisions i interferències?
  • Què són els arbres vermells i binaris?
  • Com treballar amb cmake?
  • Preguntes sobre la creació de yocto Linux.

Objectius d'aquesta entrevista:

1. Escriu una funció que inverteix a uint32_t tots els bits. (Treballar amb bits és molt popular a les entrevistes, ho recomano)
2.

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

Què retornarà aquesta funció? (solució en paper, sense ordinador)

3. Funció de càlcul de la mitjana aritmètica de dos nombres int32_t.

4. Quins són els mètodes de sortida dels programes, incl. en un corrent d'errors.

La tercera selecció va ser relativament recent, i no m'estranyaria que encara hi hagués un qüestionari així, així que no desvetllaré l'empresa per no exposar-los... Però en termes generals posaré un exemple de possibles preguntes, i si reconeixeu les vostres preguntes, us dic hola :).

Preguntes de l'entrevista #3

  1. Es dóna un exemple de codi de recorregut d'arbre; cal dir què es fa en aquest codi i assenyalar els errors.
  2. Escriu un exemple de la utilitat ls. Amb l'opció més senzilla "-l".
  3. Doneu un exemple de com fer enllaços estàtics i dinàmics. Quina és la diferència?
  4. Com funciona RS-232? Quina diferència hi ha entre RS-485 i RS-232? Quina diferència hi ha entre RS-232 i RS-485 des del punt de vista d'un programador?
  5. Com funciona USB (des del punt de vista d'un programador)?
  6. Traducció de text tècnic del rus a l'anglès.

Una entrevista reeixida no és garantia d'èxit laboral

Aquest capítol probablement ni tan sols és per a programadors (encara que també per a ells), sinó més per a RRHH. Les empreses més adequades no observen meticulosament els resultats de les entrevistes. És normal equivocar-se, la majoria de vegades es miren com una persona sap resoldre els problemes i raonar.

Un dels problemes clau és que un candidat resol amb èxit els problemes durant les entrevistes, es mostra com un excel·lent especialista, però fracassa en la primera tasca real. No mentiré, això també m'ha passat. Vaig passar amb èxit per tots els cercles de l'infern, vaig resoldre totes les tasques de prova, però en condicions reals el treball va resultar massa dur a causa de la simple inexperiència. Pujar-se a bord no és la tasca més difícil. El més difícil és mantenir-se a bord d'aquesta empresa.

Per tant, confio en més empreses que fan entrevistes senzilles amb el candidat i diuen: després del primer mes de feina, quedarà clar si ens convé o no. Aquest és l'enfocament més adequat, sí, potser una mica car, però de seguida queda clar qui és qui.

Hi ha una altra opció per a les entrevistes: quan la superes amb èxit, però a partir dels resultats de l'entrevista entens que l'empresari és completament inadequat. Em nego immediatament a treballar si m'ofereixen treballar com a empresari individual, prometent grans ingressos. Aquesta és una forma d'evasió fiscal per a una organització operativa, i per què els problemes de l'empresari m'han de preocupar com a programador? Una altra opció són diverses agències governamentals. Vaig tenir una entrevista, arran de la qual em van oferir un bon sou, però em van dir que l'anterior programador va deixar, es va emmalaltir, va morir, es va afartar per la càrrega de treball i la teva jornada laboral comença a les 8 del matí. . D'aquell lloc també va córrer perquè els seus talons brillaven. Sí, RRHH, tingueu en compte que els programadors estan disposats a rebutjar fins i tot la feina més deliciosa si la jornada laboral ha de començar d'hora al matí.

Al final, donaré un excel·lent vídeo de selecció de programadors, una captura de pantalla del qual es mostra al començament d'aquest article. També vaig tenir una entrevista així més d'una vegada. Si veus la tirania a l'etapa de les preguntes, respecta't, aixeca't, agafa les teves coses i marxa, això és normal. Si RRHH i el gerent s'afirmen a les vostres despeses durant l'entrevista, això indica que l'empresa és tòxica i que no hauríeu de treballar-hi tret que us agradin els caps inadequats.

Troballes

Programadors, aneu a les entrevistes! I sempre intenta ascendir. Suposem que si obteniu N diners, aneu a una entrevista per almenys N*1,2, o millor N*1,5. Fins i tot si no ocupeu aquesta vacant de seguida, entendreu què es necessita per a aquest nivell de sou.
Les meves observacions han demostrat que un bon coneixement de la llengua anglesa, una experiència prou rica en el sector i la confiança en un mateix decideixen. Aquesta última és la qualitat principal, com a tot arreu de la vida. Per regla general, un candidat més segur pot tenir un millor rendiment en una entrevista, fins i tot amb més errors, que un candidat excel·lent, però més tímid i proactiu. Molta sort amb les teves entrevistes!

Concurs P/S

Si teniu exemples interessants de problemes amb els quals us ha carregat RRHH, doneu la benvinguda als comentaris. Hem preparat un petit concurs: les condicions són senzilles: escriviu la tasca més inusual que vau tenir durant una entrevista, els lectors l'avaluen (a més) i després d'una setmana resumim els resultats i premiem el guanyador amb llaminadures divertides.

Programadors, aneu a les entrevistes

Programadors, aneu a les entrevistes

Font: www.habr.com

Afegeix comentari