Programuotojai, eikite į interviu

Programuotojai, eikite į interviu
Nuotrauka paimta iš vaizdo įrašo iš kanalo "Karingi ametistai»

Apie 10 metų dirbau sistemos programuotoju Linux sistemoje. Tai branduolio moduliai (branduolių erdvė), įvairūs demonai ir darbas su aparatine įranga iš vartotojo erdvės (vartotojo erdvės), įvairūs įkrovos įkrovikliai (u-boot ir kt.), valdiklio programinė įranga ir daug daugiau. Net kartais pasitaikydavo nupjauti žiniatinklio sąsają. Tačiau dažniau pasitaikydavo, kad tekdavo sėdėti prie lituoklio ir bendrauti su spausdintinių plokščių dizaineriais. Viena iš tokio darbo problemų yra ta, kad gana sunku įvertinti savo kompetencijos lygį, nes vieną užduotį gali išmanyti labai giliai, o kitos gali iš viso nežinoti. Vienintelis adekvatus būdas suprasti, kur eiti ir kokios srovės dabar yra, yra eiti į pokalbį.

Šiame straipsnyje norėčiau apibendrinti savo patirtį pokalbyje dėl laisvos Linux sistemos programuotojo darbo vietos, pokalbio specifiką, darbą ir kaip įvertinti savo asmeninį žinių lygį bendraujant su būsimu darbdaviu ir ko neturėtumėte. tikėtis iš to.

Straipsnyje bus nedidelis konkursas su prizais.

Profesijos bruožai

Sistemų programuotojas konkrečioje srityje, kurioje dirbau, yra visiškas bendrininkas: turėjau ir rašyti kodą, ir derinti techninę įrangą. Ir dažnai reikėdavo ką nors lituoti pačiam. Retkarčiais atsitikdavo taip, kad mano aparatinės įrangos patikslinimai buvo perduoti kūrėjams. Todėl norint dirbti šioje srityje reikia gana geros žinių bazės tiek skaitmeninės schemos, tiek programavimo srityje. Dėl šios priežasties pokalbiai dėl sistemų programuotojo pareigų dažnai atrodo kaip elektronikos specialisto paieška.

Programuotojai, eikite į interviu
Tipiška sistemų programuotojo darbo vieta.

Aukščiau esančioje nuotraukoje parodyta mano įprasta darbo vieta derinant tvarkykles. Loginis analizatorius rodo perduodamų pranešimų teisingumą, osciloskopas stebi signalo briaunų formą. Be to, jtag derinimo priemonė nebuvo įtraukta į rėmelį, kuris naudojamas, kai standartiniai derinimo įrankiai nebeveikia. Ir jūs turite mokėti dirbti su visa šia įranga.

Dažnai nutinka taip, kad kai kuriuos elementus perlituoti ir topologijos klaidas patiems greičiau ir paprasčiau ištaisyti, nei nunešti gaminį montuotojui. Ir tada litavimo stotis taip pat įsikuria jūsų darbo vietoje.

Kitas kūrimo ypatumas tvarkyklės ir aparatūros lygiu yra tai, kad „Google“ nepadeda. Dažnai turite ieškoti informacijos apie savo problemą ir yra trys nuorodos, iš kurių dvi yra jūsų pačių klausimai kokiame nors forume. Arba dar blogiau, kai susiduriate su klausimu iš to paties vargšo vaikino, kuris jį uždavė prieš 5 metus branduolio adresų sąraše ir niekada negavo atsakymo. Šiame darbe, be klaidų projektuojant tiek techninę, tiek programinę įrangą, dažnai susiduriama su dokumentacijos klaidomis – tai bene skaudžiausios ir nemaloniausios problemos. Kartais registrai aprašomi neteisingai arba iš viso nėra jų aprašymo. Tokias problemas galima išspręsti tik moksliškai sumetus atsitiktinius skaičius į tam tikrus registrus (savotiškas atvirkštinis). Dažnai atsitinka taip, kad procesoriuje yra tam tikrų funkcijų, tačiau niekas, išskyrus jus, šios funkcijos neįdiegė (ypač jei procesorius naujas). O tai reiškia vaikščioti per lauką su grėbliu, kurio 70% skirta vaikams. Bet kai yra dokumentai, net ir su klaidomis, tai jau yra pažanga. Gana dažnai nutinka taip, kad dokumentacijos visai nėra, o štai vaikščiojimas minų laukais prasideda degant lygintuvui. Ir taip, aš taip pat sėkmingai išsprendžiau tokias problemas.

Interviu

Mano nuomone, į pokalbius reikėtų eiti bent kartą per pusmetį, net jei dievinate savo darbą ir nenorite jo keisti. Pokalbis leidžia suprasti savo, kaip specialisto, lygį. Manau, kad vertingiausi yra tie, kurie nepavyksta. Būtent jie tiksliausiai parodo, kurias jūsų žinių kliūtis reikia tobulinti.

Dar viena įdomi savybė – interviu kokybė. Tai mano pastebėjimas, ir tai netiesa, prisipažįstu, kad man tiesiog pasisekė. Jei pokalbis vyksta pagal scenarijų:

  • Papasakokite apie save;
  • Turime tokių užduočių;
  • tau patinka?

Ir jei po šio dialogo jūs vienas kitam patinkate, einate į darbą, tada, kaip taisyklė, kompanija ir užduotys pasirodo labai malonios ir tinkamos. Jei interviu panašus į perėjimą per 12 pragaro ratų: pirmas interviu su HR, po to interviu su programuotojų grupe, tada režisierius, dar daugiau namų darbų ir pan., tai paprastai tai buvo žlugusios organizacijos, kuriose aš nedirbau. labai ilgai. Vėlgi, tai yra asmeninis pastebėjimas, tačiau paprastai per didelė biurokratija ir užsitęsęs įdarbinimo procesas rodo, kad įmonėje vyksta tie patys procesai. Sprendimai priimami lėtai ir neefektyviai. Buvo ir priešingų situacijų, kai buvo interviu pragaro ratai, o kompanija pasirodė puiki, o kai po pliaukštelėjimo per riešą kompanija pasirodė esanti pelkė, bet tokių pasitaiko retai.

Jei manote, kad scenarijus: susipažinote, papasakojote apie save ir įsidarbinote, egzistuoja tik mažose įmonėse, tada ne. Tai mačiau labai didelėse įmonėse, kuriose dirba daugiau nei šimtai žmonių ir kurios yra atstovaujamos pasaulio rinkose. Tai normalus mechanizmas, ypač jei turite turtingą patirtį ir turite galimybę paskambinti ankstesniems darbdaviams ir pasiteirauti apie jus.

Man tai labai geras įmonės rodiklis, kai prašo parodyti savo projektų ir kodo pavyzdžių. Iš karto parodomas pareiškėjo mokymo lygis. Ir, mano nuomone, kandidatų atrankos požiūriu tai yra efektyviausias atrankos būdas nei parodos interviu. Tiesą sakant, pokalbyje gali nepavykti iš susijaudinimo arba, priešingai, gauti adrenalino. Tačiau realiame darbe jūs negalite susidoroti su tikromis užduotimis. Ir aš taip pat susidūriau su tuo, kai pati apklausiau žmones. Ateina specialistas, parodo save kaip puikų, man jis patiko, jis patiko mums. O aš mėnesį kovojau su pačia paprasčiausia problema, o dėl to kitas programuotojas per porą dienų ją išsprendė. Teko išsiskirti su tuo programuotoju.

Interviu metu ypač vertinu programavimo užduotis. Ir tie, kuriuos reikia išspręsti per susitikimą, patiriant stresą ir namų darbus. Pirmasis parodo, kaip esate pasirengęs greitai ir tiksliai išspręsti problemas stresinėje situacijoje ir kritinėje situacijoje. Antrasis parodo jūsų kompetencijos lygį ir gebėjimą ieškoti informacijos bei spręsti aktualias problemas.

Įdomiausi darbai buvo mūsų šalies gynybos komplekse. Darbo metu teko spręsti tiesiog fantastiškas problemas, apie kurias komerciniai programuotojai net nesvajojo. Superkompiuteriai, maršrutizatorių projektavimas, įvairios mazgų kovos sistemos – tai nepaprastai įdomu. Kai parado metu matote kompleksą, kuriame saugomas jūsų kodas, tai tikrai malonu. Kad ir kaip būtų keista, interviu su tokiomis kompanijomis dažniausiai būna labai paprasti, tiesiogine to žodžio prasme ateina, patinka, priimami (turbūt kariuomenės specifika, kuri nemėgsta per daug kalbėti), yra uždėta. Iššūkiai, su kuriais susidūriau, buvo tikrai įdomūs ir sudėtingi. Su patirtimi paaiškėjo, kad jie tinka mokytis būti kokybišku sistemų programuotoju. Yra ir trūkumų, ir tai net nėra mažas atlyginimas. Šiuo metu atlyginimas gynybos komplekse visai neblogas, su priedais ir išmokomis. Paprastai čia daug biurokratijos, ilgos darbo valandos, begaliniai skubantys darbai, darbas patiriamas didžiulio streso. Tam tikrais atvejais negalima atmesti slaptumo, o tai kelia tam tikrų problemų keliaujant į užsienį. Be to, žinoma, viršininkų tironija, ir tai, deja, taip pat atsitinka. Nors mano patirtis dirbant su klientų atstovu yra be galo maloni. Tai kolektyvinis trijų skirtingų mokslinių tyrimų institutų ir įmonių, susijusių su valstybės gynybos užsakymais, įspūdis.

Interviu užduotys

Kad nekiltų nesusipratimų ir kad nebūtų atskleistos įmonės, su kuriomis kalbėjausi, likimo neviliosiu ir nenurodysiu jų detalių. Tačiau esu dėkingas už kiekvieną interviu, už laiką, kurį žmonės skyrė man, už galimybę pažvelgti į save iš šalies. Galiu pasakyti tik tiek, kad užduotys buvo skirtos didelėms tarptautinėms įmonėms, atstovaujamoms įvairiose šalyse.

Pasakysiu įdomiausią dalyką: kokios užduotys pateikiamos pokalbių metu. Apskritai dažniausiai užduodami klausimai dėl laisvos sistemos programuotojo ir mikrovaldiklio programuotojo yra bitų operacijos, visais įmanomais variantais. Todėl geriausiai pasiruoškite šioje srityje.

Antra labiausiai poliarizuojanti tema yra kelrodžiai, tai tikrai turėtų iššokti iš jūsų dantų. Kad jie tave pažadintų vidury nakties ir galėtum viską pasakoti bei parodyti.

Pavogiau galvoje klausimus iš kelių interviu ir pateiksiu juos čia, nes man jie gana įdomūs. Sąmoningai neduodu atsakymų į šiuos klausimus, kad skaitytojai patys galėtų atsakyti į šiuos klausimus komentaruose ir turėtų šiek tiek miltelių eidami tikrą interviu.

Klausimai Nr.1

I. SI žinios. Ką reiškia šie įrašai:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Ar visi įrašai teisingi?

II. Kodėl ši programa sukels segmentavimo gedimą?

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

III. Būti protingam.

Yra vieno metro ilgio lazda. Dešimt skruzdėlių atsitiktinai nukrenta ant jos, šliaužiodamos įvairiomis kryptimis. Vienos skruzdėlės judėjimo greitis yra 1 m/s. Jei skruzdėlė sutinka kitą skruzdėlę, ji apsisuka ir šliaužia priešinga kryptimi. Kiek daugiausiai reikia palaukti, kol visos skruzdėlės nukris nuo lazdos?

Kitas pokalbis man buvo nesėkmingas ir manau, kad jis buvo naudingiausias savo programavimo praktikoje. Tai parodė mano nekompetencijos gilumą. Prieš šį pokalbį buvau susipažinęs su kiekvienu iš šių klausimų ir jie nuolat iškildavo mano praktikoje, bet kažkaip neteikiau jiems didelės reikšmės, todėl ir nelabai juos supratau. Todėl gėdingai neišlaikiau šio egzamino. Ir aš esu labai dėkingas, kad įvyko tokia nesėkmė, ji mane labiausiai paveikė. Manote, kad esate šaunus specialistas, išmanote grandinių dizainą, sąsajas ir darbą su branduoliu. Ir tada jūs turite tikrų klausimų ir plūduriuojate. Taigi pažiūrėkime.

2 interviu klausimai

Aparatinės įrangos problemos.

  • Kaip Linux sistemos skambučiai išdėstomi asamblėjos kalba ARM procesoriuje, x86. Koks skirtumas?
  • Kokie yra sinchronizavimo įrankiai? Kurias sinchronizavimo priemones galima naudoti pertraukimo kontekste, kurios ne ir kodėl?
  • Kuo skiriasi i2c autobusas ir spi autobusas?
  • Kodėl i2c magistralėje yra terminatoriai ir kokia jų vertė?
  • Ar RS-232 sąsaja gali veikti TIK dviem laidais: RX ir TX? Čia pateiksiu atsakymą: pasirodo, kad tai blogai, 9600, bet gali!!!
  • O dabar antras klausimas: kodėl?
  • Koks yra geriausias būdas daugiasluoksnėse plokštėse išdėstyti signalo linijas ir maitinimą ir kodėl? Maitinimas sluoksnių viduje ar signalinės linijos sluoksnių viduje? (Klausimas paprastai yra tik apie grandinės dizainą).
  • Kodėl diferencialinės linijos turi vėžes, kurios visur eina kartu?
  • RS-485 autobusas. Paprastai tokioje linijoje yra terminatoriai. Tačiau mes turime žvaigždžių grandinę su kintamu prijungiamų modulių skaičiumi. Kokias priemones reikia naudoti norint išvengti susidūrimų ir trukdžių?
  • Kas yra raudonieji ir dvejetainiai medžiai?
  • Kaip dirbti su cmake?
  • Klausimai apie yocto Linux kūrimą.

Šio interviu tikslai:

1. Parašykite funkciją, kuri invertuoja į uint32_t visi bitai. (darbas su bitais labai populiarus interviu metu, rekomenduoju)
2.

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

Ką ši funkcija grąžins? (sprendimas popieriuje, be kompiuterio)

3. Dviejų skaičių aritmetinio vidurkio apskaičiavimo funkcija int32_t.

4. Kokie yra išvesties metodai programose, įskaitant. į klaidų srautą.

Trečioji atranka buvo palyginti neseniai, ir nenustebčiau, jei ten dar yra tokia anketa, todėl įmonės neatskleisiu, kad jų nepaskleisčiau... Bet apskritai pateiksiu pavyzdį galimų klausimų, o jei atpažįstate savo klausimus, tada sveikinu :).

3 interviu klausimai

  1. Pateiktas medžio perėjimo kodo pavyzdys, būtina pasakyti, kas šiame kode daroma, ir nurodyti klaidas.
  2. Parašykite ls naudingumo pavyzdį. Su paprasčiausiu variantu „-l“.
  3. Pateikite pavyzdį, kaip atlikti statinį ir dinaminį susiejimą. Koks skirtumas?
  4. Kaip veikia RS-232? Kuo skiriasi RS-485 ir RS-232? Kuo skiriasi RS-232 ir RS-485 programuotojo požiūriu?
  5. Kaip veikia USB (programuotojo požiūriu)?
  6. Techninio teksto vertimas iš rusų į anglų kalbą.

Sėkmingas pokalbis nėra sėkmingo darbo garantija

Šis skyrius tikriausiai net ne programuotojams (nors ir jiems), o labiau HR. Tinkamiausios įmonės į pokalbių rezultatus nežiūri skrupulingai. Klysti yra normalu, dažniausiai jie žiūri į tai, kaip žmogus moka spręsti problemas ir samprotauti.

Viena iš esminių problemų yra ta, kad kandidatas sėkmingai išsprendžia problemas pokalbių metu, parodo save kaip puikų specialistą, bet nesugeba atlikti pirmos realios užduotys. Nemeluosiu, taip nutiko ir man. Sėkmingai perėjau visus pragaro ratus, išsprendžiau visas testo užduotis, tačiau realiomis sąlygomis darbas pasirodė per sunkus dėl paprasto nepatyrimo. Įlipti į laivą nėra pati sunkiausia užduotis. Sunkiausia išlikti šios bendrovės laive.

Todėl pasitikiu daugiau įmonių, kurios atlieka paprastus pokalbius su kandidatu ir sako: po pirmo darbo mėnesio bus aišku, tinkate mums ar ne. Tai adekvatiausias būdas, taip, galbūt šiek tiek brangus, bet iš karto aišku, kas yra kas.

Yra ir kitas pokalbių variantas: kai jį sėkmingai išlaikai, bet pagal pokalbio rezultatus supranti, kad darbdavys yra visiškai neadekvatus. Iš karto atsisakau darbo, jei man pasiūlo dirbti individualiu verslininku, žadančiu dideles pajamas. Tai yra mokesčių slėpimo forma veikiančiai organizacijai, o kodėl darbdavio problemos turėtų jaudinti mane kaip programuotoją? Kitas variantas – įvairios valstybinės agentūros. Turėjau interviu, dėl to man buvo pasiūlytas geras atlyginimas, bet jie sakė, kad ankstesnis programuotojas išėjo, susirgo, mirė, išgėrė dėl darbo krūvio, o jūsų darbo diena prasideda 8 val. . Iš tokios vietos jis irgi bėgo taip, kad kulniukai blizgėjo. Taip, HR, atkreipkite dėmesį, kad programuotojai yra pasirengę atsisakyti net skaniausio darbo, jei darbo diena turi prasidėti anksti ryte.

Pabaigoje pateiksiu puikų programuotojo pasirinkimo vaizdo įrašą, kurio ekrano kopija pateikta šio straipsnio pradžioje. Taip pat ne kartą turėjau tokį interviu. Jei klausimų etape matote tironiją, gerbkite save, atsikelkite, pasiimkite daiktus ir išeikite - tai normalu. Jei personalas ir vadovas pokalbio metu tvirtina savo sąskaita, tai rodo, kad įmonė yra toksiška ir neturėtumėte joje dirbti, nebent jums patinka netinkami viršininkai.

išvados

Programuotojai, eikite į interviu! Ir visada stenkitės būti paaukštintas. Tarkime, jei gausite N pinigų, eikite į pokalbį bent už N*1,2 arba geriau N*1,5. Net jei iš karto neužimsite šios laisvos darbo vietos, suprasite, ko reikia tokiam atlyginimo lygiui.
Mano pastebėjimai parodė, kad lemia geros anglų kalbos žinios, pakankamai turtinga patirtis pramonėje ir pasitikėjimas savimi. Pastaroji yra pagrindinė kokybė, kaip ir visur gyvenime. Paprastai labiau pasitikintis kandidatas pokalbyje gali pasirodyti geriau, net ir turėdamas daugiau klaidų, nei puikus, bet drovesnis ir iniciatyvesnis kandidatas. Sėkmės jums interviu!

P/S konkursas

Jei turite įdomių problemų, su kuriomis jus užkėlė HR, pavyzdžių, kviečiame komentaruose. Parengėme nedidelį konkursą – sąlygos paprastos: parašote neįprasčiausią užduotį, kurią turėjote interviu metu, skaitytojai ją įvertina (pliusas), o po savaitės susumuojame rezultatus ir apdovanojame nugalėtoją smagiomis gėrybėmis.

Programuotojai, eikite į interviu

Programuotojai, eikite į interviu

Šaltinis: www.habr.com

Добавить комментарий