Përshëndetje të gjithëve, të dashur lexues të mi!
Sot dua të ndaj mendimet e mia rreth një teme të përfolur prej kohësh, dhe ndoshta ta diskutojmë atë në komentet.
Më shpesh kam hasur në artikuj mbi praktikat e këqija të intervistave për pozita programatori, që sipas mendimit tim janë mjaft të vlefshme dhe, shpresoj, të lexueshme nga departamentet HR të kompanive të mëdha dhe të vogla.
Në vendet tona, sa më duket, ka kërkesë për entitete interesante si inxhinierët DevOps. Unë i përkas atyre njerëzve që nuk e perceptojnë shumë këtë frazë (po, po, metodologjia DevOps, etj.), prandaj shoh disa dallime në rrugët e zhvillimit të kësaj grupi specialistësh.
Së pari, unë besoj fort se çdo njeri ka një rreth interesash, madje edhe në fushën e punës, pra disa i pëlqen cloud-i, disa ju pëlqen të thellohen në serverat e aplikacioneve, të konfigurojnë thellësisht Java, ndërsa disa të shkruajnë kod në Python ose, perëndia na ruajt, kod yaml. Pra, këtu shfaqen ashtuquajturat inxhinierë infrastrukture, inxhinierë ndërtimi, zhvillues të nivelit të lartë të yaml 🙂
E gjithë kjo lejon nga njëra anë të gjeni personin më të përshtatshëm për grupin tuaj të detyrave, dhe nga ana tjetër krijon keqkuptime në intervista.
Bashkëngjitur përvojës së mija personale, kam bërë një numër të caktuar intervistash dhe kam marrë pjesë në mënyra të ndryshme si përgjigjës, dua të ndaj shikimin tim mbi gjithçka që po ndodh.
Antipaterni i parë dhe ndoshta më i preferuari im — dëshira e dikujt që të bëjë gjithçka, ose të paqartë se kush është i nevojshëm, të shohim një mori kandidatësh dhe aty kuptojmë. Ndoshta kjo është e aplikueshme në çdo fushë, por këtu ka karakteristika të veta.
Sipër, vura re se njerëzit janë më të prirur për vendet e punës me fjalët DevOps sesa Sistemi Administrator, edhe pse sipas mendimit tim në nivelin Senior, fusha e detyrave të dyja këtyre llojve dallon maksimalisht.
Çdo punëdhënës, i cili në të vërtetë ka nevojë për një sistem administrator, shkruan në titullin e ofrimit DevOps, duke listuar në trupin e kërkesës plot çdo gjë, K8S/Java/gradle/oracleDB etj, ndonëse brenda njeriut do të jetë në mbështetje të klastri K8S dhe mbështetje të stack OracleDB, të shkëputur nga ekipi.
Kështu që, cila është interaksioni i formatit të Zhvilluesve/Veprimit?
Më pas bëhet e qartë se si një proces i tillë bashkëpunimi me ekipin nuk është parashikuar dhe përgjithësisht, nuk ka ndonjë departament operations dhe ju bën të vendosni dhe konfiguroni kompjutera për zhvilluesit.
Ky variant, në të vërtetë, i përshtatet një pjesë të kërkuesve, por le të jemi të sinqertë, ky është një Senior System Administrator, pra pse nuk e shkruajnë kështu dhe çfarë ka të dhunshme në këtë? A është diferenca në pagë ndërmjet emrave të ndryshëm të profesioneve? Por buxheti i kompanisë është një, dhe siç e thotë një fjalë, si ta quash një anije, ajo do të lundrojë sipas buxhetit të saj.
Kam dëgjuar gjithashtu për atë, tani kandidati automatizon gjithçka shpejt dhe futet në zhvillimin e produktit në Python, cila është diferenca, kudo Python është i njëjtë. Diferenca në mënyrën e të menduarit dhe qasjes nuk merret parasysh.
Pastaj zakonisht diferencoj nivelin e specialistëve që vijnë dhe veçanërisht për secilin shoh shqetësimet e mia.
Junior — për mua Junior DevOps është një person që ka arritur një nivel mesatar të administratës së sistemeve / zhvillimit. Këtu është këndshëm të diferencosh forca të forta linuxoid që dëshirojnë të rriten në një fushë të re, ose zhvillues që kanë dëshirë të bëjnë mirë për zhvillues të tjerë. Të fortë, me disa aftësi debuguese, kërkimi i logëve, ose me ndonjë projekt të koduar.
Kam takuar si sisteme administrues që provuan diçka dhe duan të prekin re, ashtu edhe ata që provuan frontin, back dhe për disa arsye gjetën interes në proceset DevOps.
Në këtë nivel gjithmonë më shqetëson kur fillojnë të flasin për një mori të madhe teknologjish, Puppet, Ansible — pse nuk i ke provuar të gjitha? K8S, K3S — çfarë ndryshimi ka? Sa lloje databazash di? pse kaq pak? si funksionon enkriptimi në Java? Sidomos ata që vijnë nga zhvillimi, megjithëse janë burime shumë të dobishme, gjithmonë ka punë për ta në këtë fushë.
Gjithmonë më pengon kur ndodh kjo, e para që dëshiroj të pyes është — pse??? e dyta, që më vjen në mendje — a është vetë intervistuesi i gatshëm të përgjigjet në pyetje për një gamë të tillë teknologjish? A vërtet po duan të marrin një junior dhe t'ia ngarkojnë të gjitha atij?
Shpesh ndodh një gjë e tillë në çdo lloj agjencie, kur duhet të shesësh një person për një projekt të caktuar dhe duhen më shumë fjalë të shkëlqyera për CV-në, ose ndoshta kompania nuk dëshiron të marrë askënd, por thjesht sheh se cila është mundësia e juniorëve.
Niveli Middle
Këtu ka disa ekstreme sipas mendimit tim, së pari ndoshta është e vështirë të përcaktojmë saktësisht çfarë njeriu kalon në nivelin mid, ose përpiqen ta zbresin në junior, ose fillojnë ta trajtojnë si senior, duke u përpjekur të kapin një senior për çmimin e një mid (po, tregu e vendos, asgjë personale).
E gjitha më e çuditshme që kam parë — është të deep dive në kodim, të përdorësh Python, të mësosh Java GC, pra tema shumë specifike, ose përkundrazi, të zbulošh boshllëqe në njohuri të pambajtura prej kohësh, të provosh me rrjetat, llojet e shoferëve të OS, qesh dhe duket se si mund ta kishe harruar këtë. Dhe këtu ndodhin gjërat më interesante!
Për nivelin mid, sipas mendimit tim, specialisti formon një rreth interesash dhe një perspektivë personale mbi atë me çfarë dëshiron të punojë — të hipë në stakun më të ri, duke e futur në një kubik manipulative, ose të zhvillohet për një ndërmarrje të madhe, duke u thelluar në përformancën e kodit.
Në mendimin tim, është e nevojshme të pyesni për proceset me të cilat ka punuar njeriu, të pyesni gjithashtu se çfarë ka qenë më interesante dhe çfarë jo, dhe në bazë të këtyre njohurive të ndërtoni një klasë pyetjesh, duke i mapar patjetër pyetjet me stakun tuaj. Në të kundërt, duke zhvilluar një bisedë aktive për një ose dy orë mbi konfigurimin e një klasteri OpenShift, të angazhosh një njeri dhe ta vendosësh atë të ndërtojë monitorimin. Ndoshta kjo do t'i pëlqejë të dyja palëve.
Niveli Senior
O, niveli im i preferuar.
Para jush është një specialist i fortë, i cili e ka zhvilluar veten në një larmi projektesh, një njeri që tashmë e di çfarë dëshiron dhe çfarë nuk i pëlqen shumë.
Dhe kështu fillon sheshi:
— pyetje të thella mbi administrimin e sistemeve (shihni antipattern-in e parë)
— pyetje të thella mbi Linux në përgjithësi nga fusha teorike, larg njohurive praktike (Pyetje kryesore në nivelet OSI)
— pyetje academike për kodimin (sepse intervistuesi vetë nuk di shumë mirë fushën, thjesht i kërkuar të intervistojë një devop të çuditshëm)
Do të bëj një shënim të vogël këtu. Një herë, në një intervistë, më kërkuan të shkruaj ndonjë copë kod. Në një copë letër. Ashtu siç i pëlqen të gjithëve, çdo ditë shkruajnë, letra është gjithçka.
Pas arritjes së detyrës, pas shikimit të fletës time dhe zgjidhjes, u dha një verdict se algoritmi do të ishte jo optimal. I propozoj intervistuesit të shkruajë algoritmin e tij, për çka mori përgjigjen "Kjo nuk bën pjesë në kuadër të intervistës". Kërkova një minutë, rregullova pak kodin dhe e tregova, duke pyetur, a do të ishte më shpejt apo më ngadalë? Për çka mori përgjigjen, kalojmë te pyetja tjetër. Diferenca ishte në punën e kodit në cikël dhe pa cikël dhe unë kisha përgatitur një përgjigje pse është më mirë të bëhet kështu dhe jo ndryshe. Pas kësaj, nuk kisha dëshirë të përgjigjesha më për pyetje dhe të punoja me këtë person.
Duhet të merret parasysh se të gjithë ne jemi të ndryshëm dhe çdo gjë e vogël mund ta frikësojë kandidatin, që për ju është e parëndësishme.
— zakonisht për specialistët e nivelit Senior është e qartë struktura e punës, por jo, duhet të fillohet të testohet për gjëra të ngjashme, për shembull, ju keni shkruar Ansible, shkëlqyeshëm, por ne përdorim Puppet, ne ju thirrëm thjesht kështu, trego për Puppet. Shkëlqyeshëm! A keni punuar me OpenShift? Ne kemi K8s, nuk njohim dallime, por përvoja juaj nuk është relevante. Shkëlqyeshëm!
Ka edhe një nënklasë tjetër — personalisht, unë marr praktikantë për rritje në pozita junior.
Më pëlqen të kuptoj se praktikanti është një entitet që ende nuk është formuar. Më tremb shumë kur praktikantët fillojnë të trajtohen si Junior të fortë dhe pastaj, me një pamje të kënaqur, u ofrohet një praktikë (ndonjëherë të pa paguar, makth!).
Mos e bëni kështu.
Praktanti, sipas mendimit tim, është ose një student i vitit të fundit, ose dikush që dëshiron shumë të "shkonte në IT".
Me studentë është e thjeshtë — është e shkëlqyer të dihet se çfarë bën në universitet, çfarë ka bërë vetë, të shikosh se cilat pyetje do t'i ndezin sytë — nëse do t'i ndezin, të pyesësh pse pikërisht në devops dhe çfarë di për të. Të ndihesh për njeriun dhe të kuptosh nëse do të jetë kënaqësi të punosh me të më tej, a do të dëshirosh t'i mësosh diçka pikërisht atij.
Me ata që duan "të shkojnë në IT", gjithçka është pak më e rreptë — të shikosh sesa shumë personi vetë mëson, çfarë ka bërë para se të vinte te ju për intervistë, një mundësi e mirë do të ishte të shikosh në GitHub, nëse ka, natyra e komiteteve dhe cilat ushtime janë kryer. Të pyesësh gjithashtu, pse megjithatë devops, sepse në frontend është më argëtuese dhe më krijuese?
Në fund, do të doja t'ju jepja një këshillë tjetër: përcaktoni kush është vërtet i nevojshëm për ju dhe menjëherë do të gjeni personin e duhur. Identifikoni nevojat, shikoni tek specialisti si një profesionist, gjeni pikën e tij të fortë dhe përdorini ato me sukses në punën tuaj. Bëni kujdes për kandidatët, ata erdhën te ju për një intervistë dhe jo për një garë se kush do të dështojë.
Burimi: habr.com
