Testülesannete rollist arendaja elus

Kui palju tehnilisi intervjuusid olete oma elus pidanud?

Viimase viie aasta jooksul olen osalenud 35 tehnilisel intervjuul igat tüüpi ja spetsiifikaga – alates Kasahstani idufirmadest, mis ostsid ühiselt talveks liha, lõpetades Saksamaa ja Ameerika fintech-teenuste ja pankadega; keskendudes programmeerimisele, tarnimisele ja haldamisele; puldiga ja kontoris; ajaliselt piiratud ja piiramatu; stressirohke ja pingevaba, erinevates keeltes.

See koos enda kui tööandja läbiviidud ~20 intervjuuga – piisav arv, et saada intervjuude kuningaks, et teha järgmine (esialgu täiesti ebaselge) tähelepanek ja end selles kehtestada: Olen veendunud, et suures osas tänu nii paljudele intervjuudele hakkab see välja nägema marginaalse harjumusena, õppisin oma stacki professionaalsel tasemel ja minust sai konkurentsivõimeline spetsialist, hoolimata sellest, et olin juba 10 aastat veebiarendusega töötanud.

See artikkel on adresseeritud programmeerijatele, kes on oma teekonna alguses ega ole veel oma teadmisi ammendanud. Selles soovin laiendada lõputööd testülesannete ja intervjuudes esitatud tehniliste küsimuste kolossaalsest haridusalasest kasust – ja kutsun kõiki oma äsja kirjutatud telegrammi robotisse. ActualizeBot, kus minu plaani järgi saab tehnilist intervjuud võtta vähemalt iga päev kuni nende lõpuni. Ja et need ei lõpeks, võite jagada ka huvitavat tehnilist ülesannet, küsimust või intervjuu ajal kogetud kasulikku/lõbusat olukorda.

Räägin teile allpool olevast robotist lähemalt. Kõigepealt selgitame välja, miks on nii oluline teada ja mõista vastuseid nendele tehnilistele küsimustele ja ülesannetele, isegi kui olete aastaid edukalt vabakutselisi projekte juhtinud.

Miks jätab meie põhiteadmiste kvaliteet palju soovida?

Tehnilised intervjuud, kui sa pole veel intervjuude kuningaks saanud, on kehale tõsine stress, nagu ka tööotsing üldiselt – olgu siis algaja spetsialist, vahetaja või ühes töötanud arendaja. koht pikka aega (ja meie ajal võib "pikaks" pidada aastat).

Paljudes intervjuudes suurendab seda stressi inimfaktor. Teie intervjueerija ei pruugi olla Alena Vladimirskaja, vaid tavaline programmeerija, kellelt on raske oodata adekvaatseid ülesandeid ja nende hindamist, või kõva meeskonnaliider, kes ootab hetke, et kogu oma tõsidust alandada. tema pilgud on sinul, küsides: Mis on sinu jaoks agile!?

Ühel päeval, andmata sellele küsimusele vajalikku, kuid, nagu aru saate, ettearvamatut vastust, jäin ma pakkumiseta, mille üle oli mul tohutult hea meel.

Püüdes seda stressi ja üleüldiselt tarbetuid liigutusi vältida, distantseerime end mitte ainult oma teadmatuse valjuhäälsest paljastamisest mõne keele põhitunnuse suhtes, vaid ka sellest, et me seda teadmatust vähemalt veidi vähendame.

Probleem on selles, et praktikas on vähe kohti, kust seda klassi probleeme saaksime.
Iga arendaja, kes on pidanud töötama mitmes kohas, kinnitab, et intervjuudes püstitatud fundamentaalsetel või loomingulistel probleemidel on harva pistmist sellega, millega programmeerija päriselus tegeleb – puuduvad rekursioonid, graafikud ja asünkroonsed liftide juhtimissüsteemid planeedil, millel on negatiivne. gravitatsioon galaktika teises harus. Kahjuks.

Seoses minu kohaliku JavaScriptiga on hea näide – kui React.JS poleks ilmunud, elaks 98% JavaScripti programmeerijatest edukalt edasi õndsas teadmatuses, mis on sidumine – rohkem kui 20 aastat pärast selle ilmumist – ja jätkaks olla segaduses, saades selle kohta intervjuudel küsimusi, ja sellega jätkaksid tööd ainult need, kes leiutavad kõik need ülimalt abstraktsed teegid, raamistikud ja moodulid. Tänaseks on see arv tänu reaktsioonile vähenenud 97%-ni.

Ilmselgelt eiravad paljud arendajad nende ülesannete "reaalsusest eraldatust" nähes neid või raiskavad aega neisse sukeldumisele – ja jätkavad oma igapäevast rutiini, st piltlikult öeldes kõndides läbi arendusmiinivälja mitte ainult tootmise nimel. ilma miinidetektorita, aga ka teadmata, et nad on miiniväljal.

Millised on keele põhiteadmiste puudumise tagajärjed?

Vastus sellele küsimusele tundub banaalne, kuid millegipärast on inimloomuses oma lahendus alati kaugemasse nurka suruda – ja see mängib nooremate ja keskmiste programmeerijate elus kurba rolli, pikendades nende teed kõrgustesse (ja sügavustesse). ) keeleoskust paari aasta võrra.

Rakenduse koodi, mis kasutab raamistikke ja teeke, mida nad on harjunud iga päev kirjutama, ei saa pidada usaldusväärseks, kui nad kirjutavad selle ilma selle rakendamise erinevatest aspektidest piisavalt mõistmata. Selle heaks illustratsiooniks JavaScripti maailmast on JQuery teegi saatus, mis oli kunagi progressi mootor ja tänapäeval, olles iseseisev teadmisteväli, mis on ülejäänud keelest lahutatud, võtab oma loomuliku koha sisse turg – poolprofessionaalsed skriptid, mis on kiiruga kirjutatud ja töötavad vastavalt vajadusele, kingituseks odavatelt vabakutselistelt samale kiirele paigutusele bootstrapis.

Sellise vastutustundetu lähenemisega, ehkki teadmatusest välja töötatud projektide tulevik on proosaline ja lühiajaline: märkimisväärsed ajakadu ootamatult, ebaõnnestumised, rahalised ja mainekaotused ning sellest tulenevalt väheneb entusiasm jätkamise vastu. koostöö.

Seevastu programmeerija tee valinud inimese jaoks on vähe võrreldav naudinguga mõista, mida ta teeb. Mõistes, et ta, nagu parun Münchausen, hüppab hobuse seljas läbi miinivälja. Ütlematagi selge, et korralik tööandja näeb selgelt miiniväljast läbimõtlematult kõndivaid inimesi ja inimesi, kes on tardunud otsustamatusest sammu astuda olukorras, kus saab joosta ja hüpata ilma millelegi mõtlemata?

ActualizeBot

Olles näinud intervjuude eeliseid ja mõistnud ka seda, et tühjade intervjuude tegemine ei ole täiesti eetiline, mõtlesin, et oleks tore luua bot, kus algaja või mõnda teise keelde siirdav arendaja saaks osaleda hariduskoolituses ilma tõelisi intervjuusid kasutamata. sel määral , milles see minuga juhtus. Ja meenutades, kuidas programmeerijad armastavad arutada ja võrrelda probleeme, mida nad pidid lahendama – eriti kui see oli midagi mittetriviaalset –, mõistsin, et kõik sobib, lükkasin kõik kahtlused tagasi ja voilaa.

Botil on praegu kolm lihtsat funktsiooni:

  • Teatud keele/raamistiku tellimine, et saada selle jaoks uusi ülesandeid. Tellite ja kui ülesanded saabuvad, saate need igapäevases uudiskirjas
  • Ülesande või testülesande avaldamine – minu raamatus öeldakse, et jagamine on hoolimine
  • Suurepärane nimegeneraator, mille abil saate valida avaldatava ülesande tekstile optimaalse signatuuri, sealhulgas naiselikud sõnaraamatud, ilma feministideta

Praegu on saadaval järgmised keeled: JavaScript, Java, Python, PHP, MySQL. Valik on minu arusaamise piiride tõttu mõnevõrra piiratud. Loodan habra kogukonna abiga seda nimekirja täiendada.

Bot käivitatakse puhtalt rock and roll formaadis, millegi eest tasumist ei oodata.
Selle juurde pääsete selle lingi abil: ActualizeBot

Lühidalt tehnilisest teostusest

See bot on üks paljudest väikestest projektidest, mille raames toon oma avatud lähtekoodiga miniraamistiku esimese avaliku versiooni keeruka struktuuriga robotite arendamiseks, mis kannab armastavalt nime Hobot ja mis on NPM-is saadaval raskekujulistele inimestele.

Raamistik on üles ehitatud Telegraf.JS ja TypeScripti baasil, selle null-null-esimene kasutusnäidisega varustatud versiooni saab vaadata aadressilt githabe ja proovige seda kohe. Varsti laadin üles väljastpoolt inimese jaoks laiendatud ja kammitud versiooni 0.0.2 ning pühendan sellele (pagasiruumi) eraldi artikli. Mul on hea meel, kui see osutub kellegi jaoks sama asjakohaseks kui minu jaoks.

Niisiis, mitmel intervjuul pidite osalema?
Olen kindel, et teil on midagi öelda!

Allikas: www.habr.com

Lisa kommentaar