Programmētāji, dodieties uz intervijām

Programmētāji, dodieties uz intervijām
Attēls ir ņemts no videoklipa no kanāla "Kaujinie ametistiĀ»

Es strādāju par Linux sistēmu programmētāju apmēram 10 gadus. Tie ir kodola moduļi (kodola telpa), dažādi dēmoni un darbs ar aparatÅ«ru no lietotāja telpas (lietotāja telpas), dažādi sāknÄ“Å”anas ielādētāji (u-boot utt.), Kontroliera programmaparatÅ«ra un daudz kas cits. Pat dažreiz gadÄ«jās pārgriezt tÄ«mekļa saskarni. Bet biežāk gadÄ«jās, ka nācās sēdēt pie lodāmura un sadarboties ar iespiedshēmas plates dizaineriem. Viena no Ŕāda darba problēmām ir tā, ka ir diezgan grÅ«ti novērtēt savas kompetences lÄ«meni, jo vienu uzdevumu tu vari zināt ļoti dziļi, bet citu var nezināt vispār. VienÄ«gais adekvātais veids, kā saprast, kur iet un kādi strāvojumi Å”obrÄ«d ir, ir doties uz intervijām.

Å ajā rakstā vēlos apkopot savu pieredzi, intervējot Linux sistēmu programmētāja vakancei, intervijas specifiku, darbu un to, kā novērtēt savu personÄ«go zināŔanu lÄ«meni, komunicējot ar topoÅ”o darba devēju un ko nevajadzētu darÄ«t. gaidÄ«t no tā.

Rakstā būs neliels konkurss ar balvām.

Profesijas iezīmes

Sistēmu programmētājs konkrētajā jomā, kurā strādāju, ir pilnÄ«gs vispārējs: man bija gan jāraksta kods, gan jāatkļūdo aparatÅ«ra. Un nereti radās nepiecieÅ”amÄ«ba paÅ”am kaut ko pielodēt. Ik pa laikam gadÄ«jās, ka manas aparatÅ«ras korekcijas pēc tam tika nodotas izstrādātājiem. Tāpēc, lai strādātu Å”ajā jomā, ir nepiecieÅ”ama diezgan laba zināŔanu bāze gan digitālo shēmu, gan programmÄ“Å”anas jomā. Tāpēc intervijas sistēmas programmētāja amatam bieži izskatās kā elektronikas speciālista meklÄ“Å”ana.

Programmētāji, dodieties uz intervijām
Tipiska darbstacija sistēmu programmētājam.

AugŔējā fotoattēlā ir redzama mana tipiskā darba vieta draiveru atkļūdoÅ”anas laikā. LoÄ£iskais analizators parāda pārsÅ«tÄ«to ziņojumu pareizÄ«bu, osciloskops uzrauga signāla malu formu. Tāpat rāmÄ« nebija iekļauts jtag atkļūdotājs, kas tiek izmantots, kad standarta atkļūdoÅ”anas rÄ«ki vairs netiek galā. Un jums ir jāspēj strādāt ar visu Å”o aprÄ«kojumu.

Nereti gadās, ka ātrāk un vienkārŔāk ir pārlodēt dažus elementus un izlabot topoloÄ£ijas kļūdas paÅ”iem, nekā vest preci pie uzstādÄ«tāja. Un tad jÅ«su darba vietā apmetas arÄ« lodÄ“Å”anas stacija.

Vēl viena attÄ«stÄ«bas iezÄ«me draivera un aparatÅ«ras lÄ«menÄ« ir tā, ka Google nepalÄ«dz. Bieži vien jums ir jāmeklē informācija par savu problēmu, un ir trÄ«s saites, no kurām divas ir jÅ«su jautājumi kādā forumā. Vai vēl ļaunāk, kad jÅ«s saskaraties ar jautājumu no tā paÅ”a nabaga, kurÅ” to uzdeva pirms 5 gadiem kodola adresātu sarakstā un nekad nesaņēma atbildi. Å ajā darbā lÄ«dzās kļūdām gan aparatÅ«ras, gan programmatÅ«ras projektÄ“Å”anā bieži nākas saskarties ar dokumentācijas kļūdām ā€“ tās, iespējams, ir smagākās un nepatÄ«kamākās problēmas. Dažkārt reÄ£istri ir aprakstÄ«ti nepareizi vai tiem vispār nav apraksta. Šādas problēmas var atrisināt, tikai zinātniski iegrūžot nejauÅ”us skaitļus noteiktos reÄ£istros (sava ā€‹ā€‹veida reverss). Bieži gadās, ka procesors satur kādu funkcionalitāti, taču neviens, izņemot jÅ«s, Å”o funkcionalitāti neieviesa (Ä«paÅ”i, ja procesors ir jauns). Un tas nozÄ«mē staigāt pa lauku ar grābekli, no kura 70% ir bērniem. Bet, ja ir dokumentācija, pat ar kļūdām, tas jau ir progress. Diezgan bieži gadās, ka dokumentācijas nav vispār, un tieÅ”i tad, kad staigāŔana pa mÄ«nu laukiem sākas, kad dzelzs deg. Un jā, es arÄ« veiksmÄ«gi atrisināju Ŕādas problēmas.

Intervijas

Mans viedoklis ir tāds, ka uz intervijām jāiet vismaz reizi pusgadā, pat ja tu dievini savu darbu un nevēlies to mainÄ«t. Intervija ļauj izprast savu kā speciālista lÄ«meni. Es uzskatu, ka visvērtÄ«gākās intervijas ir tās, kuras neizdodas. Viņi ir tie, kas visprecÄ«zāk parāda, kuras jÅ«su zināŔanu vājās vietas ir jāuzlabo.

Vēl viena interesanta iezÄ«me ir interviju kvalitāte. Tas ir mans novērojums, un tā nav patiesÄ«ba, atzÄ«stu, ka man vienkārÅ”i paveicās. Ja intervija notiek saskaņā ar scenāriju:

  • Pastāsti mums par sevi;
  • Mums ir tādi uzdevumi;
  • tev patÄ«k?

Un, ja pēc Ŕī dialoga jums patÄ«k viens otram, jÅ«s ejat uz darbu, tad, kā likums, kompānija un uzdevumi izrādās ļoti patÄ«kami un adekvāti. Ja intervija atgādina izieÅ”anu cauri 12 elles lokiem: pirmā intervija ar HR, tad intervija ar programmētāju grupu, tad direktors, vēl mājasdarbi utt., tad parasti tās bija neveiksmÄ«gas organizācijas, kurās es nestrādāju. ļoti ilgi. Tas atkal ir personisks novērojums, taču parasti pārāk liela birokrātija un ieilguÅ”ais pieņemÅ”anas process liecina, ka uzņēmumā notiek tieÅ”i tie paÅ”i procesi. Lēmumi tiek pieņemti lēni un neefektÄ«vi. Bija arÄ« pretējas situācijas, kad bija interviju elles apļi, un kompānija izrādÄ«jās lieliska, un kad pēc sitiena pa plaukstas locÄ«tavu kompānija izrādÄ«jās purvs, taču tādas ir reti.

Ja domā, ka scenārijs: satiku, pastāstÄ«ju par sevi un dabÅ«ju darbā, pastāv tikai mazos uzņēmumos, tad nē. Esmu to redzējis ļoti lielos uzņēmumos, kas nodarbina vairāk nekā simtiem cilvēku un ir pārstāvēti pasaules tirgos. Tas ir normāls mehānisms, it Ä«paÅ”i, ja jums ir bagāta pieredze un ir iespēja piezvanÄ«t saviem iepriekŔējiem darba devējiem un pajautāt par jums.

Man tas ir ļoti labs uzņēmuma rādÄ«tājs, kad viņi lÅ«dz parādÄ«t savu projektu un koda piemērus. Uzreiz tiek parādÄ«ts pretendenta sagatavotÄ«bas lÄ«menis. Un, manuprāt, no kandidātu atlases viedokļa Ŕī ir visefektÄ«vākā atlases metode nekā Å”ova intervijas. PatiesÄ«bā jÅ«s varat izgāzties intervijā no sajÅ«smas vai, gluži pretēji, iegÅ«t adrenalÄ«nu. Bet reālā darbā jÅ«s nevarat tikt galā ar reāliem uzdevumiem. Un ar to arÄ« saskāros, kad pati intervēju cilvēkus. Atnāk speciālists, parāda sevi kā izcilu, man viņŔ patika, viņam patikām mēs. Un es mēnesi cÄ«nÄ«jos ar visvienkārŔāko problēmu, un rezultātā cits programmētājs to atrisināja pāris dienu laikā. Man bija jāŔķiras no tā programmētāja.

Intervijās Ä«paÅ”i augstu vērtēju programmÄ“Å”anas uzdevumus. Un tie, kas jāatrisina tieÅ”i tikÅ”anās laikā, stresa apstākļos un mājasdarbos. Pirmais parāda, cik jÅ«s esat gatavs ātri un precÄ«zi atrisināt problēmas stresa situācijā un ārkārtas situācijā. Otrais parāda jÅ«su kompetences lÄ«meni un spēju meklēt informāciju un risināt aktuālas problēmas.

Interesantākie darbi man bija mÅ«su valsts aizsardzÄ«bas kompleksā. Darba procesā man bija jāatrisina vienkārÅ”i fantastiskas problēmas, par kurām komerciālie programmētāji pat nebija sapņojuÅ”i. Superdatori, marÅ”rutētāju projektÄ“Å”ana, dažādas mezglu kaujas sistēmas - tas ir neticami aizraujoÅ”i. Kad parādes laikā redzat kompleksu, kurā tiek glabāts jÅ«su kods, tas ir patieŔām jauki. Savādi, bet intervijas ar Ŕādiem uzņēmumiem parasti ir ļoti vienkārÅ”as, burtiski nāk, patÄ«k, pieņemts (iespējams, militārpersonu specifika, kurai nepatÄ«k pārāk daudz runāt), tiek uzklāta. Izaicinājumi, ar kuriem es saskāros, bija patiesi interesanti un izaicinoÅ”i. Ar pieredzi izrādÄ«jās, ka tie ir labi, lai mācÄ«tos par kvalitatÄ«vu sistēmu programmētāju. Ir arÄ« trÅ«kumi, un tas pat nav zemas algas. Å obrÄ«d aizsardzÄ«bas kompleksā alga ir diezgan pieklājÄ«ga, ar piemaksām un pabalstiem. Parasti ir liela birokrātija, garas darba stundas, nebeidzami steigas darbi un darbs lielā stresa apstākļos. Dažos gadÄ«jumos nevar izslēgt slepenÄ«bu, kas rada zināmas problēmas ceļojot uz ārzemēm. Plus, protams, priekÅ”nieku tirānija, un tas, diemžēl, arÄ« notiek. Lai gan mana pieredze darbā ar klientu pārstāvi ir ārkārtÄ«gi patÄ«kama. Tas ir kolektÄ«vs iespaids par trÄ«s dažādiem pētniecÄ«bas institÅ«tiem un uzņēmumiem, kas saistÄ«ti ar valsts aizsardzÄ«bas pasÅ«tÄ«jumiem.

Intervijas uzdevumi

Lai izvairÄ«tos no pārpratumiem un lai neatklātu uzņēmumus, ar kuriem intervēju, likteni nekārdināŔu un norādÄ«Å”u to detaļas. Bet es esmu pateicÄ«gs par katru interviju, par laiku, ko cilvēki veltÄ«ja man, par iespēju paskatÄ«ties uz sevi no malas. Varu tikai teikt, ka uzdevumi bija lieliem starptautiskiem uzņēmumiem, kas pārstāvēti dažādās valstÄ«s.

Es jums pastāstÄ«Å”u interesantāko: kādi uzdevumi tiek doti interviju laikā. Kopumā visbiežāk uzdotie jautājumi par sistēmas programmētāja un mikrokontrolleru programmētāja vakanci ir bitu operācijas, visās iespējamās variācijās. Tāpēc Å”ajā jomā sagatavojieties vislabāk.

Otrs polarizējoŔākais temats ir norādes, tai tieŔām vajadzētu atlēkt no zobiem. Lai viņi tevi pamodina nakts vidÅ« un tu vari visu izstāstÄ«t un parādÄ«t.

Es nozagu jautājumus no vairākām intervijām manā galvā, un es tos izklāstÄ«Å”u Å”eit, jo man tie Ŕķiet diezgan interesanti. Es apzināti nesniedzu atbildes uz Å”iem jautājumiem, lai lasÄ«tāji komentāros paÅ”i varētu atbildēt uz Å”iem jautājumiem un, izejot cauri Ä«stai intervijai, bÅ«tu nedaudz pÅ«dera.

Jautājumi Nr.1

I. ZināŔanas par SI. Ko nozÄ«mē Ŕādi ieraksti:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Vai visi ieraksti ir pareizi?

II. Kāpēc Ŕī programma radÄ«s segmentācijas kļūdu?

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

III. Lai būtu gudrs.

Ir nÅ«ja vienu metru garÅ”. Desmit skudras nejauÅ”i uzkrÄ«t viņai, rāpot dažādos virzienos. Vienas skudras kustÄ«bas ātrums ir 1 m/s. Ja skudra sastopas ar citu skudru, tā apgriežas un rāpo pretējā virzienā. Kāds ir maksimālais laiks, kas jāgaida, lÄ«dz visas skudras nokritÄ«s no nÅ«jas?

Nākamā intervija man bija neveiksmÄ«ga, un es uzskatu to par visnoderÄ«gāko savā programmÄ“Å”anas praksē. Tas parādÄ«ja manas nekompetences dziļumu. Pirms Ŕīs intervijas es biju iepazinies ar katru no Å”iem jautājumiem, un tie pastāvÄ«gi radās manā praksē, bet kaut kā es tiem nepieŔķīru lielu nozÄ«mi, un attiecÄ«gi es tos labi nesapratu. Tāpēc es nekaunÄ«gi nokritu Å”ajā eksāmenā. Un es esmu ļoti pateicÄ«gs, ka notika Ŕāda neveiksme; tā mani ietekmēja vissmagāk. JÅ«s domājat, ka esat forÅ”s speciālists, zināt ķēdes dizainu, saskarnes un darbu ar kodolu. Un tad jums rodas Ä«sti jautājumi, un jÅ«s peldat. Tātad paskatÄ«simies.

2. intervijas jautājumi

Aparatūras problēmas.

  • Kā Linux sistēmas izsaukumi tiek sakārtoti montāžas valodā ARM procesorā uz x86. Kāda ir atŔķirÄ«ba?
  • Kādi sinhronizācijas rÄ«ki pastāv? Kurus sinhronizācijas rÄ«kus var izmantot pārtraukuma kontekstā, kurus nevar un kāpēc?
  • Kāda ir atŔķirÄ«ba starp i2c autobusu un spi autobusu?
  • Kāpēc i2c autobusā ir terminatori un kāda ir to vērtÄ«ba?
  • Vai RS-232 interfeiss var darboties TIKAI uz diviem vadiem: RX un TX? Å eit es sniegÅ”u atbildi: Izrādās, ka tas ir slikti, pie 9600, bet var!!!
  • Un tagad otrais jautājums: kāpēc?
  • Kāds ir labākais veids, kā sakārtot signāla lÄ«nijas un jaudu daudzslāņu platēs un kāpēc? Jauda slāņos vai signāla lÄ«nijas slāņos? (Jautājums parasti ir tikai par ķēdes dizainu).
  • Kāpēc diferenciāllÄ«nijām ir sliedes, kas visur iet kopā?
  • RS-485 autobuss. Parasti Ŕādā lÄ«nijā ir terminatori. Tomēr mums ir zvaigžņu ķēde ar mainÄ«gu skaitu spraudņa moduļu. Kādi lÄ«dzekļi jāizmanto, lai izvairÄ«tos no sadursmēm un traucējumiem?
  • Kas ir sarkanie un binārie koki?
  • Kā strādāt ar cmake?
  • Jautājumi par yocto Linux izveidi.

Šīs intervijas mērķi:

1. Uzrakstiet funkciju, kas invertē uz uint32_t visi biti. (darbs ar bitiem ir ļoti populārs intervijās, iesaku)
2.

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

Ko Ŕī funkcija atgriezīs? (risinājums uz papīra, bez datora)

3. Funkcija divu skaitļu vidējā aritmētiskā aprēķināŔanai int32_t.

4. Kādas ir izvades metodes programmās, t.sk. kļūdu plūsmā.

TreŔā atlase bija salÄ«dzinoÅ”i nesen, un es nebrÄ«nÄ«Å”os, ja tāda anketa tur vēl ir, tāpēc neatklāŔu uzņēmumu, lai viņus neatklātu... Bet vispārÄ«gi minÄ“Å”u piemēru no iespējamiem jautājumiem, un, ja atpazÄ«stat savus jautājumus, tad saku sveiki :).

3. intervijas jautājumi

  1. Tiek dots koka caurlaides koda piemērs, ir jāpasaka, kas Å”ajā kodā tiek darÄ«ts, un jānorāda uz kļūdām.
  2. Uzrakstiet ls lietderÄ«bas piemēru. Ar vienkārŔāko opciju ā€œ-lā€.
  3. Sniedziet piemēru, kā veikt statisku un dinamisku saistÄ«Å”anu. Kāda ir atŔķirÄ«ba?
  4. Kā darbojas RS-232? Kāda ir atŔķirÄ«ba starp RS-485 un RS-232? Kāda ir atŔķirÄ«ba starp RS-232 un RS-485 no programmētāja viedokļa?
  5. Kā darbojas USB (no programmētāja viedokļa)?
  6. Tehniskā teksta tulkoŔana no krievu valodas angļu valodā.

Veiksmīga intervija nav veiksmīga darba garantija

Šī nodaļa, iespējams, pat nav paredzēta programmētājiem (lai gan arī viņiem), bet gan vairāk HR. Adekvātākie uzņēmumi uz interviju rezultātiem neskatās pedantiski. Kļūdīties ir normāli; visbiežāk tiek aplūkots, kā cilvēks prot risināt problēmas un argumentēt.

Viena no galvenajām problēmām ir tā, ka kandidāts veiksmÄ«gi risina problēmas interviju laikā, parāda sevi kā izcilu speciālistu, bet neveicas ar pirmo reālo uzdevumu. NemeloÅ”u, tā notika arÄ« ar mani. VeiksmÄ«gi izgāju visus elles lokus, atrisināju visus testa uzdevumus, bet reālos apstākļos darbs izrādÄ«jās pārāk grÅ«ts vienkārÅ”as pieredzes dēļ. UzkāpÅ”ana uz klāja nav pats grÅ«tākais uzdevums. VisgrÅ«tākais ir palikt Å”ajā uzņēmumā.

Tāpēc vairāk uzticos uzņēmumiem, kas veic vienkārÅ”as intervijas ar kandidātu un saka: pēc pirmā darba mēneÅ”a bÅ«s skaidrs, vai esi mums piemērots vai nē. Tā ir adekvātākā pieeja, jā, varbÅ«t nedaudz dārgi, bet uzreiz ir skaidrs, kurÅ” ir kurÅ”.

Ir vēl viens interviju variants: kad tu to veiksmÄ«gi nokārto, bet pēc intervijas rezultātiem saproti, ka darba devējs ir pilnÄ«gi neadekvāts. Uzreiz atsakos no darba, ja man piedāvā strādāt kā individuālajam uzņēmējam, solot lielus ienākumus. Tas ir nodokļu nemaksāŔanas veids strādājoÅ”ai organizācijai, un kāpēc man kā programmētājam bÅ«tu jāuztraucas darba devēja problēmām? Vēl viena iespēja ir dažādas valsts aÄ£entÅ«ras. Man bija intervija, kuras rezultātā man piedāvāja labu atalgojumu, bet viņi teica, ka iepriekŔējais programmētājs pameta darbu, saslima, nomira, slodzes dēļ iegrimis un tev darba diena sākas 8 no rÄ«ta. . No tādas vietas viņŔ arÄ« skrēja tā, ka papēži dzirkstÄ«ja. Jā, HR, lÅ«dzu, ņemiet vērā, ka programmētāji ir gatavi atteikties pat no visgardākā darba, ja darba diena jāsāk agri no rÄ«ta.

Beigās es sniegÅ”u lielisku programmētāja izvēles video, kura ekrānuzņēmums ir sniegts Ŕī raksta sākumā. ArÄ« man tāda intervija bija ne reizi vien. Ja jautājumu stadijā redzat tirāniju, cieniet sevi, piecelieties, paņemiet mantas un dodieties prom - tas ir normāli. Ja HR un vadÄ«tājs intervijas laikā sevi apliecina uz jÅ«su rēķina, tas norāda, ka uzņēmums ir toksisks un jums nevajadzētu tajā strādāt, ja vien jums nepatÄ«k neatbilstoÅ”i priekÅ”nieki.

Atzinumi

Programmētāji, ejiet uz intervijām! Un vienmēr mēģiniet tikt paaugstināts. Pieņemsim, ja saņemat N naudu, tad dodieties uz interviju vismaz par N*1,2 vai labāk par N*1,5. Pat ja Å”o vakanci neņemsi uzreiz, sapratÄ«si, kas ir vajadzÄ«gs Ŕādam atalgojuma lÄ«menim.
Mani novērojumi liecina, ka izŔķir labas angļu valodas zināŔanas, pietiekami bagāta pieredze nozarē un paÅ”apziņa. Pēdējā ir galvenā kvalitāte, kā jau visur dzÄ«vē. Parasti pārliecinātāks kandidāts var veikt labākus rezultātus intervijā, pat ja ir vairāk kļūdu, nekā izcils, bet kautrÄ«gāks un aktÄ«vāks pretendents. Veiksmi intervijās!

P/S konkurss

Ja jums ir interesanti piemēri problēmām, ar kurām jÅ«s ir piesātinājusi HR, laipni lÅ«dzam komentāros. Esam sagatavojuÅ”i nelielu konkursu - nosacÄ«jumi ir vienkārÅ”i: tu uzraksti neparastāko uzdevumu, kas tev bija intervijas laikā, lasÄ«tāji to novērtē (plus), un pēc nedēļas mēs summējam rezultātus un apbalvojam uzvarētāju ar jautriem gardumiem.

Programmētāji, dodieties uz intervijām

Programmētāji, dodieties uz intervijām

Avots: www.habr.com

Pievieno komentāru