Interfeisa izstrādes skola: Minskas uzdevumu analīze un jauns komplekts Maskavā

Å odien tika atvērta jauna pieteikÅ”anās Yandex saskarnes izstrādes skola Maskavā. Pirmais apmācÄ«bas posms norisināsies no 7. septembra lÄ«dz 25. oktobrim. Citu pilsētu studenti tajā varēs piedalÄ«ties attālināti vai klātienē ā€“ uzņēmums apmaksās ceļa izdevumus un izmitināŔanu hostelÄ«. Otrais, arÄ« noslēdzoÅ”ais posms ilgs lÄ«dz 3.decembrim, to varēs aizvadÄ«t tikai klātienē.

Mani sauc JÅ«lija Serediča, Å”o ierakstu rakstÄ«jām kopā ar Sergeju Kazakovu. Mēs esam gan interfeisa izstrādātāji Yandex Minskas birojā, gan iepriekŔējo gadu SRI absolventi.

Interfeisa izstrādes skola: Minskas uzdevumu analīze un jauns komplekts Maskavā

Sakarā ar reÄ£istrācijas atvērÅ”anu Maskavā, mēs publicējam iepriekŔējās skolas ievaduzdevumu analÄ«zi - Å”eit, Minskā.

Ja izsekojat SRI uzdevumu vēsturei, gadu no gada mēs pārbaudījām trīs svarīgas programmētāja prasmes:

  • Izkārtojums. Katram izstrādātājam jāspēj veikt izkārtojumu. Tā nenotiek, ka tev ir tēvocis Serjoža, kurÅ” izstrādā visai komandai, un tu raksti tikai skriptus. Tāpēc katram skolēnam jāparāda, kā viņŔ prot salikt.
  • JavaScript. Ja lieta aprobežotos ar izkārtojumu, tad mums bÅ«tu nevis Interfeisa izstrādes skola, bet gan maketētāju skola. Skaisti izstrādātais interfeiss ir jāatdzÄ«vina. Tāpēc vienmēr ir kāds uzdevums JS, bet dažreiz tas ir arÄ« algoritmu uzdevums - mēs tos ļoti mÄ«lam.
  • Problēmu risināŔana, iespējams, ir vissvarÄ«gākā izstrādātāja prasme. Runājot par saskarņu izveidi, lietas mainās ļoti ātri. Tas ir tāpat kā LÅ«iss Kerols: "Jums ir jāskrien tik ātri, cik vien iespējams, lai tikai paliktu tajā paŔā vietā, un, lai nokļūtu citā vietā, jums jāskrien divreiz ātrāk." Ikdienā mēs saskaramies ar jaunām tehnoloÄ£ijām ā€“ ar tām ir jārēķinās un jāspēj tās saprast. Tāpēc treÅ”ajā uzdevumā mēs piedāvājām izprast tehnoloÄ£ijas, kuras iesācējs izstrādātājs parasti nepārzina.

Katra uzdevuma analīzē mēs jums pastāstīsim ne tikai par pareizo procedūru, bet arī par izplatītākajām kļūdām.

1. uzdevums: Portfelis

Pie pirmā uzdevuma strādāja Yandex.Collections dizainers Aleksejs Čerenkevičs, kurÅ” zina, kā veikt maketÄ“Å”anu, un viņa dienesta kolēģis, interfeisa izstrādātājs Sergejs Samsonovs.

Stāvoklis

Izveidojiet portfeļa vietni: pastāstiet mums par sevi, savu darbu un jūsu cerībām no skolas. Vietnei pēc iespējas vairāk jāatbilst piedāvātajam izkārtojumam (saites uz izkārtojumiem: 1000px, 600px, 320px, specifikācija). Mūs interesē tikai izkārtojums, tāpēc, lūdzu, neizmantojiet JavaScript.

Pārbaudot, mēs ņemsim vērā:

  • atkāpju izmēri, krāsu pareizÄ«ba, fonta stils, fonta lielums;
  • semantiskais izkārtojums;
  • dažādu elementu stāvokļu klātbÅ«tne: pogu un saiÅ”u parādÄ«Å”ana, virzot kursoru, izceļot aktÄ«vos ievades laukus utt.;
  • vairāku pārlÅ«kprogrammu saderÄ«ba (pārbaudÄ«ta jaunākajās populāro pārlÅ«kprogrammu versijās).

PriekŔrocība būs:

  • mÅ«sdienÄ«gu CSS risinājumu izmantoÅ”ana: flexbox, grid u.c.;
  • AdaptÄ«vs izkārtojums;
  • priekÅ”- un (vai) pēcprocesoru izmantoÅ”ana, montāža, minimizÄ“Å”ana, izvades koda optimizācija;
  • HTML veidlapas validācija, stilizēta failu augÅ”upielādes poga.

Uzdevums ir diezgan apjomÄ«gs, tāpēc varat izlaist to, kas nedarbosies. Tas nedaudz pazeminās jÅ«su punktu skaitu, taču jÅ«s joprojām varēsit demonstrēt savas zināŔanas. Kad esat pabeidzis, nosÅ«tiet mums divas saites ā€” uz savu portfolio un avota kodu vietnē GitHub.

Uzdevumā piedāvātie izkārtojumi bija ne tikai ar mobilo ierīču, planŔetdatoru un galddatoru ekrāniem, bet arī ar reālām specifikācijām.

Lai pirmā uzdevuma pārbaudes rezultātos bÅ«tu pēc iespējas vairāk objektivitātes, Å”ai pārbaudei bija ļoti daudz kritēriju.

kritēriji

Izveidota mājas lapa. Tas Ŕķiet paÅ”saprotami, taču daži puiÅ”i dažus blokus pilnÄ«bā izlaida ā€” vai nu viņi gribēja ietaupÄ«t laiku, vai arÄ« nevarēja tos izdarÄ«t. Izkārtojumu var aptuveni sadalÄ«t četros galvenajos ekrānos: galvenais ekrāns ar iemiesojumu, bloks ar SRI gaidām, bloks ar portfeli un bloks ar kontaktinformāciju. Tos varēja taisÄ«t pa sekcijām vai vienkārÅ”i izmantojot divus, galvenais, ka bija pieejami visi četri bloki.

Izkārtojuma atbilstÄ«ba maketam. Dizainers izstrādāja atseviŔķu specifikāciju (tostarp krāsas, tipogrāfiju, pogu stāvokli utt.), lai kandidātiem bÅ«tu vieglāk. ApakŔā bija mājiens par pirmā ekrāna ievilkumiem un iezÄ«mēm. Mani ļoti iepriecināja puiÅ”i, kuri ņēma vērā visas dizainera vēlmes: piemēram, pirmajam ekrānam vajadzēja bÅ«t ne mazākam par skatu loga augstumu.

AdaptÄ«vs izkārtojums - tas ir tad, kad interfeiss nav vienkārÅ”i izkārtots tā, ka trÄ«s izŔķirtspējās viss ir no pikseļiem lÄ«dz pikseļiem. Starpstāvokļos arÄ« izkārtojumam nevajadzētu sabrukt. Daži aizmirsa ierobežot konteinera maksimālo platumu un iestatÄ«t visu uz 1920 pikseļiem, daži sajauca fonus, bet kopumā kandidāti ar Å”o uzdevumu tika galā labi.

Semantiskais izkārtojums. ā€œCik reizes viņi pasaulei ir teikuÅ”iā€, ka saitei jābÅ«t veidotai kā , pogai ā€“ kā . Par laimi, lielākā daļa kandidātu izpildÄ«ja arÄ« Å”o prasÄ«bu. Ne visi atpazina slēpto sarakstu SRI cerÄ«bās, veidojot to, izmantojot div tagus, taču tas nav tik slikti. Bija kandidāts, kurÅ” ievietoja visus sev zināmos semantiskos tagus ā€“ kur vajag un kur nevajag. Piemēram, saraksta vietā - un . Galu galā, semantika - tā ir jÅ«su lapas sastāva un katra bloka mērÄ·a izpratne (vairumam tas izdevās Å”eit), kā arÄ« priekÅ”- un/vai pēcapstrādātāju izmantoÅ”ana (dažiem tas izdevās Å”eit, lai gan Å”is bija arÄ« punktos - visbiežāk izmantoja mazāk un scss) .

Darba slÄ«dnis. Uzdevumā rakstÄ«jām, ka JS nevar izmantot. Å eit tika pārbaudÄ«ta spēja risināt problēmas - izmantojot Ä·ekaru, varēja izveidot slÄ«dni Un . Visa burvÄ«ba notiek selektora lÄ«menÄ« #button-N:checked ~ .slider-inner .slider-slides. Kad mēs noklikŔķinām uz vienas no ievades izvēles rÅ«tiņām, tas pāriet atzÄ«mētajā stāvoklÄ«. Mēs varam izmantot Å”o iespēju un pieŔķirt nepiecieÅ”amo tulkojumu konteineram ar slaidiem: transform: translate (-33%). JÅ«s varat redzēt slÄ«dņa ievieÅ”anu Å”eit.

Nolaižamie saraksti. Å eit arÄ« viss nonāca un lÄ«dzÄ«gs atlasÄ«tājs: .accordion-item input:checked ~ .accordion-item__content. JÅ«s varat redzēt ievieÅ”anu Å”eit.

:hover, :active un :focu* stāvokļu pieejamÄ«ba. Ä»oti svarÄ«gs punkts. No tā bija atkarÄ«gs komforts mijiedarbÄ«bas laikā ar saskarni. Lietotājam vienmēr jāsaņem atsauksmes par savām darbÄ«bām. Å is vienums tika pārbaudÄ«ts visā mijiedarbÄ«bas laikā ar anketu. Ja es nospiedu pogu ā€œZvanÄ«t manā€ un vizuāli nekas nenotika (kaut arÄ« pieprasÄ«jums tika nosÅ«tÄ«ts), tas ir slikti, jo tad es uz to spiedÄ«Å”u vēl un vēl. Rezultātā tiks nosÅ«tÄ«ti desmit pieprasÄ«jumi un man atzvanÄ«s desmit reizes. Mēs nedrÄ«kstam aizmirst, ka mobilajās ierÄ«cēs nav peles, kas nozÄ«mē, ka nedrÄ«kst bÅ«t kursors. Un vēl viens punkts, kas neietekmēja tos, kuri izpildÄ«ja punktu par semantiku. Ja jÅ«su vadÄ«kla nav interaktÄ«vs elements, virzot kursoru virs tā, kursors paliks standarta. Tas izskatās ļoti nesakopts, pat ja esat uzrakstÄ«jis reakciju uz kursoru. Nenovērtējiet par zemu kursoru: rādÄ«tājs.

Animācijas. Ir svarīgi, lai visas reakcijas, kas notiek ar elementiem, būtu vienmērīgas. Dzīvē nekas nenotiek acumirklīgi, tāpēc pietika ar pārejām, kas atrodas kursorā un ir aktīvas, lai padarītu saskarni patīkamāku. Tie, kas animēja slīdni un sarakstus, parasti ir lieliski.

Izmantojot jaunākās tehnoloÄ£ijas. Daudzi cilvēki izmantoja flex, bet neviens nepabeidza uzdevumu, izmantojot režģi. Punkts tika ieskaitÄ«ts, ja flex tika izmantots pareizi. Ja kaut kur izkārtojums izjuka tieÅ”i Å”o loku dēļ, diemžēl jÅ«s nesaņēmāt nekādus papildu punktus.

Veidlapas apstiprināŔana. Viss, kas bija nepiecieÅ”ams, bija pievienot nepiecieÅ”amo atribÅ«tu katrai veidlapas ievadei. Mēs pievienojām punktus tiem, kuri apstiprināja e-pasta lauku kā e-pastu.

Faila augÅ”upielādes pogas stils. Mēs gaidÄ«jām tādu kombināciju kā: un Izvēlieties failu . Tālāk mums vajadzēja paslēpt ievadi un veidot etiÄ·eti. Ir vēl viens izplatÄ«ts veids - izveidot caurspÄ«dÄ«gu ievadi un ievietot to pogas augÅ”pusē. Bet ne visas pārlÅ«kprogrammas ļauj veidot stilu , un Ŕādu risinājumu nevar saukt par pilnÄ«bā pārrobežu pārlÅ«kprogrammu. Un semantiski pareizāk ir uztaisÄ«t etiÄ·eti.

SaderÄ«ba starp pārlÅ«kprogrammām. PārbaudÄ«jām, vai viss ir kārtÄ«bā divās jaunākajās moderno pārlÅ«kprogrammu versijās (bez IE ā€“ dalÄ«bniekiem paveicās), kā arÄ« Safari uz iPhone un Chrome uz Android.

Gluži pretēji, mēs atskaitījām punktus, ja kāds izmantoja JS vai Bootstrap: tie abi pārvarētu visa uzdevuma mērķi. Turklāt dalībnieki ar Bootstrap ne tikai saņēma mīnusu, bet arī zaudēja daudz punktu par semantiku un realizētajiem elementiem.

Tie, kuri mitināja savu vietni kaut kur internetā, nesaņēma nekādas Ä«paÅ”as priekÅ”rocÄ«bas - taču recenzenti bija ļoti priecÄ«gi, kad viņiem nebija jālejupielādē repozitoriji un jāpalaiž tās lokāli savā datorā. Tātad tas kalpoja kā pluss karmai.

Pirmais uzdevums bija ļoti noderīgs galvenokārt skolēnam. Tiem, kurus mēs nepieņēmām, tagad ir sagatavots CV - varat to ar lepnumu pievienot visām atbildēm vai ievietot savās gh-lapās.

2. uzdevums: Transporta marŔruts

Uzdevuma autors ir meklÄ“Å”anas saskarņu grupas vadÄ«tājs Deniss Baliko.

Stāvoklis

Vai jums ir zvaigžņu karte? Tas parāda katras zvaigznes nosaukumu, kā arÄ« attālumu no tās lÄ«dz citām zvaigznēm gaismas sekundēs. Ieviesiet risinājuma funkciju, kurai ir jāizmanto trÄ«s argumenti: objekts, kurā atslēgas ir zvaigžņu nosaukumi, bet vērtÄ«bas ir attālumi lÄ«dz zvaigznēm (vienvirziena satiksme kosmosā), kā arÄ« objektu nosaukumi. trases sākuma un beigu punkti - attiecÄ«gi sākums un finiÅ”s. Funkcijai jāatgriež Ä«sākais attālums no starta zvaigznes lÄ«dz finiÅ”a zvaigznei un ceļŔ, kas jāievēro.

Funkcijas paraksts:

const solution = function(graph, start, finish)  {
    // Š’Š°ŃˆŠµ рŠµŃˆŠµŠ½ŠøŠµ
} 

Ievaddatu piemērs:

const graph = {
  start: { A: 50, B: 20 },
  A: { C: 40, D: 20 },
  B: { A: 90, D: 90 },
  C: { D: 160, finish: 50 },
  D: { finish: 20 },
  finish: {}
};
const start = 'start';
const finish = 'finish'; 

Izvades piemērs:

{
    distance: 90,
    path: ['start', 'A', 'D', 'finish']
} 

Piezīme. Risinājuma skelets atrodas mapē src/, ievietojiet risinājumu failā Solution.js.

Otrā uzdevuma pārbaude bija visautomatizētākā un objektÄ«vākā. Lielākā daļa puiÅ”u uzminēja, ka nepiecieÅ”ams ieviest Dijkstras algoritmu. Tie, kas atrada tā aprakstu un ieviesa algoritmu JS, ir labi pastrādājuÅ”i. Tomēr, pārbaudot uzdevumu, mēs saskārāmies ar daudziem papÄ«riem ar vienādām kļūdām. Mēs meklējām internetā koda fragmentus un atradām rakstu, no kura dalÄ«bnieki nokopēja algoritmu. SmieklÄ«gi, ka daudzi cilvēki nokopēja kodu no raksta kopā ar autora komentāriem. Šādi darbi saņēma zemu punktu skaitu. Mēs neaizliedzam izmantot nekādus avotus, bet mēs vēlamies, lai cilvēks iedziļinās tajā, ko viņŔ raksta.

kritēriji

Par ieskaitēm tika pieŔķirti galvenie punkti. Dažkārt bija skaidrs, ka puiÅ”i jaucās ar krātuvi, pārdēvēja mapes, un testi neizdosies vienkārÅ”i tāpēc, ka viņi nevarēja atrast nepiecieÅ”amos failus. Å ogad mēģinājām palÄ«dzēt tādiem puiÅ”iem un atgriezām viņiem visu savās vietās. Taču nākamgad plānojam pāriet uz konkursu sistēmu, un tas vairs netiks piedots.

Bija arÄ« ā€œcilvēciskieā€, manuālie kritēriji. Piemēram, viena koda stila klātbÅ«tne. Neviens neatņēma punktus par tabulÄ“Å”anas zÄ«mju izmantoÅ”anu atstarpes vietā vai otrādi. Cita lieta, ja jÅ«s aizstājat vienas pēdiņas ar dubultpēdiņām saskaņā ar vienu jums zināmu noteikumu un ievietojat semikolus nejauÅ”i.

Risinājuma skaidrÄ«ba un lasāmÄ«ba tika ņemta vērā atseviŔķi. Visās konferencēs pasaulē viņi saka, ka 80% programmētāja darba ir citu cilvēku koda lasÄ«Å”ana. Pat skolēni tiek pakļauti kodu pārskatÄ«Å”anai - gan no saviem kuratoriem, gan viens no otra. Tātad Å”im kritērijam bija ievērojama nozÄ«me. Ir bijuÅ”i darbi, kuros nebija mainÄ«go, kas garāki par vienu rakstzÄ«mi ā€“ lÅ«dzu, nedariet to. DalÄ«bnieku komentāri bija ļoti iepriecinoÅ”i ā€“ izņemot tos, kas bija identiski Stellas Čangas komentāriem.

Pēdējais kritērijs ir automātisko testu klātbūtne. Tikai daži cilvēki tos pievienoja, bet visiem tas kļuva par milzīgu plusu karmā.

Pareizs risinājums:

const solution = function(graph, START, FINISH)  {
    // Š’сё Š½Šµ Š±ŠµŃŠæŠ»Š°Ń‚Š½Š¾ Š² этŠ¾Š¼ Š¼ŠøрŠµ
    const costs = Object.assign({[FINISH]: Infinity}, graph[START]);

    // ŠŸŠµŃ€Š²Š°Ń Š²Š¾Š»Š½Š° рŠ¾Š“ŠøтŠµŠ»ŃŒŃŠŗŠøх Š½Š¾Š“
    const parents = { [FINISH]: null };
    Object.keys(graph[START]).reduce((acc, child) => (acc[child] = START) && acc, parents)

    const visited = [];
    let node;

    // Š˜Ń‰ŠµŠ¼ Ā«Š“ŠµŃˆŃ‘Š²Š¾Š³Š¾Ā» рŠ¾Š“ŠøтŠµŠ»Ń, Š¾Ń‚Š¼ŠµŃ‡Š°ŠµŠ¼ ŠæрŠ¾Š¹Š“ŠµŠ½Š½Ń‹Šµ
    do {
        node = lowestCostNode(costs, visited);
        let children = graph[node];
        for (let n in children) {
            let newCost = costs[node] + children[n];

            // Š•Ń‰Ń‘ Š½Šµ Š¾Ń†ŠµŠ½ŠµŠ½Š° ŠøŠ»Šø Š½Š°ŃˆŃ‘Š»ŃŃ Š±Š¾Š»ŠµŠµ Š“ŠµŃˆŃ‘Š²Ń‹Š¹ ŠæŠµŃ€ŠµŃ…Š¾Š“
            if (!costs[n] || costs[n] > newCost) {
                costs[n] = newCost;
                parents[n] = node;
            }
        }
        visited.push(node);
    } while (node)

    return {
        distance: costs[FINISH],
        path: optimalPath(parents)
    };

    // Š’Š¾Š·Š²Ń€Š°Ń‚ Š½Š°Š·Š°Š“ ŠæŠ¾ сŠ°Š¼Ń‹Š¼ Ā«Š“ŠµŃˆŃ‘Š²Ń‹Š¼Ā» рŠ¾Š“ŠøтŠµŠ»ŃŠ¼
    function optimalPath(parents) {
        let optimalPath = [FINISH];
        let parent = parents[FINISH];
        while (parent && parent !== START) {
            optimalPath.push(parent);
            parent = parents[parent];
        }
        optimalPath.push(START);
        return optimalPath.reverse();
    }

    // ŠœŠøŠ½ŠøŠ¼Š°Š»ŃŒŠ½Š°Ń стŠ¾ŠøŠ¼Š¾ŃŃ‚ŃŒ ŠøŠ· тŠµŠŗущŠµŠ¹ Š½Š¾Š“ы срŠµŠ“Šø Š½ŠµŠæрŠ¾ŃŠ¼Š¾Ń‚Ń€ŠµŠ½Š½Ń‹Ń…
    function lowestCostNode(costs, visited) {
        return Object.keys(costs).reduce((lowest, node) => {
            if (lowest === null || costs[node] < costs[lowest]) {
                if (!visited.includes(node)) {
                    lowest = node;
                }
            }

            return lowest;
        }, null);
    };
};

3. uzdevums: Pasākumu kalendārs

To sagatavoja interfeisa izstrādātāji Sergejs Kazakovs un Aleksandrs Podskrebkins.

Stāvoklis

Uzrakstiet mini kalendāru, lai parādÄ«tu savu grafiku. Varat izvēlēties jebkuru grafiku, kas jums patÄ«k. Piemēram, frontend konferenču grafiks 2019. gadā.

Kalendāram vajadzētu izskatÄ«ties kā sarakstam. Citu dizaina prasÄ«bu nav. Ä»aujiet iestatÄ«t notikumu atgādinājumus 3, 7 un 14 dienas iepriekÅ”. Pēc pirmās lejupielādes no interneta kalendāram vajadzētu atvērties un darboties bezsaistē.

Noderīgi resursi

Frontend konferences grafiks:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

Servisa darbinieki:
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Using_Service_Workers
developers.google.com/web/fundamentals/primers/service-workers

Paziņojumu API:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

TreÅ”ais uzdevums bija visinteresantāk pārbaudÄ«t, jo bija tik daudz iespējamo risinājumu, katram savs. PārbaudÄ«jām, kā kandidāts tiek galā ar nepazÄ«stamām tehnoloÄ£ijām ā€“ vai viņŔ prot pētÄ«t, vai pārbauda savus risinājumus.

kritēriji

SalocÄ«ts kalendārs. Jā, tas vēl bija jāizklāsta. Bija arÄ« tādi, kas nosacÄ«jumu uztvēra pārāk burtiski un neievietoja nevienu CSS koda rindiņu. Tas neizskatÄ«jās Ä«paÅ”i pievilcÄ«gi, bet, ja viss darbojās, punkti nesamazinājās.

Notikumu saraksta iegÅ«Å”ana no avota. Å is nav maketÄ“Å”anas uzdevums, tāpēc tajā iekļautais notikumu saraksts netika ieskaitÄ«ts. JÅ«s vienmēr varat atcelt konferenci, pārplānot to vai pievienot jaunu. Tāpēc bija nepiecieÅ”ams saņemt datus no ārpuses un renderēt izkārtojumu, pamatojoties uz saņemto JSON. Bija svarÄ«gi iegÅ«t datus jebkādā veidā (izmantojot ieneses metodi vai izmantojot XMLHttpRequest). Ja persona ienesei pievienoja polifilu un atzÄ«mēja savu izvēli readme, tas tika uzskatÄ«ts par plusu.

Servisa darbinieka reÄ£istrācija bez kļūdām un strādājiet bezsaistē pēc pirmās lejupielādes. Å eit ir piemērs pakalpojumu darbinieks ar grafiku keÅ”atmiņu pirmajā sāknÄ“Å”anas reizē. SÄ«kāku informāciju par pakalpojumu darbiniekiem, viņu iespējām un veidiem, kā strādāt ar viņiem (stratēģijas darbam ar keÅ”atmiņām, darbam bezsaistē) var atrast Å”eit.

Iespēja iestatÄ«t atgādinājumulai tas faktiski darbotos pēc 3, 7, 14 dienām. Bija nepiecieÅ”ams saprast paziņojumu API, saite uz kuru pareizi izpildÄ«ja uzdevumu. Mēs negaidÄ«jām nekādu Ä«paÅ”u ievieÅ”anu, lai pārbaudÄ«tu, vai ir pienācis laiks virzÄ«t. Tika pieņemta jebkura darba iespēja: glabāŔana vietējā krātuvē, IndexDB vai periodiska pakalpojuma darbinieka veiktā aptauja. Bija pat iespējams izveidot push serveri (Å”eit piemērs), taču tas nedarbosies bezsaistē. Tikpat svarÄ«gi bija saņemt grÅ«dienu pēc lapas aizvērÅ”anas un pēc kāda laika atvērt. Ja atgādinājums nomira vienlaikus ar lapas aizvērÅ”anu, risinājums netika ieskaitÄ«ts. Tas ir forÅ”i, kad puiÅ”i domāja par recenzentiem un ļāva saņemt impulsu jau tagad - lai negaidÄ«tu 3 dienas.

Iespēja novietot ikonu uz darbvirsmas (PWA). Mēs pārbaudÄ«jām faila esamÄ«bu manifests.json ar pareizajām ikonām. Daži puiÅ”i izveidoja Å”o failu (vai atstāja to Ä£enerētu programmā CreateReactApp), taču nepievienoja pareizās ikonas. Pēc tam, mēģinot instalēt, radās kļūda, piemēram, ā€œir nepiecieÅ”ama cita ikonaā€.

Koda stils un projekta struktÅ«ra. Tāpat kā otrajā uzdevumā, mēs apskatÄ«jām vienu koda stilu (pat ja tas nesakrita ar mÅ«sējo). Daži puiÅ”i uzskrÅ«vēja lÄ«kumus - tas ir lieliski.

Konsoles kļūdas. Ja tieÅ”i pultÄ« bija indikators, ka kaut kas nav kārtÄ«bā, un dalÄ«bnieks tam nepievērsa uzmanÄ«bu, tad atņēmām punktus.

Rezultāti

Kas ir smieklīgi dalībnieku lēmumos:

  • Vienā anketā bija Ŕāds teksts: ā€œDraugs programmētājs man palÄ«dzēja izveidot React lietojumprogrammu. Es viņu apbēru ar jautājumiem par to, kā un kāpēc, un viņŔ man to pateica. Man ļoti patika, es gribu par to uzzināt vairāk. Mēs no visas sirds sakņojāmies par Å”o pieteikumu, bet diemžēl kandidāta draugs nebija Ä«paÅ”i izpalÄ«dzÄ«gs, lai pieteikums izdotos.
  • Viens kandidāts nosÅ«tÄ«ja saiti uz GitHub, kur atradās RAR arhÄ«vs - to ir grÅ«ti komentēt. šŸ™‚
  • Cits kandidāts komentārā pie solve.js faila pirmās rindas godÄ«gi atzinās, ka nokopējis algoritmu.

Mēs saņēmām pieteikumus no 76 kandidātiem un atlasÄ«jām 23 cilvēkus. Mums atsÅ«tÄ«ja anketas ne tikai no Minskas, bet arÄ« no Maskavas, Pēterburgas un pat Tatarstānas. Daži puiÅ”i mÅ«s pārsteidza ar savām paÅ”reizējām profesijām: viens no viņiem ir tiesu medicÄ«nas eksperts, bet otrs ir medicÄ«nas students.

Rezultāts bija interesants panākumu rādÄ«tāju sadalÄ«jums uzdevumu izpildē. Pirmo uzdevumu dalÄ«bnieki izpildÄ«ja vidēji par 60%, otro par 50%, bet treÅ”ais izrādÄ«jās visgrÅ«tākais un tika izpildÄ«ts vidēji par 40%.

No pirmā acu uzmetiena uzdevumi Ŕķiet sarežģīti un laikietilpÄ«gi. Iemesls nav tas, ka mēs vēlamies atsijāt pēc iespējas vairāk kandidātu. Studiju laikā studenti saskaras ar reāliem uzdevumiem - čata veidoÅ”ana, Yandex.Music bērniem vai Yandex.Weather no laikapstākļiem atkarÄ«giem cilvēkiem. Å im nolÅ«kam ir nepiecieÅ”ama sākuma bāze.

Es atceros, ka pirms diviem gadiem redzēju savu SRI ieejas uzdevumu un domāju, ka es to nekad neatrisināŔu. Galvenais Å”ajā brÄ«dÄ« ir apsēsties, rÅ«pÄ«gi izlasÄ«t nosacÄ«jumus un sākt to darÄ«t. Izrādās, ka nosacÄ«jumi satur gandrÄ«z 80% Ŕķīduma. Piemēram, treŔā uzdevuma stāvoklÄ« (visgrÅ«tākais) mēs pievienojām saites uz pakalpojumu darbiniekiem un paziņojumu API MDN. Studenti, kuri pētÄ«ja saiÅ”u saturu, to pabeidza bez grÅ«tÄ«bām.

Ä»oti gribētos, lai Å”o rakstu izlasÄ«tu kandidāti, kuri plāno nākotnē iestāties SRI, kuri nevarēja iestāties Minskas skolā vai sāk pildÄ«t kādu citu testa uzdevumu. Kā redzat, to ir pilnÄ«gi iespējams izdarÄ«t. Jums vienkārÅ”i jātic sev un jāuzklausa visi autoru padomi.

Avots: www.habr.com

Pievieno komentāru