Pri la rolo de testaj taskoj en la vivo de programisto

Kiom da teknikaj intervjuoj vi havis en via vivo?

Dum la pasintaj kvin jaroj, mi ĉeestis 35 teknikajn intervjuojn de ĉiu imagebla tipo kaj specifeco - de kazaĥaj noventreprenoj por kolektiva aĉeto de viando por la vintro ĝis germanaj kaj usonaj fintech-servoj kaj bankoj; kun fokuso pri programado, livero kaj administrado; fora kaj en la oficejo; limigita kaj senlima en tempo; streĉa kaj malstreĉa, en diversaj lingvoj.

Ĉi tio, kune kun la ~20 intervjuoj kiujn mi faris kiel dunganto - sufiĉa nombro por ke mi fariĝu la reĝo de intervjuoj por fari la sekvan observon (komence tute neevidentan) kaj establi min en ĝi: Mi estas konvinkita, ke grandparte danke al tiom da intervjuoj, ĝi komencas aspekti kiel marĝena kutimo, mi studis mian stakon je profesia nivelo kaj fariĝis konkurenciva specialisto, malgraŭ tio, ke mi jam laboris en retejo-disvolviĝo dum 10 jaroj.

Ĉi tiu artikolo estas adresita al programistoj, kiuj estas komence de sia vojaĝo kaj ankoraŭ ne elĉerpis la profundon de sia scio. En ĝi, mi volas pligrandigi la tezon pri la kolosaj edukaj avantaĝoj de testaj taskoj kaj teknikaj demandoj faritaj en intervjuoj - kaj inviti ĉiujn al mia nove skribita telegrambot AktualigiBot, kie, laŭ mia plano, vi povas fari teknikan intervjuon almenaŭ ĉiutage ĝis ili finiĝos. Kaj por ke ili ne finiĝos, vi ankaŭ povas dividi interesan teknikan taskon, demandon aŭ utilan/amuzan situacion spertan dum intervjuo.

Mi rakontos al vi pli pri la bot sube, ni unue eltrovu kial estas tiel grave scii kaj kompreni la respondojn al ĉi tiuj teknikaj demandoj kaj taskoj, eĉ se vi sukcese funkciigas sendependajn projektojn dum jaroj.

Kial la kvalito de nia fundamenta scio lasas multe por deziri?

Teknikaj intervjuoj, se vi ankoraŭ ne fariĝis la reĝo de intervjuoj, estas grava streso por la korpo, same kiel la serĉado de laboro ĝenerale - ĉu vi estas novulo specialisto, ŝanĝanto aŭ programisto, kiu laboris en unu. loko dum longa tempo (kaj en nia tempo "longa" povas esti konsiderata jaro).

En multaj intervjuoj, estas homa faktoro kuniganta ĉi tiun streson. Via intervjuanto eble ne estas Alena Vladimirskaja, sed ordinara programisto-kiel-vi-trovita, de kiu estas malfacile atendi adekvatajn taskojn kaj ilian taksadon, aŭ ĝisosta teamestro, kiu atendos la momenton por malaltigi sian tutan severecon en liaj okuloj al vi, demandante la demandon: Kio estas por vi lerta!?

Iun tagon, sen doni la necesan, sed, kiel vi komprenas, neantaŭvideblan respondon al ĉi tiu demando, mi restis sen propono, pri kiu mi estis nekredeble feliĉa.

Penante eviti ĉi tiun streĉon kaj nenecesajn movojn ĝenerale, ni distancigas nin ne nur de la laŭta malkovro de nia nescio pri iuj bazaj trajtoj de la lingvo, sed ankaŭ de reduktado de ĉi tiu nescio almenaŭ iomete.

La problemo estas, ke praktike estas malmultaj lokoj, kie ni povas akiri ĉi tiun klason de problemoj.
Ajna programisto, kiu devis labori en pluraj lokoj, konfirmos, ke la fundamentaj aŭ kreaj problemoj prezentitaj en intervjuoj malofte havas ion ajn rilatan al tio, pri kio programisto traktas en la reala vivo - neniuj rekursoj, grafikaĵoj kaj nesinkronaj lift-kontrolsistemoj sur la planedo kun negativaj. gravito en alia brako de la galaksio. Bedaŭrinde.

Rilate al mia denaska JavaScript, estas bona ekzemplo - se React.JS ne aperus, 98% de JavaScript-programistoj sukcese daŭrigus vivi en feliĉa nescio pri kio estas bind - pli ol 20 jarojn post ĝia apero - kaj daŭrigus esti perpleksa , ricevante demandojn pri ĝi ĉe intervjuoj, kaj nur tiuj kiuj inventas ĉiujn ĉi tiujn tre abstraktajn bibliotekojn, kadrojn kaj modulojn daŭre laborus kun ĝi. Hodiaŭ, danke al la reago, ĉi tiu nombro reduktiĝis al tio, kio ŝajnas 97%.

Evidente, vidante la "izoladon de la realo" de ĉi tiuj taskoj, multaj programistoj ignoras ilin aŭ malŝparas tempon mergante en ili - kaj daŭre okupiĝas pri sia ĉiutaga rutino, tio estas, figure parolante, promenante tra la minkampo de evoluo por produktado ne nur. sen mindetektilo, sed ankaŭ sen scii, ke ili estas en minkampo.

Kio estas la sekvoj de manko de fundamenta scio de lingvo?

La respondo al ĉi tiu demando ŝajnas banala, sed ial estas la homa naturo ĉiam puŝi ĝian solvon en la malproksiman angulon - kaj ĉi tio ludas malĝojan rolon en la vivo de junioraj kaj mezaj programistoj, plilongigante ilian vojon al la altoj (kaj profundoj). ) de lingvoscio de kelkaj jaroj da jaroj.

La aplika kodo uzanta kadrojn kaj bibliotekojn, kiujn ili kutimas skribi ĉiutage, ne povas esti konsiderita fidinda se ili skribas ĝin sen sufiĉa kompreno de la diversaj aspektoj de ĝia efektivigo. Bona ilustraĵo de tio el la mondo de JavaScript estas la sorto de la biblioteko JQuery, kiu iam estis la motoro de progreso kaj hodiaŭ, estante memfermita scikampo, divorcita de la resto de la lingvo, prenas sian naturan lokon en la merkato - duonprofesiaj skriptoj haste skribitaj kaj laborantaj laŭbezone kiel donaco al la sama rapida aranĝo sur bootstrap de malmultekostaj sendependaj dungitoj.

La estonteco de projektoj ellaboritaj kun tia nerespondeca aliro, kvankam pro nescio, estas proza ​​kaj mallongdaŭra: signifaj tempoperdoj senprokraste, fiaskoj, financaj kaj reputaciaj perdoj kaj, kiel rezulto, malpliiĝo de entuziasmo por daŭranta. kunlaboro.

Aliflanke, por homo, kiu elektis la vojon de programisto, malmulte povas kompari kun la plezuro kompreni, kion li faras. Komprenante, ke li, kiel barono Munchausen, ŝancelas tra minkampo ĉevale. Ne necesas diri, deca dunganto povas klare vidi homojn malprudente promeni tra minkampo kaj homojn, kiuj estas frostigitaj en nedecidemo fari paŝon en situacio, kie ili povas kuri kaj salti sen pensi pri io ajn?

AktualigiBot

Vidinte la avantaĝojn de intervjuoj, kaj ankaŭ konsciante, ke iri al malplenaj intervjuoj ne estas tute etika, mi pensis, ke estus bonege krei roboton, kie komencanto aŭ programisto, kiu transplantas al alia lingvo, povus okupiĝi pri eduka trejnado sen recurri al. realaj intervjuoj tiugrade , en kiuj okazis al mi. Kaj memorante kiel programistoj amas diskuti kaj kompari problemojn, kiujn ili devis solvi - precipe se temas pri io ne bagatela - mi konstatis, ke ĉio taŭgas, rifuzis ĉiujn dubojn kaj voila.

La roboto nuntempe havas 3 simplajn funkciojn:

  • Abono al aparta lingvo/kadro por ricevi novajn taskojn por ĝi. Vi abonas kaj kiam taskoj alvenas, vi ricevas ilin en la ĉiutaga bulteno
  • Eldoni taskon aŭ testan taskon - En mia libro oni diras, ke kunhavigo estas zorgema
  • Bonega nomgeneratoro, per kiu vi povas elekti la optimuman subskribon por la teksto de la tasko, kiun vi publikigas, inkluzive de inaj vortaroj, ne sen feministoj.

Nuntempe la sekvaj lingvoj estas elekteblaj: JavaScript, Java, Python, PHP, MySQL. La elekto estas iom limigita pro la limoj de mia kompreno. Mi esperas aldoni al ĉi tiu listo kun la helpo de la habra komunumo.

La bot estas lanĉita en pure rokenrola formato; pago por io ajn ne estas atendata.
Vi povas iri al ĝi uzante ĉi tiun ligilon: AktualigiBot

Mallonge pri teknika efektivigo

Ĉi tiu roboto estas unu el pluraj malgrandaj projektoj, kie mi alportas la unuan publikan version de mia malfermkoda miniframework por disvolvi robotojn kun kompleksa strukturo, ame nomita Hobot kaj disponebla en NPM por ĝisostaj homoj.

La kadro estas konstruita surbaze de Telegraf.JS kaj TypeScript, ĝia nul-nul-unua versio, ekipita per ekzemplo de uzo, videblas ĉe github kaj provu ĝin tuj. Baldaŭ mi alŝutos version 0.0.2, vastigitan kaj kombantan por homo de ekstere, kaj dediĉos al ĝi apartan artikolon (la trunko). Mi ĝojos, se ĝi montriĝos tiel grava por iu kiel ĝi estas por mi.

Do, kiom da intervjuoj vi devis ĉeesti?
Mi certas, ke vi havas ion por rakonti!

fonto: www.habr.com

Aldoni komenton