Testitehtävien roolista kehittäjän elämässä

Kuinka monta teknistä haastattelua olet ollut elämäsi aikana?

Viimeisen viiden vuoden aikana olen osallistunut 35 tekniseen haastatteluun kaikentyyppisissä ja erityyppisissä kuviteltavissa - kazakstanilaisista startupeista, jotka ostavat yhteistä lihaa talveksi, saksalaisiin ja amerikkalaisiin fintech-palveluihin ja pankkeihin; painopisteenä ohjelmointi, toimitus ja hallinta; kauko-ja toimistossa; ajallisesti rajoitettu ja rajoittamaton; stressaavaa ja rentoa, eri kielillä.

Tämä yhdistettynä ~20 haastatteluun, jotka tein itse työnantajana - riittävä määrä, jotta minusta tulisi haastattelujen kuningas, jotta voin tehdä seuraavan havainnon (alku täysin epäselvä) ja vakiinnuttaa itseni siinä: Olen vakuuttunut, että suurelta osin niin monien haastattelujen ansiosta se alkaa näyttää marginaalilta tottumukselta, opiskelin pinoani ammattitasolla ja minusta tuli kilpailukykyinen asiantuntija, vaikka olin työskennellyt web-kehityksen parissa jo 10 vuotta.

Tämä artikkeli on suunnattu ohjelmoijille, jotka ovat matkansa alussa eivätkä ole vielä käyneet läpi tietonsa syvyyttä. Siinä haluan laajentaa opinnäytetyötä koetehtävien ja haastatteluissa esitettyjen teknisten kysymysten jättimäisistä kasvatuksellisista eduista - ja kutsua kaikki äskettäin kirjoitettuani sähkebottiani ActualizeBot, jossa suunnitelmani mukaan pääset tekniseen haastatteluun vähintään joka päivä niiden loppuun asti. Ja jotta ne eivät lopu, voit myös jakaa mielenkiintoisen teknisen tehtävän, kysymyksen tai haastattelun aikana kokeman hyödyllisen/hauskan tilanteen.

Kerron sinulle lisää alla olevasta robotista. Selvitetään ensin, miksi on niin tärkeää tietää ja ymmärtää vastaukset näihin teknisiin kysymyksiin ja tehtäviin, vaikka olisitkin onnistuneesti ajanut freelance-projekteja vuosia.

Miksi perustietojemme laatu jättää paljon toivomisen varaa?

Tekniset haastattelut, jos et ole vielä tullut haastattelujen kuninkaaksi, ovat vakava stressi keholle, kuten työnhaku yleensäkin - olitpa aloittelija asiantuntija, vaihtaja tai kehittäjä, joka on työskennellyt paikka pitkään (ja meidän aikanamme "pitkää" voidaan pitää vuotta).

Monissa haastatteluissa on inhimillinen tekijä, joka lisää tätä stressiä. Haastattelijasi ei ehkä ole Alena Vladimirskaja, vaan tavallinen ohjelmoija, jolta on vaikea odottaa riittäviä tehtäviä ja niiden arviointia, tai kova tiiminvetäjä, joka odottaa hetkeä, jolloin hän laskee kaiken ankaruutensa. hänen katseensa sinuun, kysyen: Mikä on sinulle ketterä!?

Eräänä päivänä, antamatta tarvittavaa, mutta, kuten ymmärrät, arvaamatonta vastausta tähän kysymykseen, jäin ilman tarjousta, josta olin uskomattoman iloinen.

Yrittämällä välttää tätä stressiä ja turhia liikkeitä yleensä etäännämme itsemme paitsi kielen joidenkin perusominaisuuksien tietämättömyytemme äänekkäästä paljastamisesta, myös siitä, että tätä tietämättömyyttä vähennetään ainakin hieman.

Ongelmana on, että käytännössä on vähän paikkoja, joissa voimme saada tämän luokan ongelmia.
Jokainen kehittäjä, joka on joutunut työskentelemään useissa paikoissa, vahvistaa, että haastatteluissa esiin tuoduilla perustavanlaatuisilla tai luovilla ongelmilla on harvoin mitään tekemistä sen kanssa, mitä ohjelmoija käsittelee todellisessa elämässä - ei rekursioita, kaavioita ja asynkronisia hissien ohjausjärjestelmiä planeetalla, joissa on negatiivinen vaikutus. painovoima galaksin toisessa haarassa. Valitettavasti.

Suhteessa alkuperäiseen JavaScriptiin on hyvä esimerkki - jos React.JS ei olisi ilmestynyt, 98 % JavaScript-ohjelmoijista jatkaisi menestyksekkäästi autuaassa tietämättömyydessä siitä, mitä bind on - yli 20 vuotta sen ilmestymisen jälkeen - ja jatkaisivat. olla hämmentynyt, saada siitä kysymyksiä haastatteluissa, ja vain ne, jotka keksivät kaikki nämä erittäin abstraktit kirjastot, viitekehykset ja moduulit, jatkaisivat työskentelyä sen kanssa. Nykyään reaktion ansiosta tämä luku on laskenut 97 prosenttiin.

Nähdessään näiden tehtävien "eristyksen todellisuudesta" monet kehittäjät jättävät ne huomiotta tai hukkaavat aikaa niihin uppoutumiseen - ja jatkavat päivittäistä rutiiniaan eli kuvaannollisesti sanoen kävelemistä tuotannon miinakentän läpi, ei vain ilman miinanpaljasinta, mutta myös tietämättä olevansa miinakentällä.

Mitä seurauksia kielen perustavanlaatuisen tietämyksen puutteesta on?

Vastaus tähän kysymykseen vaikuttaa banaalilta, mutta jostain syystä ihmisluontoon kuuluu työntää ratkaisunsa aina kaukaiseen nurkkaan - ja tällä on surullinen rooli nuorempien ja keskitason ohjelmoijien elämässä, mikä pidentää heidän polkuaan korkeuksiin (ja syvyyksiin). ) kielitaitoa parilla vuodella.

Sovelluskoodia, joka käyttää viitteitä ja kirjastoja, joita he ovat tottuneet kirjoittamaan päivittäin, ei voida pitää luotettavana, jos ne kirjoittavat sen ymmärtämättä riittävästi sen toteutuksen eri puolia. Hyvä esimerkki tästä JavaScriptin maailmasta on JQuery-kirjaston kohtalo, joka oli aikoinaan edistyksen moottori ja joka nykyään on itsesuljettu tietokenttä, joka on erotettu muusta kielestä, ottaa luonnollisen paikkansa markkinat - puoliammattimaiset käsikirjoitukset, jotka on kirjoitettu hätäisesti ja toimivat tarpeen mukaan lahjana samalle nopealle layoutille bootstrapissa edullisilta freelancereilta.

Tällaisella vastuuttomalla lähestymistavalla kehitettyjen hankkeiden tulevaisuus, vaikkakin tietämättömyydestä, on proosallinen ja lyhytikäinen: merkittäviä ajan menetyksiä, epäonnistumisia, taloudellisia ja mainetappioita ja sen seurauksena innostuksen vähenemistä jatkaa. yhteistyötä.

Toisaalta ohjelmoijan tien valinneelle henkilölle ei juurikaan voi verrata nautintoa siitä, että hän ymmärtää, mitä hän tekee. Ymmärtää, että hän, kuten paroni Münchausen, hyppää miinakentän läpi hevosen selässä. Sanomattakin on selvää, että kunnollinen työnantaja näkee selvästi ihmisiä kävelemässä piittaamattomasti miinakentän läpi ja ihmisiä, jotka ovat jäätyneet päättämättömyyteen ottaa askeleen tilanteessa, jossa he voivat juosta ja hypätä ajattelematta mitään?

ActualizeBot

Nähtyään haastattelujen hyödyt ja tajuttuani, että tyhjiin haastatteluihin käyminen ei ole täysin eettistä, ajattelin, että olisi hienoa luoda botti, jossa aloittelija tai toiselle kielelle siirtyvä kehittäjä voisi osallistua koulutuskoulutukseen turvautumatta todellisia haastatteluja siinä määrin , joissa se tapahtui minulle. Ja muistaen kuinka ohjelmoijat rakastavat keskustella ja vertailla ongelmia, jotka heidän piti ratkaista - varsinkin jos se oli jotain ei-triviaalia - tajusin, että kaikki sopii, hylkäsin kaikki epäilykset ja voila.

Botissa on tällä hetkellä kolme yksinkertaista toimintoa:

  • Tietyn kielen/kehyksen tilaaminen saadakseen sille uusia tehtäviä. Tilaat ja kun tehtäviä saapuu, saat ne päivittäisessä uutiskirjeessä
  • Tehtävän tai testitehtävän julkaiseminen - Kirjassani sanotaan, että jakaminen on välittämistä
  • Erinomainen nimigeneraattori, jolla voit valita optimaalisen allekirjoituksen julkaisemasi tehtävän tekstille, mukaan lukien naiselliset sanakirjat, ilman feministejä

Tällä hetkellä valittavana on seuraavat kielet: JavaScript, Java, Python, PHP, MySQL. Valikoima on hieman rajallinen ymmärrykseni rajojen vuoksi. Toivon voivani lisätä tähän luetteloon habra-yhteisön avulla.

Botti lanseerataan puhtaasti rock and roll -muodossa; maksua ei odoteta mistään.
Pääset siihen tästä linkistä: ActualizeBot

Lyhyesti teknisestä toteutuksesta

Tämä botti on yksi useista pienistä projekteista, joissa tuon ensimmäisen julkisen version avoimen lähdekoodin minikehyksestäni monimutkaisten robottien kehittämiseen, rakkaudella nimeltä Hobot ja joka on saatavana NPM:nä hardcore-ihmisille.

Kehys on rakennettu Telegraf.JS:n ja TypeScriptin pohjalta, sen nolla-nolla-ensin käyttöesimerkillä varustettu versio on katsottavissa osoitteessa github ja kokeile heti. Pian lataan version 0.0.2, joka on laajennettu ja kammattu henkilölle ulkopuolelta, ja omistan sille erillisen artikkelin (runko). Olen iloinen, jos se osoittautuu jollekulle yhtä tärkeäksi kuin minulle.

Kuinka moneen haastatteluun jouduit osallistumaan?
Olen varma, että sinulla on jotain kerrottavaa!

Lähde: will.com

Lisää kommentti