Dasturchilar, suhbatlarga boring

Dasturchilar, suhbatlarga boring
Surat "kanalidagi videodan olingan.Jangari ametistlar»

Men taxminan 10 yil davomida Linux uchun tizim dasturchisi bo'lib ishladim. Bular yadro modullari (yadro maydoni), turli xil demonlar va foydalanuvchi maydonidan (foydalanuvchi maydoni) apparat bilan ishlash, turli yuklagichlar (u-boot va boshqalar), boshqaruvchi proshivka va boshqalar. Hatto ba'zida veb-interfeysni kesish ham sodir bo'ldi. Ammo ko'pincha men lehim temir bilan o'tirishga va bosilgan elektron platalar dizaynerlari bilan muloqot qilishimga to'g'ri keldi. Bunday ish bilan bog'liq muammolardan biri shundaki, sizning malakangiz darajasini baholash juda qiyin, chunki siz bir vazifani juda chuqur bilishingiz mumkin, lekin boshqasini umuman bilmasligingiz mumkin. Qaerga borishni va hozir qanday oqimlar borligini tushunishning yagona adekvat yo'li - intervyu olish.

Ushbu maqolada men Linux tizimi dasturchisi sifatida bo'sh ish o'rinlari uchun intervyu olish tajribamni, intervyuning o'ziga xos xususiyatlari, ish joyi va bo'lajak ish beruvchi bilan muloqot qilish orqali shaxsiy bilim darajangizni qanday baholashni va nima qilmaslik kerakligini umumlashtirmoqchiman. undan kuting.

Maqola sovg'alar bilan kichik tanlovni o'z ichiga oladi.

Kasbning xususiyatlari

Tizim dasturchisi, men ishlagan muayyan sohada, to'liq generalist: men kod yozishim va apparatni disk raskadrovka qilishim kerak edi. Va ko'pincha biror narsani o'zingiz lehimlash kerak edi. Vaqti-vaqti bilan, mening apparatdagi o'zgarishlarim ishlab chiquvchilarga o'tkazildi. Shuning uchun, ushbu sohada ishlash uchun sizga raqamli sxemalar sohasida ham, dasturlashda ham juda yaxshi bilim bazasi kerak. Shu sababli, tizim dasturchisi lavozimi uchun intervyular ko'pincha elektronika bo'yicha mutaxassisni qidirishga o'xshaydi.

Dasturchilar, suhbatlarga boring
Tizim dasturchisi uchun odatiy ish stantsiyasi.

Yuqoridagi fotosuratda drayverlarni disk raskadrovka qilishda mening odatiy ish joyim ko'rsatilgan. Mantiqiy analizator uzatilgan xabarlarning to'g'riligini ko'rsatadi, osiloskop signal qirralarining shaklini nazorat qiladi. Bundan tashqari, jtag tuzatuvchisi ramkaga kiritilmagan, bu standart disk raskadrovka vositalari endi ishlamay qolganda ishlatiladi. Va bu jihozlarning barchasi bilan ishlashga qodir bo'lishingiz kerak.

Ko'pincha ba'zi elementlarni qayta lehimlash va topologiyadagi xatolarni o'zingiz tuzatish mahsulotni o'rnatuvchiga olib borishdan ko'ra tezroq va osonroq bo'ladi. Va keyin sizning ish joyingizda lehim stantsiyasi ham yashaydi.

Drayv va apparat darajasida rivojlanishning yana bir xususiyati shundaki, Google yordam bermaydi. Ko'pincha siz o'zingizning muammoingiz haqida ma'lumot izlashingiz kerak va uchta havola mavjud, ulardan ikkitasi ba'zi forumlarda o'zingizning savollaringizdir. Yoki bundan ham yomoni, siz 5 yil oldin yadro pochta ro'yxatida so'ragan va hech qachon javob olmagan o'sha bechoraning savoliga duch kelganingizda. Ushbu ishda, ham apparat, ham dasturiy ta'minotni loyihalashdagi xatolarga qo'shimcha ravishda, hujjat xatolariga tez-tez duch keladi - bu, ehtimol, eng og'ir va yoqimsiz muammolar. Ba'zida registrlar noto'g'ri tavsiflanadi yoki ular uchun umuman tavsif yo'q. Bunday muammolarni faqat tasodifiy raqamlarni ma'lum registrlarga (bir turdagi teskari) ilmiy jihatdan kiritish orqali hal qilish mumkin. Ko'pincha protsessor ba'zi funktsiyalarni o'z ichiga oladi, lekin sizdan boshqa hech kim bu funksiyani amalga oshirmagan (ayniqsa protsessor yangi bo'lsa). Va bu dala bo'ylab rake bilan yurishni anglatadi, ularning 70% bolalar uchun. Ammo hujjatlar mavjud bo'lganda, hatto xatolar bo'lsa ham, bu allaqachon taraqqiyotdir. Ko'pincha hech qanday hujjat yo'qligi sodir bo'ladi va minalar bo'ylab yurish temir yonayotgan paytda boshlanadi. Ha, men ham bunday muammolarni muvaffaqiyatli hal qildim.

Intervyular

Mening fikrimcha, siz ishingizni yaxshi ko'rsangiz va uni o'zgartirishni xohlamasangiz ham, kamida olti oyda bir marta intervyuga borishingiz kerak. Suhbat sizga mutaxassis sifatidagi darajangizni tushunish imkonini beradi. Menimcha, eng qimmatli intervyular muvaffaqiyatsiz bo'lganlardir. Ular sizning bilimingizdagi qaysi to'siqlarni yaxshilash kerakligini eng aniq ko'rsatib beradiganlardir.

Yana bir qiziqarli xususiyat - intervyu sifati. Bu mening kuzatishim va bu haqiqat emas, tan olaman, men shunchaki omadli edim. Agar suhbat stsenariy bo'yicha o'tsa:

  • bizga o'zingiz haqingizda aytib bering;
  • Bizda shunday vazifalar bor;
  • Sizga yoqadimi?

Va agar ushbu suhbatdan keyin siz bir-biringizni yoqtirsangiz, ishga borasiz, unda, qoida tariqasida, kompaniya va vazifalar juda yoqimli va etarli bo'ladi. Agar intervyu do'zaxning 12 ta doirasini bosib o'tishga o'xshasa: HR bilan birinchi intervyu, keyin bir guruh dasturchilar bilan suhbat, keyin direktor, ko'proq uy vazifasi va boshqalar, qoida tariqasida, bular men ishlamagan muvaffaqiyatsiz tashkilotlar edi. juda uzoq vaqt davomida. Shunga qaramay, bu shaxsiy kuzatuv, lekin qoida tariqasida, haddan tashqari byurokratiya va cho'zilgan ishga qabul qilish jarayoni kompaniya ichida xuddi shunday aniq jarayonlar sodir bo'lishini ko'rsatadi. Qarorlar sekin va samarasiz qabul qilinadi. Qarama-qarshi vaziyatlar ham bor edi, intervyu jahannam doiralari bor edi va kompaniya ajoyib bo'lib chiqdi va bilagiga urilgandan keyin kompaniya botqoq bo'lib chiqdi, ammo bu kamdan-kam uchraydi.

Agar siz stsenariy: uchrashgan, o'zingiz haqingizda gapirgan va ishga qabul qilingan deb hisoblasangiz, faqat kichik kompaniyalarda mavjud, demak yo'q. Men buni yuzlab odamlarni ish bilan ta'minlovchi va jahon bozorlarida namoyish etuvchi juda yirik kompaniyalarda ko'rganman. Bu oddiy mexanizm, ayniqsa, agar siz boy tajribaga ega bo'lsangiz va oldingi ish beruvchilaringizga qo'ng'iroq qilish va siz haqingizda so'rash imkoniga ega bo'lsangiz.

Men uchun kompaniya o'z loyihalari va kodlari misollarini ko'rsatishni so'rashsa, bu juda yaxshi ko'rsatkich. Ariza beruvchining tayyorgarlik darajasi darhol ko'rsatiladi. Menga kelsak, nomzodlarni tanlash nuqtai nazaridan, bu shou intervyularidan ko'ra eng samarali tanlov usuli. Aslida, siz hayajondan intervyuda muvaffaqiyatsiz bo'lishingiz yoki aksincha, adrenalinga tushishingiz mumkin. Ammo haqiqiy ishda siz haqiqiy vazifalarni bajara olmaysiz. Men o'zim ham odamlar bilan suhbatlashganimda bunga duch keldim. Mutaxassis keladi, o‘zini zo‘r ko‘rsatadi, menga yoqdi, u bizni yoqtirdi. Va men bir oy davomida eng oddiy masala bilan kurashdim va natijada boshqa dasturchi uni bir necha kun ichida hal qildi. Men o'sha dasturchi bilan xayrlashishga majbur bo'ldim.

Men intervyularda dasturlash vazifalarini ayniqsa qadrlayman. Va to'g'ridan-to'g'ri uchrashuv paytida, stress va uy vazifasini hal qilish kerak bo'lganlar. Birinchisi, stressli vaziyatda va favqulodda vaziyatlarda muammolarni tez va aniq hal qilishga qanchalik tayyor ekanligingizni ko'rsatadi. Ikkinchisi sizning malaka darajangizni va ma'lumot qidirish va dolzarb muammolarni hal qilish qobiliyatingizni ko'rsatadi.

Menga eng qiziqarli ishlar mamlakatimiz mudofaa kompleksida bo'lgan. Ish jarayonida men tijorat dasturchilari xayoliga ham keltirmagan fantastik muammolarni hal qilishim kerak edi. Superkompyuterlar, marshrutizatorlarni loyihalash, turli tugunli jangovar tizimlar - bu juda hayajonli. Parad paytida kodingizni saqlaydigan kompleksni ko'rsangiz, bu juda yoqimli. Ajablanarlisi shundaki, bunday kompaniyalar bilan suhbatlar odatda juda oddiy, so'zma-so'z keladi, yoqadi, qabul qilinadi (ehtimol, ko'p gapirishni yoqtirmaydigan harbiylarning o'ziga xos xususiyatlari) bir-biriga qo'shiladi. Men u erda duch kelgan qiyinchiliklar haqiqatdan ham qiziqarli va qiyin edi. Tajribaga ko'ra, ular yuqori sifatli tizim dasturchisi bo'lishni o'rganish uchun yaxshi ekanligi ma'lum bo'ldi. Kamchiliklari ham bor va bu hatto past ish haqi emas. Ayni paytda mudofaa kompleksidagi maosh bonus va imtiyozlar bilan ancha munosib. Qoida tariqasida, juda ko'p byurokratiya, uzoq ish soatlari, cheksiz shoshilinch ishlar va katta stress ostida ishlash. Ba'zi hollarda maxfiylikni istisno qilib bo'lmaydi, bu esa chet elga sayohat qilish uchun muayyan muammolarni keltirib chiqaradi. Bundan tashqari, albatta, boshliqlarning zulmi va bu, afsuski, sodir bo'ladi. Garchi mijoz vakili bilan ishlash tajribam juda yoqimli. Bu davlat mudofaa buyurtmalari bilan bog'liq uchta turli tadqiqot institutlari va kompaniyalarning jamoaviy taassurotidir.

Intervyu vazifalari

Tushunmovchiliklarga yo'l qo'ymaslik va men suhbatlashgan kompaniyalarni fosh qilmaslik uchun men taqdirni vasvasaga solmayman va ularning tafsilotlarini ko'rsatmayman. Lekin har bir intervyu uchun, odamlarning menga sarflagan vaqti, o‘zimga chetdan qarash imkoniyati uchun minnatdorman. Aytishim mumkinki, vazifalar turli mamlakatlarda taqdim etilgan yirik xalqaro kompaniyalar uchun edi.

Men sizga eng qiziqarli narsani aytaman: intervyu paytida qanday vazifalar beriladi. Umuman olganda, tizim dasturchisi va mikrokontroller dasturchisi bo'sh ish o'rinlari uchun eng keng tarqalgan savollar barcha mumkin bo'lgan o'zgarishlarda bit operatsiyalari hisoblanadi. Shuning uchun o'zingizni ushbu sohada eng yaxshi tayyorlang.

Ikkinchi eng qutbli mavzu - bu ko'rsatkichlar, bu sizning tishlaringizdan sakrashi kerak. Ular sizni yarim tunda uyg'otishlari va siz hamma narsani aytib berishingiz va ko'rsatishingiz uchun.

Men bir nechta intervyulardan savollarni o'g'irladim va ularni bu erda taqdim etaman, chunki men ularni juda qiziq deb bilaman. Men bu savollarga ataylab javob bermayman, shunda o'quvchilar ushbu savollarga sharhlarda o'zlari javob berishlari va haqiqiy intervyudan o'tishda ozgina kukun bo'lishi mumkin.

Savollar № 1

I. SIni bilish. Quyidagi yozuvlar nimani anglatadi:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Barcha yozuvlar to'g'rimi?

II. Nima uchun bu dastur segmentatsiya xatosini keltirib chiqaradi?

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

III. Aqlli bo'lish uchun.

Bir metr uzunlikdagi tayoq bor. O'nta chumoli tasodifan uning ustiga tushib, turli yo'nalishlarda sudralib yurishadi. Bitta chumolining harakat tezligi 1 m/s. Agar chumoli boshqa chumoliga duch kelsa, u teskari tomonga o'girilib, sudraladi. Barcha chumolilar tayoqdan tushishini kutishingiz kerak bo'lgan maksimal vaqt qancha?

Keyingi intervyu men uchun muvaffaqiyatsiz bo'ldi va men buni dasturlash amaliyotimda eng foydali deb bilaman. Bu mening qobiliyatsizligimning chuqurligini ko'rsatdi. Ushbu intervyu oldidan men ushbu savollarning har biri bilan tanish edim va ular mening amaliyotimda doimiy ravishda paydo bo'lib turardi, lekin negadir men ularga unchalik ahamiyat bermasdim va shunga ko'ra men ularni yaxshi tushunmasdim. Shuning uchun men bu imtihondan sharmandalik bilan o'ta olmadim. Va men bunday muvaffaqiyatsizlik yuz berganidan juda minnatdorman, bu menga eng dahshatli ta'sir ko'rsatdi. Siz o'zingizni ajoyib mutaxassis deb o'ylaysiz, siz sxema dizaynini, interfeyslarni va yadro bilan ishlashni bilasiz. Va keyin sizda haqiqiy savollar bor va siz suzasiz. Keling, ko'rib chiqaylik.

Intervyu savollari №2

Uskuna muammolari.

  • Linux tizimi chaqiruvlari x86 da ARM protsessorida montaj tilida qanday tartibga solinadi. Farqi nimada?
  • Qanday sinxronlash vositalari mavjud? Interrupt kontekstida qaysi sinxronizatsiya vositalaridan foydalanish mumkin, qaysi biri mumkin emas va nima uchun?
  • I2c avtobusi va spi avtobusi o'rtasidagi farq nima?
  • Nima uchun i2c avtobusida terminatorlar mavjud va ularning qiymati qanday?
  • RS-232 interfeysi FAQAT ikkita simda ishlay oladimi: RX va TX? Mana men javob beraman: 9600 da yomon ekan, lekin bo'lishi mumkin!!!
  • Va endi ikkinchi savol: nega?
  • Ko'p qatlamli platalarda signal liniyalari va quvvatni tartibga solishning eng yaxshi usuli qanday va nima uchun? Qatlamlar ichidagi quvvatmi yoki qatlamlar ichidagi signal liniyalarimi? (Savol odatda elektron dizayn haqida).
  • Nima uchun differensial chiziqlar hamma joyda birga ketadigan izlarga ega?
  • RS-485 avtobusi. Odatda bunday chiziqda terminatorlar mavjud. Biroq, bizda o'zgaruvchan sonli plagin modullari bo'lgan yulduz sxemasi mavjud. To'qnashuvlar va shovqinlarning oldini olish uchun qanday vositalardan foydalanish kerak?
  • Qizil va ikkilik daraxtlar nima?
  • Cmake bilan qanday ishlash kerak?
  • Yocto Linuxni yaratish bo'yicha savollar.

Ushbu intervyu uchun maqsadlar:

1. teskari funksiyani yozing uint32_t barcha bitlar. (bitlar bilan ishlash intervyularda juda mashhur, men buni tavsiya qilaman)
2.

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

Bu funksiya nimani qaytaradi? (qog'ozda, kompyutersiz yechim)

3. Ikki sonning o‘rtacha arifmetik qiymatini hisoblash funksiyasi int32_t.

4. Dasturlarda qanday chiqish usullari bor, shu jumladan. xatolar oqimiga aylanadi.

Uchinchi tanlov nisbatan yaqinda bo'lib o'tdi va u erda hali ham shunday anketa mavjud bo'lsa, men hayron bo'lmayman, shuning uchun ularni fosh qilmaslik uchun men kompaniyani oshkor qilmayman ... Lekin umumiy ma'noda men misol keltiraman. mumkin bo'lgan savollar va agar siz o'z savollaringizni bilsangiz, men salom aytaman :).

Intervyu savollari №3

  1. Daraxtlarni kesib o'tish kodiga misol keltirilgan, bu kodda nima qilinayotganini aytib berish va xatolarni ko'rsatish kerak.
  2. ls yordam dasturiga misol yozing. Eng oddiy variant "-l" bilan.
  3. Statik va dinamik ulanishni qanday amalga oshirishga misol keltiring. Farqi nimada?
  4. RS-232 qanday ishlaydi? RS-485 va RS-232 o'rtasidagi farq nima? Dasturchi nuqtai nazaridan RS-232 va RS-485 o'rtasidagi farq nima?
  5. USB qanday ishlaydi (dasturchi nuqtai nazaridan)?
  6. Texnik matnni rus tilidan ingliz tiliga tarjima qilish.

Muvaffaqiyatli intervyu muvaffaqiyatli ishning kafolati emas

Bu bob, ehtimol, dasturchilar uchun ham emas (garchi ular uchun ham), lekin ko'proq HR uchun. Eng adekvat kompaniyalar intervyu natijalariga sinchkovlik bilan qarashmaydi. Xato qilish odatiy holdir, ko'pincha ular odamning muammolarni qanday hal qilishni bilishiga va aql-idrok etishiga qarashadi.

Asosiy muammolardan biri shundaki, nomzod suhbat davomida muammolarni muvaffaqiyatli hal qiladi, o'zini mukammal mutaxassis sifatida ko'rsatadi, lekin birinchi haqiqiy vazifani bajara olmaydi. Men yolg'on gapirmayman, bu men bilan ham sodir bo'ldi. Men do'zaxning barcha doiralarini muvaffaqiyatli bosib o'tdim, barcha test topshiriqlarini hal qildim, lekin haqiqiy sharoitda oddiy tajribasizlik tufayli ish juda qiyin bo'lib chiqdi. Bortga chiqish eng qiyin ish emas. Eng qiyin narsa - bu kompaniya bortida qolish.

Shuning uchun, men nomzod bilan oddiy suhbatlar o'tkazadigan ko'proq kompaniyalarga ishonaman va shunday deyishadi: ishning birinchi oyidan keyin siz bizga mos keladimi yoki yo'qmi, aniq bo'ladi. Bu eng adekvat yondashuv, ha, ehtimol biroz qimmat, lekin kimning kimligi darhol aniq bo'ladi.

Suhbatlar uchun yana bir variant bor: siz uni muvaffaqiyatli topshirganingizda, lekin suhbat natijalariga ko'ra siz ish beruvchining mutlaqo etarli emasligini tushunasiz. Agar menga katta daromad va'da qilib, yakka tartibdagi tadbirkor sifatida ishlashni taklif qilishsa, darhol ishdan bosh tortaman. Bu operatsion tashkilot uchun soliq to'lashdan bo'yin tovlashning bir ko'rinishi va nega ish beruvchining muammolari dasturchi sifatida meni tashvishga solishi kerak? Yana bir variant - turli davlat idoralari. Men intervyu oldim, natijada menga yaxshi maosh taklif qilishdi, lekin ular oldingi dasturchi ishdan ketdi, kasal bo'lib qoldi, vafot etdi, ish og'irligi sababli ovora bo'lib ketdi va sizning ish kuningiz ertalab soat 8 da boshlanadi, deb aytishdi. . Shunday joydan u ham shunday yugurdiki, tovonlari uchqunladi. Ha, HR, iltimos, dasturchilar ish kuni erta tongda boshlanishi kerak bo'lsa, eng mazali ishdan ham voz kechishga tayyorligini unutmang.

Oxirida men dasturchi tanlashning ajoyib videosini beraman, uning skrinshoti ushbu maqolaning boshida berilgan. Men ham bir necha marta bunday intervyu olganman. Agar siz savollar bosqichida zulmni ko'rsangiz, o'zingizni hurmat qiling, o'rningdan turing, narsalaringizni oling va keting - bu normal holat. Agar intervyu davomida HR va menejer o'zlarini sizning hisobingizdan da'vo qilsalar, bu kompaniya zaharli ekanligini ko'rsatadi va agar siz noto'g'ri boshliqlarni yoqtirmasangiz, u erda ishlamasligingiz kerak.

topilmalar

Dasturchilar, suhbatlarga boring! Va har doim yuqoriga ko'tarilishga harakat qiling. Aytaylik, agar siz N * pul olsangiz, kamida N * 1,2 yoki yaxshiroq N * 1,5 uchun intervyuga boring. Agar siz ushbu vakansiyani darhol qabul qilmasangiz ham, ushbu darajadagi ish haqi uchun nima kerakligini tushunasiz.
Kuzatishlarim shuni ko'rsatdiki, ingliz tilini yaxshi bilish, sohada yetarlicha boy tajriba va o'ziga ishonch qaror qiladi. Ikkinchisi, hayotning hamma joyida bo'lgani kabi, asosiy sifatdir. Qoidaga ko'ra, o'ziga ishongan nomzod a'lo, ammo uyatchan va faol ariza beruvchiga qaraganda ko'proq xatoga yo'l qo'ygan holda intervyuda yaxshiroq natija ko'rsatishi mumkin. Intervyularingizga omad!

P/S musobaqasi

Agar sizda HR sizga yuklagan muammolarning qiziqarli misollari bo'lsa, sharhlarda xush kelibsiz. Biz kichik tanlov tayyorladik - shartlar oddiy: siz intervyu paytida qilgan eng g'ayrioddiy topshiriqni yozasiz, o'quvchilar buni baholaydilar (plyus), va bir haftadan so'ng biz natijalarni sarhisob qilamiz va g'olibni qiziqarli sovg'alar bilan taqdirlaymiz.

Dasturchilar, suhbatlarga boring

Dasturchilar, suhbatlarga boring

Manba: www.habr.com

a Izoh qo'shish