Programozók, menjetek interjúkra

Programozók, menjetek interjúkra
A kép a "csatorna" videójából készültHarcos ametisztek»

Körülbelül 10 évig dolgoztam Linux rendszerprogramozóként. Ezek a kernel modulok (kernel space), a különféle démonok és a hardverrel való munkavégzés a felhasználói területrõl (felhasználói terület), a különbözõ rendszerbetöltők (u-boot stb.), a vezérlő firmware és még sok más. Még néha előfordult, hogy elvágták a webes felületet. De gyakrabban előfordult, hogy egy forrasztópákával kellett ülnöm, és kommunikálni kellett a nyomtatott áramköri lapok tervezőivel. Az ilyen munka egyik problémája, hogy meglehetősen nehéz felmérni a kompetencia szintjét, hiszen lehet, hogy egy feladatot nagyon mélyen ismer, de lehet, hogy egy másikat egyáltalán nem. Az egyetlen megfelelő módja annak, hogy megértsük, hová kell menni, és milyen áramlatok vannak most, az az, ha interjúra megyünk.

Ebben a cikkben szeretném összefoglalni a Linux rendszerprogramozói állás meghirdetésével kapcsolatos interjúkkal kapcsolatos tapasztalataimat, az interjú sajátosságait, a munkát, valamint azt, hogy hogyan értékelheti személyes tudásszintjét egy leendő munkáltatóval való kommunikáció során, és mit nem szabad. elvár tőle.

A cikk tartalmazni fog egy kis versenyt nyereményekkel.

A szakma jellemzői

A rendszerprogramozó azon a területen, ahol dolgoztam, teljesen általános: kódot kellett írnom és hardvert is hibakeresnem. És gyakran szükség volt valamit saját kezűleg forrasztani. Időnként előfordult, hogy a hardver beállításaimat a fejlesztőkhöz vitték át. Ezért ahhoz, hogy ezen a területen dolgozhasson, meglehetősen jó tudásbázisra van szüksége, mind a digitális áramkörök, mind a programozás területén. Emiatt a rendszerprogramozói pozícióra vonatkozó interjúk gyakran úgy néznek ki, mint egy elektronikai szakember keresése.

Programozók, menjetek interjúkra
Rendszerprogramozók tipikus munkaállomása.

A fenti képen a tipikus munkahelyem látható az illesztőprogramok hibakeresése során. A logikai analizátor a továbbított üzenetek helyességét mutatja, az oszcilloszkóp a jelélek alakját figyeli. Ezenkívül a jtag hibakereső nem szerepel a keretben, amelyet akkor használnak, amikor a szabványos hibakereső eszközök már nem tudnak megbirkózni. És tudnia kell dolgozni ezzel a berendezéssel.

Gyakran előfordul, hogy gyorsabb és egyszerűbb egyes elemeket újraforrasztani és a topológiai hibákat saját kezűleg kijavítani, mint telepítőhöz vinni a terméket. És akkor egy forrasztóállomás is helyet kap a munkahelyén.

Az illesztőprogram- és hardverszintű fejlesztés másik jellemzője, hogy a Google nem segít. Gyakran információkat kell keresnie a problémájával kapcsolatban, és három link található, amelyek közül kettő a saját kérdése valamilyen fórumon. Vagy ami még rosszabb, amikor ugyanattól a szegény fickótól kapsz egy kérdést, aki 5 évvel ezelőtt tette fel a kernel levelezőlistáján, és nem kapott választ. Ebben a munkában a hardver és a szoftver tervezési hibái mellett gyakran előfordulnak dokumentációs hibák is - valószínűleg ezek a legsúlyosabb és legkellemetlenebb problémák. Néha a regiszterek leírása hibás, vagy egyáltalán nincs leírásuk. Az ilyen problémákat csak úgy lehet megoldani, ha tudományosan véletlen számokat szúrnak be bizonyos regiszterekbe (egyfajta fordítottja). Gyakran előfordul, hogy a processzor tartalmaz bizonyos funkciókat, de Önön kívül senki nem valósította meg ezt a funkciót (főleg, ha a processzor új). Ez pedig azt jelenti, hogy gereblyével sétálunk át a pályán, aminek 70%-a gyerekeknek szól. De ha van dokumentáció, még hibákkal is, az már előrelépés. Gyakran megesik, hogy egyáltalán nincs dokumentáció, és akkor kezdődik az aknamezőkön való séta, amikor a vas ég. És igen, én is sikeresen megoldottam az ilyen problémákat.

interjúk

Az a véleményem, hogy félévente legalább egyszer el kell menned interjúra, még akkor is, ha imádod a munkádat, és nem akarsz változtatni rajta. Az interjú lehetővé teszi, hogy megértse szakemberi szintjét. Úgy gondolom, hogy a legértékesebb interjúk azok, amelyek kudarcot vallanak. Ők mutatják meg a legpontosabban, hogy tudásod mely szűk keresztmetszetein kell javítani.

Egy másik érdekesség az interjúk minősége. Ez az én megfigyelésem, és ez nem az igazság, bevallom, csak szerencsém volt. Ha az interjú a forgatókönyv szerint zajlik:

  • Mondj valamit magadról;
  • Vannak ilyen feladataink;
  • kedveled?

És ha e párbeszéd után szeretitek egymást, munkába indultok, akkor a társaság és a feladatok általában nagyon kellemesnek és megfelelőnek bizonyulnak. Ha egy interjú a pokol 12 körének áthaladásához hasonlít: az első interjú a HR-essel, majd egy interjú egy programozói csoporttal, majd a rendező, még több házi feladat stb., akkor ezek általában bukott szervezetek voltak, amelyekben nem dolgoztam. nagyon sokáig. Ez megint csak személyes megfigyelés, de általában a túl sok bürokrácia és az elhúzódó felvételi folyamat azt mutatja, hogy pontosan ugyanazok a folyamatok zajlanak a vállalaton belül. A döntések lassan és eredménytelenül születnek. Voltak fordított helyzetek is, amikor interjúpokol körei voltak, és remekül sikerült a társaság, és amikor egy csuklócsapás után mocsárnak bizonyult a társaság, de ezek ritkák.

Ha úgy gondolja, hogy a forgatókönyv: találkoztam, mesélt magáról és felvettek, csak kis cégeknél létezik, akkor nem. Láttam ezt nagyon nagy cégeknél, amelyek több mint száz embert foglalkoztatnak, és képviseltetik magukat a világpiacokon. Ez egy normális mechanizmus, különösen akkor, ha gazdag múlttal rendelkezik, és lehetősége van felhívni korábbi munkáltatóit, és rákérdezni.

Számomra nagyon jó mutatója egy cégnek, ha példákat kérnek a projektjeikre és a kódjukra. A jelentkező képzettségi szintje azonnal megjelenik. És számomra a jelöltek kiválasztása szempontjából ez a leghatékonyabb kiválasztási módszer, mint a műsorinterjúk. Valójában az izgalomtól megbukhatsz egy interjún, vagy éppen ellenkezőleg, kijöhetsz az adrenalinból. De valódi munkában nem tudsz megbirkózni a valódi feladatokkal. És ezzel én is találkoztam, amikor magam készítettem interjút emberekkel. Jön egy szakember, kitűnőnek mutatja magát, megkedveltem, ő is minket. Én pedig egy hónapig küzdöttem a legegyszerűbb problémával, és ennek eredményeként egy másik programozó pár nap alatt megoldotta. Meg kellett válnom attól a programozótól.

Az interjúk során különösen nagyra értékelem a programozási feladatokat. És azokat, amelyeket közvetlenül a megbeszélés alatt, stressz és házi feladat alatt kell megoldani. Az első megmutatja, mennyire készen áll a problémák gyors és pontos megoldására stresszhelyzetben és vészhelyzetben. A második a kompetencia szintjét és az információkeresésre és az aktuális problémák megoldására való képességét mutatja.

A legérdekesebb munkáim hazánk védelmi komplexumában voltak. A munka során egyszerűen fantasztikus problémákat kellett megoldanom, amelyekről a kereskedelmi programozók nem is álmodtak. Szuperszámítógépek, útválasztók tervezése, különféle csomóponti harci rendszerek – ez hihetetlenül izgalmas. Amikor a felvonulás során lát egy komplexumot, amely tárolja a kódját, az nagyon szép. Furcsa módon az ilyen cégekkel készített interjúk általában nagyon egyszerűek, szó szerint jönnek, megtetszenek, elfogadnak (valószínűleg a katonaság sajátosságai, akik nem szeretnek túl sokat beszélni), egymásra épülnek. A kihívások, amelyekkel ott szembesültem, valóban érdekesek és kihívásokkal teliek voltak. Tapasztalattal kiderült, hogy jó minőségű rendszerprogramozónak tanulni jók. Vannak hátrányai is, és ez nem is alacsony bér. Jelenleg a védelmi komplexum fizetése meglehetősen tisztességes, bónuszokkal és juttatásokkal. Általános szabály, hogy sok a bürokrácia, hosszú a munkaidő, a végtelen rohanó munkák és a stresszes munka. Bizonyos esetekben nem zárható ki a titoktartás, ami további problémákat okoz a külföldi utazások során. Plusz persze a főnökök zsarnoksága, és ez, sajnos, megesik. Bár rendkívül kellemes az ügyfélképviselővel való együttműködésem. Ez három különböző, államvédelmi megrendelésekkel foglalkozó kutatóintézet és cég együttes benyomása.

Interjú feladatok

A félreértések elkerülése végett, és nehogy leleplezzem azokat a cégeket, akikkel interjút készítettem, nem kísértem a sorsot, és megadom az adataikat. De hálás vagyok minden interjúért, az időért, amit az emberek rám fordítottak, a lehetőségért, hogy kívülről nézhessek magamra. Csak azt tudom mondani, hogy a feladatok különböző országokban képviselt nemzetközi nagyvállalatokra vonatkoztak.

Elmondom a legérdekesebbet: milyen feladatokat adnak az interjúk során. Általánosságban elmondható, hogy a rendszerprogramozói és mikrokontroller-programozói állás betöltésekor a leggyakoribb kérdések a bitműveletek, minden lehetséges változatban. Ezért ezen a területen készülj fel a legjobban.

A második legsarkalatosabb téma az útbaigazító táblák, ennek nagyon le kellene ugrania. Hogy felébresszenek az éjszaka közepén, és mindent elmondhasson és mutasson.

Több interjúból is loptam kérdéseket a fejemben, és ezeket itt fogom előadni, mert elég érdekesnek találom őket. Szándékosan nem adok választ ezekre a kérdésekre, hogy az olvasók maguk is válaszolhassanak ezekre a kérdésekre a megjegyzésekben, és legyen egy kis púderük egy igazi interjú során.

Kérdések 1. sz

I. SI ismerete. Mit jelentenek a következő bejegyzések:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Minden bejegyzés helyes?

II. Miért dob ​​ez a program szegmentációs hibát?

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

III. Okos lenni.

Van egy 1 méter hosszú bot. Véletlenszerűen tíz hangya esik rá, különböző irányokba mászva. Egy hangya mozgási sebessége XNUMX m/s. Ha egy hangya egy másik hangyával találkozik, megfordul, és az ellenkező irányba kúszik. Mennyi ideig kell megvárnia, amíg az összes hangya leesik a botról?

A következő interjú sikertelen volt számomra, és ezt tartom a leghasznosabbnak a programozási gyakorlatomban. Ez megmutatta alkalmatlanságom mélységét. Az interjú előtt mindegyik kérdést ismertem, és folyamatosan felmerültek a gyakorlatomban, de valahogy nem tulajdonítottam nekik különösebb jelentőséget, így nem is értettem őket jól. Ezért szégyenteljesen megbuktam ezen a vizsgán. És nagyon hálás vagyok, hogy ilyen kudarc történt, ez volt rám a legkijózanítóbb hatással. Azt hiszed, hogy jó szakember vagy, ismered az áramkörtervezést, az interfészeket és a kernellel való munkát. És akkor valódi kérdéseid vannak, és lebegsz. Szóval lássuk.

Interjúkérdések #2

Hardver problémák.

  • A linux rendszerhívások elrendezése assembly nyelven ARM processzoron, x86-on. Mi a különbség?
  • Milyen szinkronizálási eszközök vannak? Mely szinkronizálási eszközök használhatók megszakítási környezetben, melyek nem, és miért?
  • Mi a különbség az i2c busz és az spi busz között?
  • Miért vannak terminátorok az i2c buszon és mi az értéke?
  • Működhet az RS-232 interfész CSAK két vezetéken: RX és TX? Itt adom a választ: Kiderült, hogy rossz, 9600-nál, de lehet!!!
  • És most a második kérdés: miért?
  • Mi a legjobb módja a jelvezetékek és a tápellátás elrendezésének többrétegű kártyákon, és miért? Táp a rétegeken belül, vagy jelvezetékek a rétegeken belül? (A kérdés általában pusztán az áramkör tervezésére vonatkozik).
  • Miért van a differenciálvonalaknak mindenütt együtt haladó nyomvonala?
  • RS-485 busz. Általában terminátorok vannak egy ilyen vonalon. Van azonban egy csillagáramkörünk, változó számú plug-in modullal. Milyen eszközöket kell alkalmazni az ütközések és az interferencia elkerülésére?
  • Mik azok a vörös és bináris fák?
  • Hogyan kell dolgozni a cmake-kel?
  • Kérdések a yocto Linux felépítésével kapcsolatban.

Az interjú céljai:

1. Írjon egy függvényt, amely invertál a következőre uint32_t az összes bitet. (A bitekkel való munka nagyon népszerű az interjúkon, ajánlom)
2.

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

Mit ad vissza ez a függvény? (megoldás papíron, számítógép nélkül)

3. Függvény két szám számtani középértékének kiszámítására int32_t.

4. Melyek a kimeneti módszerek a programokban, pl. hibafolyamba.

A harmadik válogatás viszonylag friss volt, és nem lepődnék meg, ha még mindig van ilyen kérdőív, ezért nem árulom el a céget, nehogy leleplezzük őket... De általánosságban mondok egy példát a lehetséges kérdésekről, és ha felismeri a kérdéseit, akkor köszönök :).

Interjúkérdések #3

  1. Példa a fa bejárási kódjára, meg kell mondani, hogy mi történik ebben a kódban, és rá kell mutatni a hibákra.
  2. Írjon példát az ls segédprogramra! A legegyszerűbb „-l” opcióval.
  3. Mondjon példát statikus és dinamikus összekapcsolásra. Mi a különbség?
  4. Hogyan működik az RS-232? Mi a különbség az RS-485 és az RS-232 között? Mi a különbség az RS-232 és az RS-485 között programozói szempontból?
  5. Hogyan működik az USB (programozói szempontból)?
  6. Szakszöveg fordítása oroszról angolra.

A sikeres interjú nem garancia a sikeres munkavégzésre

Ez a fejezet valószínűleg nem is a programozóknak szól (bár nekik is), hanem inkább a HR-eseknek. A legmegfelelőbb cégek nem nézik meg aprólékosan az interjúk eredményeit. Normális, hogy hibázunk; leggyakrabban azt nézik, hogy az ember hogyan tudja megoldani a problémákat, és hogyan okoskodjon.

Az egyik kulcsprobléma, hogy a jelölt sikeresen megoldja a problémákat az interjúk során, kiváló szakembernek mutatja magát, de az első igazi feladatnál elbukik. Nem hazudok, ez velem is megtörtént. Sikeresen bejártam a pokol minden körét, megoldottam az összes tesztfeladatot, de valós körülmények között a munka az egyszerű tapasztalatlanság miatt túl keménynek bizonyult. A felszállás nem a legnehezebb feladat. A legnehezebb ebben a társaságban maradni.

Ezért több olyan cégben bízom, akik egyszerű interjúkat készítenek a jelölttel, és azt mondják: az első hónap munkavégzés után kiderül, hogy alkalmas-e ránk vagy sem. Ez a legmegfelelőbb megközelítés, igen, talán egy kicsit drága, de rögtön kiderül, ki kicsoda.

Van egy másik lehetőség az interjúkra: amikor sikeresen teljesíted, de az interjú eredménye alapján megérted, hogy a munkáltató teljesen alkalmatlan. Azonnal visszautasítom a munkát, ha felajánlják, hogy egyéni vállalkozóként dolgozom, nagy bevételt ígérve. Ez egy működő szervezet adócsalási formája, és miért aggasztanak programozóként a munkáltató problémái? Egy másik lehetőség a különböző kormányzati szervek. Voltam egy interjún, aminek eredményeként jó fizetést ajánlottak, de azt mondták, hogy az előző programozó felmondott, megbetegedett, meghalt, a terhelés miatt bekapott, és a munkanapod reggel 8-kor kezdődik. . Ilyen helyről ő is úgy futott, hogy szikrázott a sarka. Igen, HR, vegye figyelembe, hogy a programozók készek visszautasítani a legfinomabb munkát is, ha a munkanapnak kora reggel kell kezdődnie.

A végén adok egy kiváló videót a programozó kiválasztásáról, amelynek képernyőképe a cikk elején található. Nekem is volt nem egyszer ilyen interjúm. Ha zsarnokságot lát a kérdések szakaszában, akkor tisztelje magát, keljen fel, vegye a dolgait és távozzon - ez normális. Ha a HR-es és a menedzser az Ön költségére érvényesül az interjú során, ez azt jelzi, hogy a cég mérgező, és nem szabad ott dolgozni, hacsak nem szereti a nem megfelelő főnököket.

Álláspontja

Programozók, menjetek interjúkra! És mindig próbálj meg előléptetni. Tegyük fel, ha N pénzt kapsz, akkor menj el interjúra legalább N*1,2-ért, vagy jobb esetben N*1,5-ért. Még ha nem is tölti be azonnal ezt a megüresedett állást, akkor is megérti, mi szükséges ehhez a fizetési szinthez.
Megfigyeléseim azt mutatják, hogy a jó angol nyelvtudás, a kellően gazdag iparági tapasztalat és az önbizalom dönt. Ez utóbbi a fő minőség, mint mindenhol az életben. A magabiztosabb jelölt általában több hibával is jobban teljesíthet az interjún, mint egy kiváló, de félénkebb és proaktívabb jelentkező. Sok sikert az interjúkhoz!

P/S verseny

Ha van érdekes példája olyan problémákra, amelyekkel a HR megterhelt, üdvözöljük a megjegyzésekben. Készítettünk egy kis versenyt - a feltételek egyszerűek: megírod a legszokatlanabb feladatot, ami egy interjú során felmerült, az olvasók értékelik (plusz), majd egy hét múlva összesítjük az eredményeket, és a győztest szórakoztató finomságokkal jutalmazzuk.

Programozók, menjetek interjúkra

Programozók, menjetek interjúkra

Forrás: will.com

Hozzászólás