Shule ya ukuzaji wa maingiliano: uchambuzi wa kazi za Minsk na seti mpya huko Moscow

Leo uandikishaji mpya umefunguliwa Shule ya Maendeleo ya Kiolesura cha Yandex huko Moscow. Hatua ya kwanza ya mafunzo itafanyika kuanzia Septemba 7 hadi Oktoba 25. Wanafunzi kutoka miji mingine wataweza kushiriki ndani yake kwa mbali au kibinafsi - kampuni italipa kwa usafiri na malazi katika hosteli. Ya pili, pia hatua ya mwisho, itaendelea hadi Desemba 3, inaweza kukamilika kibinafsi.

Jina langu ni Yulia Seredich, tuliandika chapisho hili pamoja na Sergei Kazakov. Sisi ni watengenezaji wa interface katika ofisi ya Minsk ya Yandex na wahitimu wa SRI kutoka miaka iliyopita.

Shule ya ukuzaji wa maingiliano: uchambuzi wa kazi za Minsk na seti mpya huko Moscow

Katika tukio la ufunguzi wa usajili huko Moscow, tunachapisha uchambuzi wa kazi za utangulizi kwa Shule ya awali - hapa Minsk.

Ukifuatilia historia ya kazi za SRI, mwaka hadi mwaka tulijaribu ujuzi tatu muhimu kwa mpanga programu:

  • Mpangilio. Kila msanidi anapaswa kuwa na uwezo wa kufanya mpangilio. Haifanyiki kuwa una Mjomba Seryozha ambaye anaunda timu nzima, na unaandika maandishi tu. Kwa hivyo, kila mwanafunzi lazima aonyeshe jinsi anavyojua jinsi ya kupanga.
  • JavaScript. Ikiwa suala lilikuwa na mpangilio mdogo, basi hatungekuwa na Shule ya Ukuzaji wa Kiolesura, bali Shule ya Wabunifu wa Miundo. Kiolesura kilichoundwa kwa uzuri kinahitaji kufufuliwa. Kwa hiyo, daima kuna kazi kwa JS, lakini wakati mwingine pia ni kazi ya algorithms - tunawapenda sana.
  • Utatuzi wa shida labda ndio ustadi muhimu zaidi wa msanidi programu. Linapokuja suala la kuunda miingiliano, mambo yanabadilika haraka sana. Ni kama Lewis Carroll: "Lazima ukimbie haraka uwezavyo ili tu kukaa mahali pamoja, na ili kufika mahali pengine lazima ukimbie haraka mara mbili." Kila siku tunakutana na teknolojia mpya - tunahitaji kuzizingatia na kuweza kuzielewa. Kwa hivyo, katika kazi ya tatu, tulipendekeza kuelewa teknolojia ambazo msanidi wa novice kawaida hajui.

Katika uchambuzi wa kila kazi, hatutakuambia tu kuhusu utaratibu sahihi, lakini pia kuhusu makosa ya kawaida.

Kazi ya 1: Kwingineko

Kazi ya kwanza ilifanyika na mtengenezaji wa Yandex.Collections Alexey Cherenkevich, ambaye anajua jinsi ya kufanya mpangilio, na mwenzake wa huduma, msanidi wa interface Sergey Samsonov.

Hali

Unda tovuti ya kwingineko: tuambie kuhusu wewe mwenyewe, kazi yako na matarajio yako kutoka kwa Shule. Tovuti inapaswa kuendana kadiri inavyowezekana na mpangilio uliopendekezwa (viungo vya mpangilio: 1000px, 600px, 320px, vipimo) Tunavutiwa na mpangilio tu, kwa hivyo tafadhali usitumie JavaScript.

Wakati wa kuangalia, tutazingatia:

  • saizi za kuingiza, usahihi wa rangi, mtindo wa fonti, saizi ya fonti;
  • mpangilio wa semantic;
  • uwepo wa hali tofauti za vipengele: kuonyesha vifungo na viungo wakati wa kuzunguka mshale, kuonyesha mashamba ya pembejeo ya kazi, nk;
  • utangamano wa kivinjari (kilichojaribiwa katika matoleo ya hivi karibuni ya vivinjari maarufu).

Faida itakuwa:

  • matumizi ya ufumbuzi wa kisasa wa CSS: flexbox, gridi ya taifa, nk;
  • Mpangilio wa Adaptive;
  • matumizi ya kabla na (au) wasindikaji wa baada, kusanyiko, minification, uboreshaji wa msimbo wa pato;
  • Uthibitishaji wa fomu ya HTML, kitufe cha kupakia faili kilichowekwa mtindo.

Kazi ni kubwa sana, kwa hivyo unaweza kuruka kile ambacho hakitafanya kazi. Hii itapunguza alama yako kidogo, lakini bado utaweza kuonyesha ujuzi wako. Ukimaliza, tutumie viungo viwili - kwa kwingineko yako na msimbo wa chanzo kwenye GitHub.

Mipangilio iliyopendekezwa katika mgawo haikuwa tu na skrini za vifaa vya rununu, kompyuta kibao na kompyuta za mezani, lakini pia na vipimo halisi.

Ili kuleta usawa mwingi iwezekanavyo katika matokeo ya kuangalia kazi ya kwanza, kulikuwa na vigezo vingi vya hundi hii.

Viwango

Tovuti iliyoundwa. Hii inaonekana wazi, lakini wavulana wengine waliruka vizuizi kadhaa - ama walitaka kuokoa wakati, au hawakuweza kufanya hivyo. Mpangilio unaweza kugawanywa takriban katika skrini nne kuu: skrini kuu iliyo na avatar, kizuizi kilicho na orodha ya matarajio kutoka kwa SRI, kizuizi kilicho na kwingineko na kizuizi kilicho na habari ya mawasiliano. Wanaweza kufanywa kwa sehemu au kutumia tu divs, jambo kuu ni kwamba vitalu vyote vinne vilipatikana.

Kuzingatia mpangilio na mpangilio. Mbuni aliweka vipimo tofauti (ikiwa ni pamoja na rangi, uchapaji, hali ya vitufe, n.k.) ili kurahisisha wagombea. Chini kulikuwa na kidokezo juu ya indents na vipengele vya skrini ya kwanza. Nilifurahishwa sana na wavulana ambao walizingatia matakwa yote ya mbuni: kwa mfano, skrini ya kwanza inapaswa kuwa sio chini ya urefu wa kituo cha kutazama.

Mpangilio unaobadilika - huu ndio wakati kiolesura hakijawekwa tu ili kwa maazimio matatu kila kitu kiwe saizi hadi saizi katika mpangilio. Katika majimbo ya kati, mpangilio haupaswi kutengana pia. Wengine walisahau kupunguza upana wa juu wa kontena na kuweka kila kitu hadi saizi 1920, wengine waliharibu asili, lakini kwa jumla watahiniwa walishughulikia kazi hii vizuri.

Mpangilio wa kisemantiki. "Wameuambia ulimwengu mara ngapi" kwamba kiungo kinafaa kuundwa kama , kitufe - kama . Kwa bahati nzuri, wagombea wengi walitimiza hitaji hili pia. Sio kila mtu aliyetambua orodha iliyofichwa katika matarajio ya SRI, na kuifanya kutumia vitambulisho vya div, lakini sio mbaya sana. Kulikuwa na mtahiniwa ambaye aliingiza vitambulisho vyote vya kisemantiki alivyojua - pale ilipohitajika na pale ambapo haikuwa lazima. Kwa mfano, badala ya orodha - na . Baada ya yote, semantiki - ni juu ya kuelewa muundo wa ukurasa wako na madhumuni ya kila kizuizi (wengi walisimamia hapa), na vile vile utumiaji wa wasindikaji wa awali na / au wa baada (wachache waliisimamia hapa, ingawa hii pia alikuwa kwenye alama - mara nyingi walitumia kidogo na scss) .

Kitelezi kinachofanya kazi. Katika mgawo tuliandika kuwa JS haiwezi kutumika. Hapa uwezo wa kutatua matatizo ulijaribiwa - slider inaweza kufanywa kwa kutumia rundo na . Uchawi wote hutokea katika kiwango cha kiteuzi #button-N:checked ~ .slider-inner .slider-slides. Tunapobofya kwenye mojawapo ya visanduku vya kuteua vya ingizo, huenda katika hali iliyochaguliwa. Tunaweza kunufaika na hili na kukabidhi tafsiri tunayohitaji kwenye chombo chenye slaidi: badilisha: translate(-33%). Unaweza kuona utekelezaji wa kitelezi hapa.

Orodha kunjuzi. Hapa yote pia yalikuja na kiteuzi sawa: .accordion-item input:checked ~ .accordion-item__content. Unaweza kuona utekelezaji hapa.

Upatikanaji wa hali za :hover, :active na :focu*. Jambo muhimu sana. Faraja wakati wa mwingiliano na kiolesura ilitegemea. Mtumiaji anapaswa kupokea maoni kila wakati juu ya vitendo vyao. Kipengee hiki kiliangaliwa wakati wote wa mwingiliano na dodoso. Ikiwa nilibofya kitufe cha "Nipigie" na kuibua hakuna kilichotokea (ingawa ombi lilitumwa), hii ni mbaya, kwa sababu basi nitaibofya tena na tena. Matokeo yake, maombi kumi yatatumwa na nitaitwa tena mara kumi. Hatupaswi kusahau kuwa vifaa vya rununu havina panya, ambayo inamaanisha kuwa haipaswi kuwa na hover. Na jambo moja zaidi ambalo halikuathiri wale waliotimiza hoja kuhusu semantiki. Ikiwa udhibiti wako sio kipengele cha kuingiliana, basi unapoelea juu yake, mshale utabaki kiwango. Inaonekana sio safi sana, hata ikiwa umeandika maoni ya kuelea. Usidharau mshale: pointer.

Uhuishaji. Ni muhimu kwamba athari zote zinazotokea na vipengele ni laini. Hakuna chochote maishani ambacho ni cha papo hapo, kwa hivyo kuwa na mabadiliko ya kuelea na kufanya kazi kulitosha kufanya kiolesura kuwa cha kupendeza zaidi. Kweli, wale ambao walihuisha kitelezi na orodha kwa ujumla ni wazuri.

Kwa kutumia teknolojia ya kisasa. Watu wengi walitumia flex, lakini hakuna aliyemaliza kazi kwa kutumia gridi ya taifa. Hatua ilihesabiwa ikiwa flex ilitumiwa kwa usahihi. Ikiwa mahali fulani mpangilio ulitengana kwa sababu ya flexes hizi sana, ole, haukupokea pointi yoyote ya ziada.

Uthibitishaji wa Fomu. Kilichohitajika ni kuongeza sifa inayohitajika kwa kila pembejeo la fomu. Tuliongeza pointi kwa wale walioidhinisha uga wa barua pepe kama barua pepe.

Kutengeneza kitufe cha kupakia faili. Tulitarajia kuona mchanganyiko kama: na Chagua faili . Kisha tulihitaji kuficha ingizo na mtindo wa lebo. Kuna njia nyingine ya kawaida - kufanya pembejeo ya uwazi na kuiweka juu ya kifungo. Lakini sio vivinjari vyote vinavyoruhusu kupiga maridadi , na suluhisho kama hilo haliwezi kuitwa kivinjari kamili. Na ni sahihi zaidi kimantiki kutengeneza lebo.

Utangamano wa kivinjari. Tuliangalia kuwa kila kitu kilikuwa sawa katika matoleo mawili ya hivi karibuni ya vivinjari vya kisasa (bila IE - washiriki walikuwa na bahati), na pia katika Safari kwenye iPhones na Chrome kwenye Androids.

Badala yake, tuliondoa pointi ikiwa mtu angetumia JS au Bootstrap: zote mbili zingeshinda madhumuni ya kazi nzima. Kwa kuongezea, washiriki walio na Bootstrap hawakupokea minus tu, lakini pia walipoteza alama nyingi za semantiki na vitu vilivyotekelezwa.

Wale waliopangisha tovuti zao mahali fulani kwenye Mtandao hawakupokea faida yoyote - lakini wakaguzi walifurahi sana wakati hawakulazimika kupakua hazina na kuziendesha kwenye kompyuta zao. Kwa hivyo hii ilitumika kama nyongeza ya karma.

Kazi ya kwanza ilikuwa muhimu sana kwa mwanafunzi. Wale ambao hatukukubali sasa wana wasifu uliotayarishwa - unaweza kuuambatanisha na majibu yote kwa fahari au uchapishe kwenye kurasa zako za gh.

Kazi ya 2: Njia ya usafiri

Mwandishi wa kazi hiyo ni mkuu wa kikundi cha miingiliano ya utaftaji Denis Balyko.

Hali

Je! unayo ramani ya nyota? Inaonyesha jina la kila nyota, pamoja na umbali kutoka kwayo hadi kwa nyota zingine katika sekunde nyepesi. Tekeleza kazi ya suluhisho, ambayo inapaswa kuchukua hoja tatu: kitu ambacho funguo ni majina ya nyota, na maadili ni umbali wa nyota (trafiki ya njia moja katika nafasi), pamoja na majina ya nyota. pointi za kuanzia na za mwisho za njia - kuanza na kumaliza, kwa mtiririko huo. Chaguo la kukokotoa linapaswa kurudisha umbali mfupi zaidi kutoka kwa nyota ya mwanzo hadi nyota ya kumalizia na njia ya kufuata.

Sahihi ya kazi:

const solution = function(graph, start, finish)  {
    // Π’Π°ΡˆΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
} 

Mfano wa data ya kuingiza:

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'; 

Pato la mfano:

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

Kumbuka: Mifupa ya suluhisho iko kwenye src/ folda, weka suluhisho lako katika solution.js.

Uthibitishaji wa kazi ya pili ilikuwa ya kiotomatiki zaidi na yenye lengo. Wengi wa wavulana walidhani kwamba ilikuwa muhimu kutekeleza algorithm ya Dijkstra. Wale ambao walipata maelezo yake na kutekeleza algorithm katika JS wamefanywa vizuri. Walakini, wakati wa kukagua mgawo huo, tulikutana na karatasi nyingi zenye makosa sawa. Tulitafuta mtandao kwa vipande vya msimbo na tukapata makala ambayo washiriki walinakili kanuni. Inafurahisha kwamba watu wengi walinakili nambari kutoka kwa nakala pamoja na maoni ya mwandishi. Kazi kama hizo zilipata alama ya chini. Hatukatazi matumizi ya vyanzo vyovyote, bali tunataka mtu achunguze anachokiandika.

Viwango

Alama kuu zilitolewa kwa majaribio. Wakati mwingine ilikuwa wazi kuwa watu hao walikuwa wakisumbua na hazina, wakibadilisha jina la folda, na vipimo vingeshindwa kwa sababu hawakuweza kupata faili zinazohitajika. Mwaka huu tulijaribu kusaidia watu kama hao na tukarudisha kila kitu mahali pake kwao. Lakini mwaka ujao tunapanga kubadili mfumo wa mashindano, na hii haitasamehewa tena.

Pia kulikuwa na "binadamu", vigezo vya mwongozo. Kwa mfano, kuwepo kwa mtindo mmoja wa kanuni. Hakuna mtu aliyekata pointi kwa kutumia vichupo badala ya nafasi au kinyume chake. Ni jambo lingine ikiwa utabadilisha nukuu moja na nukuu mbili kulingana na sheria moja unayojua, na kuweka nusukoloni bila mpangilio.

Uwazi na usomaji wa suluhisho zilizingatiwa tofauti. Katika mikutano yote ya ulimwengu wanasema kuwa 80% ya kazi ya mtayarishaji inajumuisha kusoma msimbo wa watu wengine. Hata watoto wa shule hupitia hakiki za msimbo - kutoka kwa wasimamizi wao na kutoka kwa kila mmoja. Kwa hivyo kigezo hiki kilibeba uzito mkubwa. Kumekuwa na kazi ambazo hakukuwa na vigeuzo kwa muda mrefu zaidi ya herufi moja - tafadhali usifanye hivyo. Maoni kutoka kwa washiriki yalikuwa ya kutia moyo sana - isipokuwa yale ambayo yalifanana na maoni ya Stella Chang.

Kigezo cha mwisho ni uwepo wa majaribio ya kiotomatiki. Ni watu wachache tu waliowaongeza, lakini kwa kila mtu ikawa faida kubwa katika karma yao.

Suluhisho sahihi:

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);
    };
};

Kazi ya 3: Kalenda ya Matukio

Iliandaliwa na watengenezaji wa interface Sergey Kazakov na Alexander Podskrebkin.

Hali

Andika kalenda ndogo ili kuonyesha ratiba yako. Unaweza kuchukua ratiba yoyote unayopenda. Kwa mfano, ratiba ya mikutano ya mbele mwaka wa 2019.

Kalenda inapaswa kuonekana kama orodha. Hakuna mahitaji mengine ya kubuni. Fanya iwezekane kuweka vikumbusho vya tukio siku 3, 7 na 14 mapema. Baada ya upakuaji wa kwanza kutoka kwa Mtandao, kalenda inapaswa kufunguka na kufanya kazi nje ya mtandao.

Rasilimali muhimu

Ratiba ya mkutano wa mbele:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

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

API ya Arifa:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

Kazi ya tatu ilikuwa ya kuvutia zaidi kupima, kwa sababu kulikuwa na ufumbuzi mwingi iwezekanavyo, kila mmoja na wao wenyewe. Tulikagua jinsi mtahiniwa anavyoshughulikia teknolojia zisizojulikana - ikiwa anajua jinsi ya kutafiti, ikiwa anajaribu suluhu zake.

Viwango

Kalenda iliyokunjwa. Ndio, bado ilihitaji kuwekwa. Pia kulikuwa na wale ambao walichukua hali hiyo kihalisi na hawakuingiza mstari mmoja wa msimbo wa CSS. Haikuonekana kuvutia sana, lakini ikiwa kila kitu kilifanya kazi, pointi hazipungua.

Kupata orodha ya matukio kutoka kwa chanzo. Huu sio kazi ya mpangilio, kwa hivyo orodha ya matukio yaliyojumuishwa ndani yake haikuhesabiwa. Unaweza kughairi mkutano kila wakati, kuupanga upya au kuongeza mpya. Kwa hivyo ilikuwa ni lazima kupokea data kutoka nje na kutoa mpangilio kulingana na JSON iliyopokelewa. Ilikuwa muhimu kupata data kwa njia yoyote (kwa kutumia njia ya kuleta au kutumia XMLHttpRequest). Iwapo mtu aliongeza kujaza kwa wingi kwa ajili ya kuletwa na kuweka alama ya chaguo lake kwenye usomaji, hii ilihesabiwa kama nyongeza.

Usajili wa wafanyikazi wa huduma bila makosa na ufanye kazi nje ya mtandao baada ya upakuaji wa kwanza. Hapa kuna mfano mfanyikazi wa huduma na uhifadhi wa ratiba kwenye buti ya kwanza. Maelezo kuhusu wafanyikazi wa huduma, uwezo wao na njia za kufanya kazi nao (mikakati ya kufanya kazi na kache, kufanya kazi nje ya mkondo) inaweza kupatikana hapa.

Uwezo wa kuweka ukumbushoili ifanye kazi baada ya siku 3, 7, 14. Ilihitajika kuelewa API ya Arifa, kiungo ambacho alikuwa sahihi juu ya kazi. Hatukutarajia utekelezaji wowote mahususi kuangalia ikiwa ni wakati wa kusukuma. Chaguo lolote la kufanya kazi lilikubaliwa: kuhifadhi katika Hifadhi ya ndani, IndexDB au upigaji kura wa mara kwa mara wa mfanyakazi wa huduma. Iliwezekana kutengeneza seva ya kushinikiza (hapa mfano), lakini haingefanya kazi nje ya mtandao. Ilikuwa muhimu vile vile kupokea msukumo baada ya ukurasa kufungwa - na kufunguliwa baada ya muda fulani. Ikiwa ukumbusho ulikufa wakati huo huo ukurasa ulifungwa, suluhisho halikuhesabiwa. Inapendeza wakati wavulana walifikiria juu ya wakaguzi na kuifanya iwezekane kupata msukumo sasa hivi - ili usisubiri siku 3.

Uwezo wa kuweka icon kwenye desktop (PWA). Tuliangalia uwepo wa faili wazi.json na icons sahihi. Vijana wengine walitengeneza faili hii (au waliiacha ikitolewa katika CreateReactApp) - lakini hawakuongeza ikoni sahihi. Kisha, wakati wa kujaribu kusakinisha, hitilafu kama "ikoni tofauti inahitajika" ilitokea.

Codestyle na muundo wa mradi. Kama ilivyo katika kazi ya pili, tuliangalia mtindo mmoja wa kificho (hata ikiwa haukuendana na yetu). Baadhi ya wavulana Star juu ya linters - hiyo ni nzuri.

Makosa ya Console. Ikiwa kulikuwa na kiashiria sawa katika console kwamba kuna kitu kibaya, na mshiriki hakuzingatia, basi tuliondoa pointi.

Matokeo ya

Ni nini cha kuchekesha kuhusu maamuzi ya washiriki:

  • Hojaji moja ilikuwa na maandishi yafuatayo: β€œRafiki wa programu alinisaidia kuweka pamoja programu ya React. Nilimtupia maswali mengi kuhusu jinsi gani na kwa nini, akaniambia. Niliipenda sana, nataka kujua zaidi kuihusu.” Tulikuwa tukitafuta maombi haya kwa mioyo yetu yote, lakini kwa bahati mbaya, rafiki wa mgombea hakuwa na manufaa sana katika kufanya ombi lifanye kazi.
  • Mgombea mmoja alituma kiungo kwa GitHub, ambapo kumbukumbu ya RAR ilikuwa - ni vigumu kutoa maoni kuhusu hili. πŸ™‚
  • Mgombea mwingine, katika maoni kwenye mstari wa kwanza wa faili ya solution.js, alikiri kwa uaminifu kwamba alinakili kanuni.

Tulipokea maombi kutoka kwa watahiniwa 76 na tukachagua watu 23. Tulitumwa dodoso sio tu kutoka Minsk, bali pia kutoka Moscow, St. Petersburg na hata Tatarstan. Baadhi ya wavulana walitushangaza na fani zao za sasa: mmoja wao ni mtaalam wa uchunguzi, na mwingine ni mwanafunzi wa matibabu.

Matokeo yake yalikuwa usambazaji wa kuvutia wa viwango vya mafanikio katika kukamilisha kazi. Washiriki walikamilisha kazi ya kwanza kwa wastani wa 60%, ya pili na 50%, na ya tatu iligeuka kuwa ngumu zaidi na ilikamilishwa kwa wastani wa 40%.

Kwa mtazamo wa kwanza, kazi inaonekana ngumu na ya muda. Sababu sio kwamba tunataka kuwaondoa wagombea wengi iwezekanavyo. Wakati wa masomo yao, wanafunzi wanakabiliwa na kazi za maisha halisi - kufanya gumzo, Yandex.Music kwa watoto au Yandex.Hali ya hewa kwa watu wanaotegemea hali ya hewa. Kwa hili unahitaji msingi wa kuanzia.

Nakumbuka niliona kazi yangu ya kuingia kwenye SRI miaka miwili iliyopita na nikifikiri kwamba singeisuluhisha kamwe. Jambo kuu kwa wakati huu ni kukaa chini, kusoma kwa uangalifu masharti na kuanza kuifanya. Inatokea kwamba masharti yana karibu 80% ya suluhisho. Kwa mfano, katika hali ya kazi ya tatu (ngumu zaidi), tuliongeza viungo kwa wafanyikazi wa huduma na API ya Arifa kwenye MDN. Wanafunzi waliosoma yaliyomo kwenye viungo walikamilisha bila shida.

Ningependa sana makala hii isomwe na watahiniwa ambao wanapanga kuingia SRI katika siku zijazo, ambao hawakuweza kuingia Shule ya Minsk, au wanaoanza kufanya kazi nyingine yoyote ya mtihani. Kama unaweza kuona, inawezekana kabisa kufanya hivyo. Unahitaji tu kujiamini na kusikiliza vidokezo vyote kutoka kwa waandishi.

Chanzo: mapenzi.com

Kuongeza maoni