Программисттер, интервьюга баргыла

Программисттер, интервьюга баргыла
Сүрөт "каналдан алынган видеодон алынган"Militant Ametysts»

Мен 10 жылдай Linux үчүн системалык программист болуп иштедим. Бул ядро ​​модулдары (ядро мейкиндиги), ар кандай демондор жана колдонуучу мейкиндигинен (колдонуучунун мейкиндигинен) аппараттык камсыздоо менен иштөө, ар кандай жүктөгүчтөр (u-жүктөө ж.б.), контроллердин микропрограммасы жана башкалар. Кээде веб-интерфейстин кесилиши да болгон. Бирок көбүнчө мен паяльниктер менен отуруп, басма схемалардын дизайнерлери менен иштешүүгө туура келди. Мындай жумуштагы көйгөйлөрдүн бири – бул сиздин компетенттүүлүгүңүздүн деңгээлин баалоо өтө кыйын, анткени сиз бир ишти абдан терең билсеңиз, экинчисин такыр билбешиңиз мүмкүн. Азыр кайда барыш керек жана кандай агымдар бар экенин түшүнүүнүн бирден-бир адекваттуу жолу - интервьюга баруу.

Бул макалада мен Linux тутумунун программисти катары вакансия үчүн интервью алуу тажрыйбамды, интервьюнун өзгөчөлүктөрүн, жумушту жана келечектеги иш берүүчү менен баарлашуу аркылуу сиздин жеке билим деңгээлин кантип баалоо керек экенин жана эмне кылбашыңыз керектигин кыскача айтып бергим келет. андан күт.

Макалада сыйлыктар менен чакан сынак болот.

Кесиптин өзгөчөлүктөрү

Мен иштеген конкреттүү тармактагы системалык программист толук генерал: мен кодду жазууга жана аппараттык камсыздоону оңдоого туура келди. Жана көп учурда бир нерсени өз алдынча ширетүү зарылчылыгы бар болчу. Мезгил-мезгили менен аппараттык жабдыктарга болгон оңдоолорум иштеп чыгуучуларга өткөрүлүп берилген. Ошондуктан, бул чөйрөдө иштөө үчүн санариптик схема тармагында да, программалоодо да жетишерлик жакшы билим базасы керек. Ушундан улам, системалык программист кызматына интервью көбүнчө электроника боюнча адисти издөө сыяктуу көрүнөт.

Программисттер, интервьюга баргыла
Системалык программист үчүн типтүү жумушчу станция.

Жогорудагы сүрөттө айдоочулардын мүчүлүштүктөрүн оңдоодо менин типтүү жумуш ордум көрсөтүлгөн. Логикалык анализатор берилген кабарлардын тууралыгын көрсөтөт, осциллограф сигналдын четтеринин формасын көзөмөлдөйт. Ошондой эле, jtag мүчүлүштүктөрдү оңдоочу стандарттык мүчүлүштүктөрдү оңдоо куралдары мындан ары туруштук бере албай калганда колдонулган кадрга киргизилген эмес. Жана бул жабдуулардын бардыгы менен иштей билүү керек.

Көбүнчө кээ бир элементтерди кайра ширетүү жана топологиядагы каталарды өзүңүз оңдоо продуктуну орнотуучуга алып барганга караганда тезирээк жана оңой болот. Анан сенин жумуш ордуңда бир ширетүү станциясы да жашайт.

Драйвер жана аппараттык деңгээлде иштеп чыгуунун дагы бир өзгөчөлүгү - Google жардам бербейт. Көбүнчө көйгөйүңүз боюнча маалымат издөөгө туура келет жана үч шилтеме бар, алардын экөөсү кандайдыр бир форумда өзүңүздүн суроолоруңуз. Же андан да жаманы, сиз 5 жыл мурун ядронун почта тизмесинен ошол эле байкуштун суроосуна туш болуп, жооп ала албай калганда. Бул иште, аппараттык жана программалык камсыздоону долбоорлоодогу каталардан тышкары, документация каталары көп кездешет - бул, балким, эң оор жана жагымсыз көйгөйлөр. Кээде регистрлер туура эмес сүрөттөлөт же алар үчүн эч кандай сыпаттама жок. Мындай көйгөйлөрдү илимий жактан кокус сандарды белгилүү бир регистрлерге (бир түрдөгү тескери) киргизүү менен гана чечүүгө болот. Көп учурда процессордо кандайдыр бир функциялар бар, бирок бул функцияны сизден башка эч ким ишке ашырган эмес (айрыкча процессор жаңы болсо). Ал эми бул тырмоо менен талааны басып өтүү дегенди билдирет, анын 70% балдар үчүн. Бирок каталар болсо да, документация болгондо, бул прогресс болуп саналат. Көбүнчө эч кандай документтери жок болуп, миналанган талааларды аралап жүрүү темир күйүп жатканда башталат. Ооба, мен да ушундай маселелерди ийгиликтүү чечтим.

Маектешүүлөр

Менин оюмча, сиз жумушуңузду жакшы көрүп, аны өзгөрткүңүз келбесе да, жок дегенде жарым жылда бир жолу интервьюга барышыңыз керек. Маек адис катары өз деңгээлин түшүнүүгө мүмкүндүк берет. Мен эң баалуу интервьюлар ийгиликсиз болгондор деп эсептейм. Алар сиздин билимиңиздеги кайсы тоскоолдуктарды өркүндөтүү керек экенин эң так көрсөткөндөр.

Дагы бир кызыктуу өзгөчөлүк - интервьюлардын сапаты. Бул менин байкоом, бул чындык эмес, мен жөн гана жолум болгонун моюнга алам. Эгерде интервью сценарий боюнча жүрсө:

  • бизге өзүң жөнүндө айтып бер;
  • Бизде мындай милдеттер бар;
  • Сизге жактыбы?

Жана бул диалогдон кийин бири-бириңерди жактырсаңар, жумушка кетесиңер, анда, эреже катары, компания жана милдеттер абдан жагымдуу жана адекваттуу болуп чыгат. Эгерде интервью тозоктун 12 чөйрөсүн басып өткөнгө окшош болсо: HR менен биринчи интервью, андан кийин программисттер тобу менен маек, андан кийин директор, дагы үй тапшырмасы ж.б.у.с. абдан узак убакыт бою. Дагы бир жолу, бул жеке байкоо, бирок, эреже катары, ашыкча бюрократиялык жана созулган жумушка алуу процесси компаниянын ичинде дал ушундай процесстер жүрүп жатканын көрсөтүп турат. Чечимдер жай жана натыйжасыз кабыл алынат. Ошондой эле карама-каршы жагдайлар болгон, маектешүү тозогу чөйрөлөр болуп, компания мыкты болуп чыккан жана билегине бир чапкандан кийин компания сазга айланган, бирок бул сейрек кездешет.

Эгерде сиз ойлосоңуз, сценарий: таанышып, өзүңүз жөнүндө айтып, жумушка алынган, кичинекей компанияларда гана бар, анда жок. Мен муну жүздөгөн адамдар иштеген жана дүйнөлүк рынокто көрсөтүлгөн абдан чоң компаниялардан көрдүм. Бул кадыресе механизм, өзгөчө, эгерде сизде бай тажрыйбаңыз бар болсо жана мурунку иш берүүчүлөрүңүзгө чалып, сиз жөнүндө суроого мүмкүнчүлүк болсо.

Мен үчүн бул алардын долбоорлорунун жана коддорунун мисалдарын көрсөтүүнү суранганда, бул компаниянын абдан жакшы көрсөткүчү. Талапкердин даярдыгынын деңгээли дароо көрсөтүлөт. Ал эми мен үчүн, талапкерлерди тандоо көз карашынан алганда, бул шоу интервьюга караганда тандоонун эң эффективдүү ыкмасы. Чынында, сиз интервьюда толкундануу менен ийгиликке жете албай каласыз, же тескерисинче, адреналинден чыга аласыз. Бирок чыныгы жумушта сиз чыныгы милдеттерди көтөрө албайсыз. Мен өзүм элден интервью алганымда да ушундай жагдайга туш болдум. Адис келет, өзүн мыкты көрсөтөт, мага жакты, ал бизди жактырды. Ал эми эң жөнөкөй маселе менен бир ай күрөшүп, натыйжада дагы бир программист аны бир-эки күндө чечип койду. Мен ошол программист менен бөлүшүүгө туура келди.

Мен интервьюларда программалоо тапшырмаларын өзгөчө баалайм. Ал эми жолугушуу учурунда, стресс жана үй тапшырмасы менен чечилиши керек болгондор. Биринчиси стресстик кырдаалда жана өзгөчө кырдаалдарда көйгөйлөрдү тез жана так чечүүгө канчалык даяр экениңизди көрсөтөт. Экинчиси сиздин компетенцияңыздын деңгээлин жана маалыматты издөө жана учурдагы көйгөйлөрдү чечүү жөндөмүңүздү көрсөтөт.

Мага эң кызыктуу жумуштар өлкөбүздүн коргонуу комплексинде болгон. Жумуш процессинде мен коммерциялык программисттер түшүнө да кирбеген фантастикалык маселелерди чечүүгө туура келди. Суперкомпьютерлер, роутерлерди долбоорлоо, ар кандай түйүндөр менен күрөшүү системалары - бул укмуштуудай кызыктуу. Парад учурунда сиз кодуңузду сактаган комплексти көргөндө, бул абдан жакшы. Кызык жери, мындай компаниялар менен болгон маектер, адатта, абдан жөнөкөй, түзмө-түз келип, жактырышат, кабыл алынат (балким, ашыкча сүйлөшкөндү жактырбаган аскер кызматчыларынын өзгөчөлүктөрү). Ал жактагы кыйынчылыктар мен үчүн чынында эле кызыктуу жана татаал болду. Тажрыйба менен, алар жогорку сапаттагы системалык программист болууга үйрөнүү үчүн жакшы экени белгилүү болду. Кемчиликтери да бар, бул аз айлык эмес. Учурда коргонуу комплексинде айлык акы, үстөк акылары жана жеңилдиктери менен бир топ татыктуу. Эреже катары, бюрократия көп, жумуш убактысынын узактыгы, чексиз шашылыш жумуштар жана чоң стресстин астында иштөө. Кээ бир учурларда, сырды жокко чыгарууга болбойт, бул чет өлкөгө чыгууда айрым көйгөйлөрдү жаратат. Мындан тышкары, албетте, начальниктердин тираниясы жана бул, тилекке каршы, ошондой эле болот. Кардар өкүлү менен иштөө тажрыйбам абдан жагымдуу болсо да. Бул мамлекеттик коргонуу заказдары менен байланышкан уч ар турдуу илим-изилдее институттарынын жана ишканаларынын коллективдуу таасири.

Интервью тапшырмалары

Түшүнбөстүктөрдү болтурбоо үчүн жана мен интервью берген компанияларды ачыкка чыгарбоо үчүн мен тагдырды азгырбайм жана алардын чоо-жайын көрсөтөм. Бирок ар бир интервьюм үчүн, элдин мага короткон убактысы үчүн, өзүмдү сырттан кароого мүмкүнчүлүк бергени үчүн ыраазымын. Мен бир гана нерсени айта алам: ар кайсы өлкөлөрдө өкүлчүлүгү бар ири эл аралык компаниялар үчүн тапшырмалар болчу.

Мен сизге эң кызыктуусун айтып берейин: интервью учурунда кандай тапшырмалар берилет. Жалпысынан алганда, системалык программисттин жана микроконтроллердин программистинин вакансиясы үчүн эң кеңири таралган суроолор бардык мүмкүн болгон вариацияларда бит операциялары болуп саналат. Андыктан бул жаатта өзүңүздү мыкты даярдаңыз.

Экинчи эң поляризациялуу тема - жол көрсөткүчтөр, бул чындап тишиңизден секирип кетиши керек. Алар сени түн ортосунда ойготушу үчүн, сен баарын айтып, көрсөтө аласың.

Мен бир нече интервьюлардан суроолорду уурдап алдым жана аларды бул жерде сунуштайм, анткени мен аларды абдан кызыктуу деп эсептейм. Мен бул суроолорго атайылап жооп бербейм, ошондуктан окурмандар бул суроолорго комментарийлерде өздөрү жооп бериши жана чыныгы интервьюдан өтүп жатканда бир аз порошок болушу үчүн.

Суроолор №1

I. SI билими. Төмөнкү жазуулар эмнени билдирет:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Бардык жазуулар туурабы?

II. Эмне үчүн бул программа сегментация катасын жаратат?

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

III. Акылдуу болуу.

Узундугу бир метр болгон таяк бар. Он кумурска туш келди анын үстүнө жыгылып, ар кайсы тарапка сойлошот. Бир кумурсканын кыймыл ылдамдыгы 1 м/сек. Эгерде кумурска башка кумурскага жолукса, ал бурулуп, тескери тарапка сойлоп кетет. Бардык кумурскалар таяктан кулашын күтүшүңүз керек болгон максималдуу убакыт канча?

Кийинки интервью мен үчүн ийгиликсиз болду жана мен аны программалоо практикамдагы эң пайдалуусу деп эсептейм. Бул менин компетентсиздигимдин тереңдигин көрсөттү. Бул интервьюга чейин мен бул суроолордун ар бири менен тааныш болчумун жана алар менин практикамда тынымсыз пайда болгон, бирок эмнегедир мен аларга анча маани берчү эмесмин, ошого жараша аларды жакшы түшүнгөн эмесмин. Ошондуктан, мен бул сынактан уят болуп калдым. Жана ушундай ийгиликсиздик болгонуна абдан ыраазымын, ал мага эң катуу таасир этти. Сиз өзүңүздү сонун адисмин деп ойлойсуз, схеманын дизайнын, интерфейстерин жана ядро ​​менен иштөөнү билесиз. Анан сизде чыныгы суроолор бар жана сиз калкып жатасыз. Ошентип, көрөлү.

Интервью суроолору №2

Аппараттык маселелер.

  • Linux тутумунун чалуулары x86 боюнча ARM процессорунда ассемблер тилинде кантип уюштурулат. Кандай айырма бар?
  • Кандай синхрондоштуруу куралдары бар? Үзгүлтүккө учуратуу контекстинде кайсы синхрондоштуруу куралдарын колдонсо болот, кайсынысы мүмкүн эмес жана эмне үчүн?
  • I2c автобус менен spi автобусунун ортосунда кандай айырма бар?
  • Эмне үчүн i2c автобусунда терминаторлор бар жана алардын мааниси кандай?
  • RS-232 интерфейси эки зымдарда гана иштей алабы: RX жана TX? Бул жерде мен жооп берем: Бул жаман экен, 9600, бирок болот!!!
  • Эми экинчи суроо: эмне үчүн?
  • Көп катмарлуу такталарда сигнал линияларын жана кубаттуулукту уюштуруунун эң жакшы жолу кайсы жана эмне үчүн? Кабаттардын ичиндеги күч, же катмарлардын ичиндеги сигнал линиялары? (Суроо негизинен схеманын дизайны жөнүндө).
  • Эмне үчүн дифференциалдык сызыктарда бардык жерде чогуу жүргөн тректер бар?
  • RS-485 автобусу. Адатта мындай линияда терминаторлор бар. Бирок, бизде плагин модулдарынын өзгөрүлмө саны бар жылдыз схемасы бар. Кагылышууларды жана тоскоолдуктарды болтурбоо үчүн кандай каражаттарды колдонуу керек?
  • Кызыл жана бинардык дарактар ​​деген эмне?
  • cmake менен кантип иштөө керек?
  • yocto Linux куруу боюнча суроолор.

Бул маектин максаттары:

1. Инвертирлөөчү функцияны жазыңыз uint32_t бардык бит. (бит менен иштөө интервьюларда абдан популярдуу, мен муну сунуштайм)
2.

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

Бул функция эмнени кайтарат? (кагаздагы чечим, компьютерсиз)

3. Эки сандын орточо арифметикалык маанисин эсептөө функциясы int32_t.

4. Программаларда чыгаруу ыкмалары кандай, анын ичинде. каталардын агымына.

Үчүнчү тандоо салыштырмалуу жакында эле, ал жакта дагы деле ушундай анкета бар болсо таң калбайм, ошондуктан аларды ачыкка чыгарбаш үчүн компанияны ачыкка чыгарбайм... Бирок жалпысынан мисал келтирейин. Мүмкүн болгон суроолор, эгер сиз суроолоруңузду таанысаңыз, анда мен салам айтам :).

Интервью суроолору №3

  1. Дарак өтүү кодунун мисалы келтирилген, бул коддо эмне жасалып жатканын айтып, каталарды көрсөтүү керек.
  2. ls утилитасынын мисалын жазыңыз. Эң жөнөкөй "-l" опциясы менен.
  3. Статикалык жана динамикалык байланышты кантип жасоого мисал келтириңиз. Айырмасы эмнеде?
  4. RS-232 кантип иштейт? RS-485 менен RS-232 ортосунда кандай айырма бар? Программисттин көз карашы боюнча RS-232 менен RS-485тин ортосунда кандай айырма бар?
  5. USB кантип иштейт (программисттин көз карашы боюнча)?
  6. Техникалык текстти орус тилинен англис тилине которуу.

Ийгиликтүү маек ийгиликтүү иштин кепилдиги эмес

Бул бөлүм, балким, программисттер үчүн да эмес (бирок алар үчүн да), бирок HR үчүн көбүрөөк. Эң адекваттуу компаниялар интервьюлардын жыйынтыгына кылдаттык менен карашпайт. Ката кетирүү нормалдуу нерсе, көбүнчө алар адам көйгөйлөрдү жана акыл-эстүүлүктөрдү кантип чечүүнү билет деп карашат.

Негизги көйгөйлөрдүн бири – талапкер интервью учурунда көйгөйлөрдү ийгиликтүү чечип, өзүн мыкты адис катары көрсөтөт, бирок биринчи реалдуу тапшырманы аткара албай калат. Калп айтпайм, бул менин да башымдан өттү. Мен тозоктун бардык чөйрөлөрүн ийгиликтүү басып өттүм, бардык тесттик тапшырмаларды чечтим, бирок реалдуу шарттарда иш жөнөкөй тажрыйбасыздыктан өтө оор болуп чыкты. Бортко түшүү эң кыйын иш эмес. Эң кыйыны бул компаниянын бортунда калуу.

Ошондуктан, мен талапкер менен жөнөкөй маектешүүлөрдү жүргүзгөн компанияларга көбүрөөк ишенем жана мындай дейт: биринчи айдан кийин, сиз бизге ылайыктуу же туура эмес экениңиз билинет. Бул эң адекваттуу мамиле, ооба, балким, бир аз кымбат, бирок кимдин ким экени дароо эле көрүнүп турат.

Интервью үчүн дагы бир вариант бар: аны ийгиликтүү тапшырганда, бирок интервьюнун жыйынтыгы боюнча иш берүүчү таптакыр жетишсиз экенин түшүнөсүң. Эгерде жеке ишкер болуп иштөөнү сунушташса, ири кирешелерди убада кылып, дароо иштен баш тартам. Бул операциялык уюм үчүн салык төлөөдөн качуунун бир түрү жана эмне үчүн жумуш берүүчүнүн көйгөйлөрү мени программист катары тынчсыздандырышы керек? Дагы бир вариант - ар кандай мамлекеттик органдар. Мен интервью бердим, жыйынтыгында жакшы айлык сунушташыптыр, бирок мурунку программист иштен кетти, ооруп калды, каза болду, жумуштун оордугуна байланыштуу ичип-жеп кетти, жумуш күнүң эртең менен 8де башталат дешти. . Андай жерден ал да таманынан жылтылдагандай чуркады. Ооба, HR, эгер жумуш күнү эртең менен башталса, программисттер эң даамдуу жумуштан да баш тартууга даяр экенин эске алыңыз.

Аягында мен программист тандоонун сонун видеосун берем, анын скриншоту ушул макаланын башында берилген. Мен дагы бир эмес бир нече жолу ушундай интервью алдым. Эгерде сиз суроолордун этабында тиранияны көрсөңүз, анда өзүңүздү сыйлаңыз, ордуңуздан туруңуз, буюмуңузду алыңыз да кетиңиз – бул нормалдуу көрүнүш. Эгерде HR жана менеджер интервью учурунда сиздин эсебиңизге ишенсе, бул компаниянын уулуу экенин көрсөтүп турат жана сиз адекваттуу жетекчилерди жактырмайынча ал жерде иштебешиңиз керек.

табылгалары

Программисттер, интервьюга баргыла! Жана ар дайым көтөрүлүүгө аракет кыл. Келгиле, эгер сиз N акча алсаңыз, анда жок дегенде N * 1,2, же жакшыраак N * 1,5 үчүн маектешүүгө барыңыз. Бул вакансияны дароо эле албасаңыз дагы, бул айлык акыга эмне керек экенин түшүнөсүз.
Менин байкоолорум көрсөткөндөй, англис тилин жакшы билүү, тармакта жетиштүү бай тажрыйба жана өзүнө болгон ишеним чечет. Акыркысы жашоонун бардык жериндей эле негизги сапат. Эреже катары, өзүнө ишенген талапкер эң сонун, бирок уялчаак жана активдүү талапкерге караганда көбүрөөк каталары менен интервьюда жакшыраак иштей алат. Маектериңизге ийгилик!

P/S конкурсу

Эгерде сизде HR сизге жүктөгөн көйгөйлөрдүн кызыктуу мисалдары болсо, анда комментарийлерде кош келиңиз. Биз чакан сынак даярдадык – шарттары жөнөкөй: сиз интервью учурундагы эң адаттан тыш тапшырманы жазасыз, окурмандар ага баа беришет (плюс), жана бир жумадан кийин биз жыйынтыгын чыгарып, жеңүүчүнү кызыктуу белектер менен сыйлайбыз.

Программисттер, интервьюга баргыла

Программисттер, интервьюга баргыла

Source: www.habr.com

Комментарий кошуу