Kas ir programmēšanas intervija (tehniskā intervija) ?
Tehniskā intervija ir vieta, kur jūs demonstrējat savu kompetenci programmēt. Parasti jūs būtu pabeidzis skrīninga pamatus un parādījis, ka jūsu personiskās īpašības (soft skills) ir piemērotas uzņēmumam. personiskās īpašības ir saistītas ar jūsu spēju izturēties sabiedriski.
Tas ietver
- skaidru saziņu,
- labu darba ētiku un
- jūsu prezentācijas atbilstību uzņēmuma vērtībām.
Tehniskā intervija ir paredzēta, lai noteiktu, vai esat tehniski spējīgs pildīt amata pienākumus. Šajā rakstā jūs uzzināsiet, kā pieiet tehniskajai intervijai, dodoties uz programmēšanas interviju, tas palīdzēs paturēt prātā tālāk norādītās darbības;
- sagatavojieties panākumiem,
- vispirms konceptuāli atrisiniet problēmu,
- izmantojiet atbilstošus rīkus un,
- visbeidzot, optimizējiet risinājumu.
Padziļināta iedziļināšanās šajos jēdzienos palīdzēs jums saprast, kā šo metodi piemērot.
Pirmkārt, sagatavojieties panākumiem…
Daudzi kandidāti, veicot tehnisko interviju, var izjust satraukumu. Kas notiek, ja tiek uzdots jautājums un prāts pēkšņi satraukumā kļūst tukšs? Par laimi, ir dažas darbības, kuras varat veikt, lai sagatavotos panākumiem.
Nespēja sagatavoties nozīmē gatavošanos neveiksmei.
Vispirms atrisiniet problēmu konceptuāli. Pirms risinājuma izmantošanas ir ieteicams vispirms iegūt skaidru priekšstatu par jautājumu un to, kā izskatīsies atbilde. Veltiet kādu laiku, lai pārliecinātos, ka jums ir skaidrs, kas jums tiek jautāts. Intervētājam nebūs nekādu problēmu ar jums, meklējot paskaidrojumus no paša sākuma. Ja ir pieejama tāfele, vai kāds cits ērts līdzeklis izmantojiet to un pierakstiet galvenos problēmas punktus, pirms izklāstāt iespējamo risinājumu. Šī ir lieliska iespēja parādīt savu spēju argumentēt problēmu, izmantojot pseidokodu pirms pirmās koda rindiņas rakstīšanas. Pierādīt savu spēju atrisināt problēmu ir pusceļā uz to. Atcerieties, ka vienmēr var iemācīt kodēt, un spēja risināt problēmas ir ļoti pieprasīta spēja. Esiet pašpārliecināts un komentējiet savas darbības skaļi, un skaidri, novērtējot problēmu un parādiet intervētājiem, kā jūs iesaistāties problēmu risināšanā un kāpēc izvēlējāties vienu pieeju, nevis citu. Tas var būt liels palīgs, ja varat pielīdzināt vienu problēmu jau zināmai citai problēmai. Sadali vienu zināmo pamatproblēmu vairākās mazākās problēmās. Problēmas sadalīšana mazākās var palīdzēt atrisināt šķietami sarežģītu problēmu. Ja pastāv papildu laika ierobežojums un tiek pārsniegts atļautais laiks, jūs joprojām varēsiet parādīt funkcionālās koda daļas. Izmantojiet atbilstošus rīkus. Kodēšanas intervijā izklāstītie problēmu veidi būs jāizpilda intervijas laikā, tādējādi risinājumi pēc būtības nebūs pārlieku sarežģīti. Tie ir paredzēti, lai pārbaudītu jūsu problēmu risināšanas spējas mikrokosmiskā līmenī un jūsu izpratni par pieejamajiem rīkiem.
Piemērs:
Apsveriet klasisko zeķu skaitīšanas problēmu. Jums tiek dots masīvs, kas attēlo zeķu krāsas.
- Dzeltenās zeķes attēlo viens,
- zilās zeķes – divas,
- sarkanās – trīs,
- zaļās zeķes – četras
- un, visbeidzot, oranžās zeķes – piecas.
Zeķu krāsas ir vienādas ar skaitļiem, kā paskaidrots, proti, 1,2,2,1,1,3,5,1,4 un 4.
Nosakiet, cik vienas krāsas zeķu pāru pastāv?
- 4 x 1 = 2 pāri (Ir četri 1, kas ir vienādi ar diviem dzeltenu zeķu pāriem),
- 3 = 1 ( trīs un pieci (nākošais zemāk) apzīmē nepāra zeķes.)
- 5 = 1 (Lai gan tās ir sarkanas un oranžas zeķes, tām nav atbilstošu zeķu, lai izveidotu pārus.)
- 2 un 4 = 2 pāri (kas katrs apzīmē zilu un zaļu zeķu pāri.)
Lai īsi atrisinātu šo problēmu, varat izmantot atbilstošu datu struktūru – es šim piemēram izvēlējos šādu…
let zeķes = [1, 2, 2, 1, 1, 3, 5, 1, 4, 4];
console.log(zeķes);
let zeķu_atvilktne = {};
for (let s of zeķes) {
if (s in zeķu_atvilktne) {
zeķu_atvilktne[s] += 1;
} else {
zeķu_atvilktne[s] = 1;
}
}
for (let [key, value] of Object.entries(zeķu_atvilktne)) {
if (value % 2 == 1) {
console.log(key, value);
}
}
Šī koda iznājums terminālī:
Šeit būs arī šī koda pamatprincips ar skaidrojumiem:
// Definējam sarakstu ar vērtībām.
let saraksts = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// Definējam tukšu vārdnīcu.
let vardnica = {};
// Izveidojam ciklu, kas iterē cauri sarakstam.
for (let i = 0; i < saraksts.length; i++) {
// Pārbaudām, vai pašreizējais elements jau ir vārdnīcā.
if (saraksts[i] in vardnica) {
// Ja elements jau ir vārdnīcā, tad palielinam tā skaitu par 1.
vardnica[saraksts[i]] += 1;
} else {
// Ja elements nav vēl vārdnīcā, tad pievienojam to ar vērtību 1.
vardnica[saraksts[i]] = 1;
}
}
// Izveidojam ciklu, kas iterē cauri vārdnīcai.
for (let element in vardnica) {
// Pārbaudām, vai elementa skaits ir pāra skaitlis.
if (vardnica[element] % 2 === 0) {
// Ja elementa skaits ir pāra skaitlis, tad izdrukājam elementu.
console.log(element);
}
}
Nākošajos rakstos apskatīsim arī datu struktūras. Risinājums būtu izmantot zeķu krāsas kā taustiņus un skaitu kā vērtības, pēc tam atkārtot vārdnīcu un izgūt visus nepāra skaitļus, kas norāda uz nepāra zeķu klātbūtni. Lai gan pastāv daudzi programmatiski veidi, kā to atrisināt, esošo struktūru izmantošana samazina nepieciešamo kodu un parāda pamatelementus. Ja iespējams, vienmēr izmantojiet esošās pieejas, nevis mēģiniet ieviest manuālus risinājumus. Papildus iepazīšanai ar skavas struktūrām, pirms iesaistīšanās tehniskajās intervijās pārskatiet izplatītos šķirošanas un meklēšanas algoritmus. Tā ir laba prakse, lai optimizētu savu kodu. Tas nozīmē koda rakstīšanu vai pārrakstīšanu, lai programma izmantotu pēc iespējas mazāk atmiņas vai diska vietas un samazinātu CPU laiku vai tīkla joslas platumu. Risinājuma kodēšana ir labs solis ceļā uz respektablu risinājumu. Noteikti veltiet laiku sava koda optimizēšanai. Vēl viens jēdziens, kuru noteikti apskatīsim kādā no nākošajiem rakstiem, ir laika un telpas sarežģītība. Vai varat parādīt intervētājam, ka saprotat šos būtiskos jēdzienus? Vienkārši sakot, tas ir veids, kā noteikt, cik ātri un cik daudz vietas aizņems jūsu risinājums. Sniedzot atbildi, izklāstiet sava risinājuma laika un telpas sarežģītību un pēc tam pārbaudiet, vai varat to uzlabot. Identificējiet atkārtotu vai pārklājošu kodu.
Parādiet, ka varat modularizēt šo kodu par funkciju, kas ir atkārtoti izsaucama, un atkārtoti izmantot kodu, kad iespējams. Bieži atkārtots labas programmēšanas princips ir “sausais” (DRY – Don’t Repeat Yourself). Tā ir ideja pateikt kaut ko tikai vienu reizi kodā un atkārtoti izmantot tik bieži, cik nepieciešams. Turklāt, ja ir koda daļas, kas vairs nav nepieciešamas modularizācijas vai nepabeigtas domas dēļ, tieciet no tām vaļā – attīriet kodu no tām. Izvairieties no pārmērīgiem kompilatoru izsaukumiem. Ja meklējāt vērtību masīvā, pārtrauciet cilpu, kad vienums ir atrasts. Ļoti sasniedzama koda optimizācija ir iekļaut atgriešanas paziņojumu, kad tiek atrasta vērtība, vai izmantot cilpu, kas ir atkarīga no Būlean vērtības. Tiklīdz tiek atrasts rezultāts, cilpu var pārtraukt. Tas palielina kopējo efektivitāti un samazina laika sarežģītību. Kad vien iespējams, neveidojiet vairāk mainīgo, nekā nepieciešams.
Kāda veida intervijas varetu jūs varētu sagaidīt…?
Ievads
Darba iegūšana ir saistīta ar lēkšanu cauri vairākiem posmiem. Pēc CV sastādīšanas, dažu piemērotu darba iespēju noteikšanas, pieteikumu aizpildīšanas un uzņēmumu izpētes, jūs sāksiet saņemt interviju piedāvājumus. Intervijas mērķis ir atrast labu sakritību starp uzņēmumu un kandidātu. Katrs uzņēmums ir atšķirīgs, un katrs uzņēmums intervijas procesu veiks savā veidā.
Šajā raksta daļā jūs uzzināsiet par to, kas ir iesaistīts kodēšanas intervijā, piemēram:
- Ko ietver skrīninga process.
- Viktorīnas (testu) jautājumu veids, ar kuru jūs varētu saskarties.
- No kā varētu sastāvēt tiešsaistes uzdevums.
- Tehniskās intervijas detaļas.
- Un jebkuri mājas uzdevumi, kas jums var tikt lūgti izpildīt.
Skrīnings
Pirmā saskarsme ar uzņēmumu būs skrīninga intervija. Personāla atlases speciālists, izlasījis jūsu pieteikumu, parasti sazināsies ar telefona zvanu, lai apspriestu iespējamo piemērotību. Šī posma mērķis ir noteikt, vai jūs patiesi interesējaties par šo lomu un vai jūs būtu piemērots uzņēmumam. Tā ir lieliska iespēja jums kā kandidātam uzzināt vairāk par lomu, uzņēmumu un viņu pieņemšanas procesu. Daži lieliski jautājumi, kas jāuzdod, varētu būt šādi:
- Kāda ir loma – piedāvātais amats?
- Kādu kodēšanas valodu uzņēmums parasti izmanto?
- Kāds ir intervijas process, kāda veida intervijas tiks veiktas un cik to būs?
- Kādam projektam ir paredzēta piedāvātā loma?
- Kāds ir komandas tipiskais sastāvs?
- Kas būs intervijas panelī, un kāda ir viņu loma uzņēmumā?
Atcerieties, ka intervētājs vēlas sniegt jums iespēju izteikt pārliecinošu argumentu par to, kāpēc jūs būtu jāpieņem darbā. Viņiem vajadzētu būt vairāk nekā gataviem sniegt jums jebkādu informāciju, kas varētu palīdzēt jums labāk sagatavoties.
No uzņēmuma viedokļa skrīningā parasti tiek aplūkotas jūsu soft vai komunikācijas prasmes. Tehnisku jautājumu nebūs, un to parasti veiks cilvēkresursu (HR) pārstāvis. Ir svarīgi labi prezentēt sevi un demonstrēt savas sociālās spējas, piemēram, klausīšanās un atbildes uz jautājumiem.
Viktorīna – Tests
Viktorīna ir ļoti vienkāršs veids, kā noteikt, vai kandidāts zina, kā kodēt. Parasti tās tiek veiktas intervijas procesa sākumā un darbojas kā filtrs, lai samazinātu uzņēmumam veicamo interviju skaitu. Jums nevajadzētu gaidīt dziļus vai paplašinātus jautājumus; tā vietā mērķis ir noteikt, vai kandidāts labi pārzina pamatus. Daži jautājumi varētu ietvert šādus jautājumus:
- Kā jūs pārbaudāt nulles masīvā jūsu izvēlētajā valodā?
- Kāda ir Quicksort telpas sarežģītība?
- Kuru datu struktūru jūs izmantotu, lai saglabātu atslēgu un vērtību sarakstu?
- Kāda ir sintakse, lai atlasītu kolonnas nosaukumu, izmantojot SQL?
- Kādi testēšanas procesi jums ir pazīstami?
Jautājumi būs specifiski darbam, tāpēc saturs un jautājumi noteikti var atšķirties. Tomēr tie būs jautājumi, uz kuriem jāatbild ar kodolīgām, tiešām atbildēm. Gatavojoties intervijai, ir saprātīgi noteikt, kuras programmēšanas valodas uzņēmums izmanto, un visas citas tehniskās atziņas, ko var gūt no darba sludinājuma un sākotnējās izpētes.
Tiešsaistes kodēšanas uzdevums
Atkarībā no darba, uz kuru piesakāties, jums var lūgt izpildīt tiešsaistes kodēšanas uzdevumu. Tas parasti notiek pirms tehniskās intervijas, jo rezultātus var izmantot kā diskusiju punktu turpmākajās intervijās. Tomēr norīkojums var notikt arī pēc veiksmīgas tehniskās intervijas, lai salīdzinātu kandidātus.
Šis solis ļauj tuvoties un atrisināt skaidri definētu uzdevumu vidē, kurā nav spiediena. Grūtības līmeņa ziņā līdzīgs viktorīnai, tas ir filtrēšanas solis, lai nodrošinātu, ka varat strādāt ar mērķa tehnoloģiju un saprast pamatus, piemēram, cilpas, Būlean vērtības, pārbaudes utt. Dažiem kodēšanas uzdevumiem var būt noteikts laiks; šajā situācijā jums visdrīzāk būs piekļuve Google vai citiem atsauces materiāliem.
Tehniskā intervija
To sauc arī par kodēšanas izaicinājumu. Parasti tas notiek pēc sākotnējās pārbaudes. Tas var būt gan virtuāls, gan klātienē. Intervētājs iepazīstinās jūs ar sarežģītu problēmu un dos jums īsu laiku tās risināšanai. Iesaistoties izaicinājumā, vienmēr vislabāk ir pārrunāt savas domas skaļi. Piemēram, pirms izlemjat starp divām datu struktūrām, paskaidrojiet, kāpēc, jūsuprāt, viena ir piemērotāka uzdevumam nekā otra. Izmantojiet iespēju, lai parādītu savu vispārējo izpratni par tēmu un īpašās zināšanas par uzdevumu.
Tehniskās intervijas grūtības pakāpei jābūt zemai. Intervētāji zina, ka jums nav piekļuves Google un, iespējams, jums bija jāiegaumē daļa no vajadzīgās sintakses. Tā vietā šīs intervijas ir paredzētas, lai parādītu jūsu problēmu risināšanas prasmes. Dažas tehniskās intervijas var veikt, izmantojot pseidokodu. Turklāt tehniskās intervijas ļauj nākamajiem kolēģiem novērtēt jūsu spēju pamatot ar kodu. Tie bieži ietver īsas, specializētas uzvednes, piemēram:
- Kā jūs izskaidrotu tehnoloģiju X netehniskam cilvēkam?
- Kāda ir jūsu iecienītākā tehnoloģija un kāpēc?
- Ar kādām datu bāzēm esat strādājis?
- Pastāstiet man par tehnisku izaicinājumu, ko esat pārvarējis kādā projektā.
- Pie kādiem projektiem esat strādājis brīvajā laikā?
Tie ir vispārīgi norādījumi, un tehniskā intervija tiks pielāgota konkrētai lomai. Tomēr laba prakse ir sagatavot dažas atbildes, kurās aprakstīts jūsu kā programmētāja ceļojums. Pārskatiet savus projektus un skaidri noskaidrojiet dažādus pieņemtos lēmumus un iemeslus, jo īpaši izvēloties vienu tehnoloģiju, nevis citu.
Mājasdarbs, jeb mājās izpildāms uzdevums
Ja tu nonāc tik tālu, tev iet ļoti labi. Tas var notikt pirms vai pēc tehniskās intervijas, jo intervētāji var vēlēties apspriest jūsu domāšanas procesu saistībā ar risinājumu, ko sniedzāt iepriekš. Ja šim amatam ir vairākas interviju kārtas, tas var notikt starp divām tehniskajām intervijām. Uzņēmumam nevajadzētu lūgt jums veikt mājasdarba uzdevumu, ja vien viņi neuzskata, ka jūs potenciāli esat piemērots.
Jums tiks dotas vairākas dienas, lai izvērstu izaicinājuma risinājumu. Jums var lūgt izveidot lietojumprogrammu vai programmatiski atrisināt trafika maršrutēšanas problēmu. Citi uzdevumi var būt saistīti ar projektu, piemēram, ja plānojat strādāt ar redzes apstrādi, jums var tikt lūgts parādīt, ka varat automātiski noteikt objektus video plūsmā.
Noderīgi padomi
Veiciet pētījumu pirms katras intervijas un pārskatiet katru pēc pabeigšanas. Lielākā daļa uzņēmumu labprāt sniedz atsauksmes pēc jūsu intervijas, tāpēc vienmēr pieprasiet to un izmantojiet norādītos punktus kā sākumpunktu, lai labāk sagatavotos nākamajai intervijai. Atcerieties, ka prakse padara perfektu.
Secinājumi nobeigumā
Šajā rakstā jūs uzzinājāt par to, kas ir saistīts ar kodēšanas interviju, piemēram, par to, ko ietver skrīninga process, par viktorīnas jautājumiem, ar kuriem jūs varētu saskarties, no kā varētu sastāvēt tiešsaistes uzdevums, par tehniskās intervijas informāciju un par jebkuru uzdevumu. – mājas uzdevumi, kurus jums var lūgt izpildīt.
Ir izskaidroti vairāki interviju veidi. Tomēr uzņēmumam, kuram piesakāties, būs vēlamais formāts, kas varētu izmantot vienu vai vairākas no šīm pieejām. Vissvarīgākais ir tas, ka “katra intervija ir mācību process”. Pieņemsim, ka esat palaidis garām jautājumu vai jums tika uzdots jautājums par tehnisku koncepciju, kuru jūs nepārzināt. Tādā gadījumā jums ir iespēja uzzināt vairāk par to pēc intervijas.
Šajā rakstā jūs uzzinājāt par dažām pieejām, kuras var izmantot neatkarīgi no izaicinājuma. Pat ja neesat pazīstams ar problēmu vai nesasniedzat rezultātu atvēlētajā laikā, vienmēr mēģiniet parādīt savu argumentāciju un labākās prakses pieejas. Sagatavojieties tehniskajām intervijām, praktizējot tiešsaistes problēmu risinājumus un, ja iespējams, izmantojiet līdzīgu metodiku katram izaicinājumam, lai neatkarīgi no izaicinājuma jūs strādātu ērtā vidē. Programmēšanas intervija var šķist biedējošs uzdevums. Vienmēr būs iesaistīti nezināmā elementi, un jūsu vēlme gūt panākumus var nopietni satraukt Jūs pirms intervijas. Vienkārši esiet mierīgs un domājiet loģiski.
Veiksmi!
Atbildēt
Lai komentētu, jums jāpiesakās sistēmā.