Programues, shkoni në intervista

Programues, shkoni në intervista
Fotoja është marrë nga një video nga kanali "Ametistë militantë»

Kam punuar si programues sistemesh për Linux për rreth 10 vjet. Këto janë module kernel (hapësira e kernelit), demonë të ndryshëm dhe punë me pajisje nga hapësira e përdoruesit (hapësira e përdoruesit), ngarkues të ndryshëm (u-boot, etj.), firmware i kontrolluesit dhe shumë më tepër. Madje ndonjëherë ka ndodhur që të shkurtohet ndërfaqja e internetit. Por më shpesh më ndodhte që më duhej të ulem me një hekur saldimi dhe të ndërveproja me projektuesit e bordit të qarkut të printuar. Një nga problemet me një punë të tillë është se është mjaft e vështirë të vlerësosh nivelin e kompetencës tënde, pasi një detyrë mund ta dish shumë thellë, por një tjetër mund të mos e njohësh fare. E vetmja mënyrë adekuate për të kuptuar se ku të shkoni dhe çfarë rrymash ka tani është të shkoni për intervista.

Në këtë artikull do të doja të përmbledhja përvojën time të intervistimit për një vend të lirë pune si programues i sistemit Linux, specifikat e intervistës, punën dhe si të vlerësoni nivelin tuaj personal të njohurive duke komunikuar me një punëdhënës të ardhshëm dhe çfarë nuk duhet. presin prej saj.

Artikulli do të përfshijë një konkurs të vogël me çmime.

Karakteristikat e profesionit

Një programues sistemesh, në fushën specifike në të cilën kam punuar, është një gjeneralist i plotë: më duhej të shkruaja kodin dhe të korrigjoja harduerin. Dhe shpesh ka pasur nevojë të bashkoni diçka vetë. Herë pas here, ndodhte që rregullimet e mia në harduer u transferoheshin më pas te zhvilluesit. Prandaj, për të punuar në këtë fushë ju nevojitet një bazë mjaft e mirë njohurish, si në fushën e qarqeve dixhitale ashtu edhe në programim. Për shkak të kësaj, intervistat për një pozicion programues të sistemit shpesh duken si një kërkim për një specialist elektronik.

Programues, shkoni në intervista
Një stacion pune tipik për një programues sistemesh.

Fotografia e mësipërme tregon vendin tim tipik të punës kur korrigjoj drejtuesit. Analizuesi logjik tregon korrektësinë e mesazheve të transmetuara, oshiloskopi monitoron formën e skajeve të sinjalit. Gjithashtu, korrigjuesi jtag nuk u përfshi në kornizë, i cili përdoret kur mjetet standarde të korrigjimit nuk përballen më. Dhe ju duhet të jeni në gjendje të punoni me të gjitha këto pajisje.

Shpesh ndodh që është më e shpejtë dhe më e lehtë të ribashkoni disa elementë dhe të korrigjoni vetë gabimet e topologjisë sesa ta çoni produktin te një instalues. Dhe pastaj një stacion saldimi gjithashtu zë vend në vendin tuaj të punës.

Një veçori tjetër e zhvillimit në nivelin e shoferit dhe harduerit është se Google nuk ndihmon. Shpesh ju duhet të kërkoni informacione për problemin tuaj, dhe ka tre lidhje, dy prej të cilave janë pyetjet tuaja në ndonjë forum. Ose edhe më keq, kur hasni në një pyetje nga i njëjti djalë i varfër që e bëri atë 5 vjet më parë në listën e postimeve të kernelit dhe nuk mori kurrë një përgjigje. Në këtë punë, përveç gabimeve në hartimin e harduerit dhe softuerit, shpesh hasen gabime në dokumentacion - këto janë ndoshta problemet më të rënda dhe më të pakëndshme. Ndonjëherë regjistrat përshkruhen gabimisht, ose nuk ka fare përshkrim për ta. Probleme të tilla mund të zgjidhen vetëm duke futur shkencërisht numra të rastësishëm në regjistra të caktuar (një lloj i kundërt). Shpesh ndodh që procesori të ketë disa funksione, por askush përveç jush nuk e ka zbatuar këtë funksionalitet (veçanërisht nëse procesori është i ri). Dhe kjo do të thotë të ecësh nëpër fushë me grabujë, 70% e të cilave janë për fëmijë. Por kur ka dokumentacion, qoftë edhe me gabime, ky është tashmë progres. Shumë shpesh ndodh që nuk ka fare dokumentacion, dhe kjo është kur ecja nëpër fusha të minuara fillon kur hekuri digjet. Dhe po, unë gjithashtu zgjidha me sukses probleme të tilla.

Intervistat

Mendimi im është se duhet të shkoni për intervista të paktën një herë në gjashtë muaj, edhe nëse e adhuroni punën tuaj dhe nuk doni ta ndryshoni atë. Një intervistë ju lejon të kuptoni nivelin tuaj si specialist. Besoj se intervistat më të vlefshme janë ato që dështojnë. Ata janë ata që tregojnë më saktë se cilat pengesa në njohuritë tuaja duhet të përmirësohen.

Një veçori tjetër interesante është cilësia e intervistave. Ky është vëzhgimi im, dhe nuk është e vërteta, e pranoj se kam qenë thjesht me fat. Nëse intervista shkon sipas skenarit:

  • Na trego rreth vetes;
  • Ne kemi detyra të tilla;
  • ti pelqen?

Dhe nëse pas këtij dialogu ju pëlqen njëri-tjetri, shkoni në punë, atëherë, si rregull, shoqëria dhe detyrat rezultojnë të jenë shumë të këndshme dhe adekuate. Nëse një intervistë i ngjan kalimit nëpër 12 rrathë të ferrit: intervista e parë me HR, pastaj një intervistë me një grup programuesish, pastaj drejtori, më shumë detyra shtëpie, etj., atëherë si rregull këto ishin organizata të dështuara në të cilat unë nuk punoja. për shumë gjatë. Përsëri, ky është një vëzhgim personal, por si rregull, burokracia e tepërt dhe procesi i stërzgjatur i punësimit tregojnë se të njëjtat procese të sakta ndodhin brenda kompanisë. Vendimet merren ngadalë dhe në mënyrë joefektive. Kishte edhe situata të kundërta, kur kishte rrathë të ferrit të intervistave, dhe shoqëria doli e shkëlqyer dhe kur, pas një shuplakë në dore, kompania doli të ishte një moçal, por këto janë të rralla.

Nëse mendoni se skenari: takove, tregova për veten dhe u punësova, ekziston vetëm në kompani të vogla, atëherë jo. Këtë e kam parë në kompani shumë të mëdha që punësojnë më shumë se qindra njerëz dhe janë të përfaqësuar në tregjet botërore. Ky është një mekanizëm normal, veçanërisht nëse keni një histori të pasur dhe keni mundësinë të telefononi punëdhënësit tuaj të mëparshëm dhe të pyesni për ju.

Për mua, është një tregues shumë i mirë i një kompanie kur ata kërkojnë të tregojnë shembuj të projekteve dhe kodit të tyre. Niveli i trajnimit të aplikantit tregohet menjëherë. Dhe, sa për mua, nga pikëpamja e përzgjedhjes së kandidatëve, kjo është metoda më efektive e përzgjedhjes sesa intervistat me shfaqje. Në fakt, mund të dështoni në një intervistë nga eksitimi, ose, përkundrazi, të dilni nga adrenalina. Por në punën reale, nuk mund të përballesh me detyra reale. Dhe këtë e kam hasur edhe kur intervistova vetë njerëz. Vjen një specialist, tregohet i shkëlqyer, mua më pëlqeu, ai na pëlqeu. Dhe unë luftova me problemin më të thjeshtë për një muaj, dhe si rezultat, një programues tjetër e zgjidhi atë brenda dy ditësh. Më duhej të ndahesha me atë programues.

Unë i vlerësoj veçanërisht detyrat e programimit në intervista. Dhe ato që duhet të zgjidhen menjëherë gjatë takimit, nën stres dhe detyra shtëpie. E para tregon se sa gati jeni për të zgjidhur shpejt dhe saktë problemet në një situatë stresuese dhe urgjente. E dyta tregon nivelin tuaj të kompetencës dhe aftësisë për të kërkuar informacion dhe për të zgjidhur problemet aktuale.

Punët më interesante që kam pasur ishin në kompleksin e mbrojtjes së vendit tonë. Në procesin e punës, më duhej të zgjidhja probleme thjesht fantastike që programuesit komercial as që i kishin ëndërruar. Superkompjuterët, dizajnimi i ruterave, sisteme të ndryshme luftarake me nyje - kjo është tepër emocionuese. Kur gjatë paradës shihni një kompleks që ruan kodin tuaj, është vërtet bukur. Mjaft e çuditshme, intervistat me kompani të tilla janë zakonisht shumë të thjeshta, fjalë për fjalë vijnë, si ajo, pranohen (ndoshta specifikat e ushtrisë, të cilëve nuk u pëlqen të flasin shumë), mbivendosen. Sfidat me të cilat u përballa atje ishin vërtet interesante dhe sfiduese. Me përvojë, doli se ata janë të mirë për të mësuar të jenë një programues sistemi me cilësi të lartë. Ka edhe disavantazhe, dhe kjo nuk është as paga e ulët. Për momentin, rroga në kompleksin e mbrojtjes është mjaft e mirë, me bonuse dhe përfitime. Si rregull, ka shumë burokraci, orë të gjata pune, punë të nxituara pafund dhe punë nën stres të madh. Në raste të caktuara nuk mund të përjashtohet fshehtësia, gjë që shton disa probleme për udhëtimet jashtë vendit. Plus, sigurisht, tirania e shefave, dhe kjo, mjerisht, ndodh gjithashtu. Edhe pse përvoja ime e punës me një përfaqësues të klientit është jashtëzakonisht e këndshme. Kjo është një përshtypje kolektive e tre instituteve dhe kompanive të ndryshme kërkimore që lidhen me urdhrat e mbrojtjes shtetërore.

Detyrat e intervistës

Për të shmangur keqkuptimet dhe për të mos ekspozuar kompanitë me të cilat kam intervistuar, nuk do ta tundoj fatin dhe nuk do të tregoj detajet e tyre. Por unë jam mirënjohëse për çdo intervistë, për kohën që njerëzit shpenzuan për mua, për mundësinë për të parë veten nga jashtë. Mund të them vetëm se detyrat ishin për kompani të mëdha ndërkombëtare të përfaqësuara në vende të ndryshme.

Unë do t'ju them gjënë më interesante: cilat detyra jepen gjatë intervistave. Në përgjithësi, pyetjet më të zakonshme për vendin e lirë të një programuesi të sistemit dhe programuesit të mikrokontrolluesit janë operacionet bit, në të gjitha variacionet e mundshme. Prandaj, përgatituni më së miri në këtë fushë.

Tema e dytë më polarizuese janë tabelat, kjo duhet të kërcejë vërtet nga dhëmbët tuaj. Që të të zgjojnë në mes të natës dhe ti të tregosh dhe të tregosh gjithçka.

Kam vjedhur pyetje nga disa intervista në kokën time dhe do t'i paraqes këtu, pasi më duken mjaft interesante. Unë qëllimisht nuk u jap përgjigje këtyre pyetjeve në mënyrë që lexuesit t'u përgjigjen vetë këtyre pyetjeve në komente dhe të kenë pak pluhur kur kalojnë një intervistë të vërtetë.

Pyetjet nr. 1

I. Njohuri për SI. Çfarë kuptimi kanë shënimet e mëposhtme:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

A janë të sakta të gjitha shënimet?

II. Pse ky program do të sjellë një gabim segmentimi?

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

III. Të jesh i zgjuar.

Ka një shkop një metër të gjatë. Dhjetë milingona bien rastësisht mbi të, duke u zvarritur në drejtime të ndryshme. Shpejtësia e lëvizjes së një milingone është 1 m/s. Nëse një milingonë ndeshet me një milingonë tjetër, ajo kthehet dhe zvarritet në drejtim të kundërt. Sa është koha maksimale që ju duhet për të pritur që të gjitha milingonat të bien nga shkopi?

Intervista e radhës ishte një dështim për mua dhe e konsideroj më të dobishmen në praktikën time programuese. Tregoi thellësinë e paaftësisë sime. Përpara kësaj interviste, unë isha i njohur me secilën nga këto pyetje dhe ato vinin vazhdimisht në praktikën time, por disi nuk u kushtoja shumë rëndësi, dhe rrjedhimisht, nuk i kuptoja mirë. Prandaj, këtë provim e dështova me turp. Dhe jam shumë mirënjohës që ndodhi një dështim i tillë; ai pati efektin më të kthjellët tek unë. Ju mendoni se jeni një specialist i lezetshëm, dini dizajnin e qarkut, ndërfaqet dhe punën me kernelin. Dhe pastaj keni pyetje të vërteta dhe lundroni. Pra, le të shohim.

Pyetjet e intervistës #2

Probleme harduerike.

  • Si rregullohen thirrjet e sistemit linux në gjuhën e asamblesë në një procesor ARM, në x86. Qfare eshte dallimi?
  • Çfarë mjetesh sinkronizimi ekzistojnë? Cilat mjete sinkronizimi mund të përdoren brenda një konteksti ndërprerjeje, cilat jo dhe pse?
  • Cili është ndryshimi midis autobusit i2c dhe autobusit spi?
  • Pse ka terminatorë në autobusin i2c dhe cila është vlera e tyre?
  • A mund të funksionojë ndërfaqja RS-232 VETËM në dy tela: RX dhe TX? Këtu do të jap përgjigjen: Po rezulton se është keq, në 9600, por mundet!!!
  • Dhe tani pyetja e dytë: pse?
  • Cila është mënyra më e mirë për të rregulluar linjat e sinjalit dhe fuqinë në bordet me shumë shtresa dhe pse? Fuqia brenda shtresave, apo linjat e sinjalit brenda shtresave? (Pyetja në përgjithësi ka të bëjë thjesht me dizajnin e qarkut).
  • Pse linjat diferenciale kanë gjurmë që shkojnë së bashku kudo?
  • autobus RS-485. Zakonisht ka terminatorë në një linjë të tillë. Megjithatë, ne kemi një qark yll, me një numër të ndryshueshëm të moduleve plug-in. Cilat mjete duhet të përdoren për të shmangur përplasjet dhe ndërhyrjet?
  • Çfarë janë pemët e kuqe dhe binare?
  • Si të punoni me cmake?
  • Pyetje rreth ndërtimit të yocto Linux.

Objektivat e kësaj interviste:

1. Shkruani një funksion që përmbyset në uint32_t të gjitha pjesët. (puna me bit është shumë e popullarizuar në intervista, unë e rekomandoj atë)
2.

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

Çfarë do të kthejë ky funksion? (zgjidhje në letër, pa kompjuter)

3. Funksioni për llogaritjen e mesatares aritmetike të dy numrave int32_t.

4. Cilat janë metodat e daljes në programe, përfshirë. në një rrjedhë gabimesh.

Përzgjedhja e tretë ishte relativisht e kohëve të fundit dhe nuk do të habitesha nëse do të kishte ende një pyetësor të tillë, kështu që nuk do të zbuloj kompaninë që të mos i ekspozoj... Por në përgjithësi do të jap një shembull. e pyetjeve të mundshme, dhe nëse i njihni pyetjet tuaja, atëherë ju them përshëndetje :).

Pyetjet e intervistës #3

  1. Jepet një shembull i kodit të kalimit të pemës; është e nevojshme të tregohet se çfarë po bëhet në këtë kod dhe të vihen në dukje gabimet.
  2. Shkruani një shembull të mjetit ls. Me opsionin më të thjeshtë "-l".
  3. Jepni një shembull se si të bëni lidhje statike dhe dinamike. Qfare eshte dallimi?
  4. Si funksionon RS-232? Cili është ndryshimi midis RS-485 dhe RS-232? Cili është ndryshimi midis RS-232 dhe RS-485 nga këndvështrimi i një programuesi?
  5. Si funksionon USB (nga këndvështrimi i një programuesi)?
  6. Përkthimi i tekstit teknik nga rusishtja në anglisht.

Një intervistë e suksesshme nuk është çelësi i punës së suksesshme

Ky kapitull ndoshta nuk është as për programuesit (edhe pse edhe për ta), por më shumë për HR. Kompanitë më adekuate nuk i shikojnë me përpikëri rezultatet e intervistave. Është normale të bësh gabime; më shpesh ata shikojnë se si një person di të zgjidhë problemet dhe arsyeton.

Një nga problemet kryesore është se një kandidat zgjidh me sukses problemet gjatë intervistave, tregon se është një specialist i shkëlqyer, por dështon në detyrën e parë reale. Nuk do të gënjej, kjo më ka ndodhur edhe mua. Unë kalova me sukses nëpër të gjitha qarqet e ferrit, zgjidha të gjitha detyrat e provës, por në kushte reale puna doli të ishte shumë e vështirë për shkak të papërvojë të thjeshtë. Hyrja në bord nuk është detyra më e vështirë. Gjëja më e vështirë është të qëndrosh në bordin e kësaj kompanie.

Prandaj, u besoj më shumë kompanive që bëjnë intervista të thjeshta me kandidatin dhe thonë: pas muajit të parë të punës, do të jetë e qartë nëse jeni i përshtatshëm për ne apo jo. Kjo është qasja më adekuate, po, ndoshta pak e shtrenjtë, por është menjëherë e qartë se kush është kush.

Ekziston një mundësi tjetër për intervistat: kur e kaloni me sukses, por në bazë të rezultateve të intervistës kuptoni që punëdhënësi është plotësisht i pamjaftueshëm. Refuzoj menjëherë punën nëse më ofrohet të punoj si sipërmarrës individual, duke premtuar të ardhura të mëdha. Kjo është një formë e evazionit fiskal për një organizatë operuese dhe pse problemet e punëdhënësit duhet të më shqetësojnë mua si programues? Një tjetër opsion janë agjenci të ndryshme qeveritare. Unë pata një intervistë, si rezultat i së cilës më ofruan një rrogë të mirë, por ata thanë që programuesi i mëparshëm u largua, u sëmur, vdiq, shkoi në qejf për shkak të ngarkesës së punës dhe dita juaj e punës fillon në 8 të mëngjesit. . Nga një vend i tillë edhe ai vrapoi aq sa i shkëlqenin thembrat. Po, HR, ju lutemi vini re se programuesit janë të gatshëm të refuzojnë edhe punën më të shijshme nëse dita e punës duhet të fillojë herët në mëngjes.

Në fund, unë do të jap një video të shkëlqyer të përzgjedhjes së programuesit, një pamje nga ekrani i së cilës është dhënë në fillim të këtij artikulli. Unë gjithashtu kam pasur një intervistë të tillë më shumë se një herë. Nëse shihni tiraninë në fazën e pyetjeve, atëherë respektoni veten, ngrihuni, merrni gjërat tuaja dhe largohuni - kjo është normale. Nëse HR dhe menaxheri pretendojnë veten në shpenzimet tuaja gjatë intervistës, kjo tregon se kompania është toksike dhe ju nuk duhet të punoni atje nëse nuk ju pëlqejnë shefat e papërshtatshëm.

Gjetjet

Programues, shkoni në intervista! Dhe gjithmonë përpiquni të promovoheni. Le të themi nëse merrni N para, atëherë shkoni për një intervistë për të paktën N*1,2, ose më mirë N*1,5. Edhe nëse nuk e merrni menjëherë këtë vend të lirë, do të kuptoni se çfarë nevojitet për këtë nivel pagese.
Vëzhgimet e mia kanë treguar se njohja e mirë e gjuhës angleze, përvoja mjaft e pasur në industri dhe vetëbesimi vendosin. Kjo e fundit është cilësia kryesore, si kudo në jetë. Si rregull, një kandidat më i sigurt mund të performojë më mirë në një intervistë, madje edhe me më shumë gabime, sesa një aplikant i shkëlqyer, por më i turpshëm dhe proaktiv. Fat i mirë me intervistat tuaja!

Konkursi P/S

Nëse keni shembuj interesantë të problemeve me të cilat ju ka ngarkuar HR, atëherë mirëpritni në komente. Ne kemi përgatitur një konkurs të vogël - kushtet janë të thjeshta: ju shkruani detyrën më të pazakontë që keni pasur gjatë një interviste, lexuesit e vlerësojnë atë (plus), dhe pas një jave ne përmbledhim rezultatet dhe shpërblejmë fituesin me të mira argëtuese.

Programues, shkoni në intervista

Programues, shkoni në intervista

Burimi: www.habr.com

Shto një koment