Interfeysni rivojlantirish maktabi: Minsk uchun vazifalarni tahlil qilish va Moskvadagi yangi to'plam

Bugun yangi ro'yxatga olish ochildi Yandex interfeysini rivojlantirish maktabi Moskvada. Mashg‘ulotlarning birinchi bosqichi 7 sentyabrdan 25 oktyabrgacha bo‘lib o‘tadi. Unda boshqa shaharlardan kelgan talabalar masofadan turib yoki shaxsan ishtirok etishlari mumkin bo‘ladi – kompaniya yo‘l haqi va yotoqxonada yashash uchun to‘laydi. Ikkinchi, shuningdek, yakuniy bosqich 3 dekabrga qadar davom etadi, uni faqat shaxsan bajarish mumkin.

Mening ismim Yuliya Seredich, biz bu postni Sergey Kazakov bilan birga yozganmiz. Biz Yandexning Minsk ofisida interfeys ishlab chiquvchimiz va oldingi yillardagi SRI bitiruvchilarimiz.

Interfeysni rivojlantirish maktabi: Minsk uchun vazifalarni tahlil qilish va Moskvadagi yangi to'plam

Moskvada ro'yxatga olishning ochilishi munosabati bilan biz oldingi maktabga - bu erda Minskda kirish vazifalari tahlilini nashr etmoqdamiz.

Agar siz SRI topshiriqlari tarixini kuzatsangiz, yildan-yilga biz dasturchi uchun uchta muhim ko'nikmalarni sinab ko'rdik:

  • Tartib. Har bir ishlab chiquvchi tartibni amalga oshirishi kerak. Sizda butun jamoa uchun dizayn yaratadigan Seryoja amaki bo'lishi mumkin emas va siz faqat ssenariylarni yozasiz. Shuning uchun, har bir talaba qanday yozishni bilishini ko'rsatishi kerak.
  • JavaScript. Agar masala tartib bilan chegaralangan bo'lsa, unda bizda Interfeyslarni ishlab chiqish maktabi emas, balki Dizaynerlar maktabi bo'lar edi. Chiroyli dizaynlashtirilgan interfeysni qayta tiklash kerak. Shuning uchun JS uchun har doim vazifa bor, lekin ba'zida bu algoritmlar uchun ham vazifadir - biz ularni juda yaxshi ko'ramiz.
  • Muammoni hal qilish, ehtimol, ishlab chiquvchining eng muhim qobiliyatidir. Interfeyslarni yaratish haqida gap ketganda, narsalar juda tez o'zgaradi. Bu xuddi Lyuis Kerrollga o'xshaydi: "Siz bir joyda qolish uchun imkon qadar tezroq yugurishingiz kerak, boshqa joyga borish uchun esa ikki barobar tezroq yugurishingiz kerak". Har kuni biz yangi texnologiyalarga duch kelamiz - biz ularni hisobga olishimiz va ularni tushuna olishimiz kerak. Shuning uchun, uchinchi vazifada biz tajribasiz ishlab chiquvchi odatda tanish bo'lmagan texnologiyalarni tushunishni taklif qildik.

Har bir vazifani tahlil qilishda biz sizga nafaqat to'g'ri tartib haqida, balki keng tarqalgan xatolar haqida ham aytib beramiz.

1-topshiriq: Portfolio

Birinchi vazifani Yandex.Collections dizayneri, maketni qanday qilishni biladigan Aleksey Cherenkevich va uning xizmatdagi hamkasbi, interfeysni ishlab chiquvchi Sergey Samsonov bajardi.

Vaziyat

Portfolio veb-saytini yarating: bizga o'zingiz, ishingiz va maktabdan umidlaringiz haqida gapirib bering. Sayt taklif qilingan sxemaga iloji boricha mos kelishi kerak (tartibga havolalar: 1000px, 600px, 320px, spetsifikatsiya). Bizni faqat tartib qiziqtiradi, shuning uchun JavaScript-dan foydalanmang.

Tekshirishda biz quyidagilarni hisobga olamiz:

  • chekinish o'lchamlari, rangning to'g'riligi, shrift uslubi, shrift o'lchami;
  • semantik tartib;
  • elementlarning turli holatlarining mavjudligi: kursorni ko'tarishda tugmalar va havolalarni ko'rsatish, faol kiritish maydonlarini ajratib ko'rsatish va h.k.;
  • o'zaro brauzer muvofiqligi (mashhur brauzerlarning so'nggi versiyalarida sinovdan o'tgan).

Afzallik quyidagilar bo'ladi:

  • zamonaviy CSS yechimlaridan foydalanish: flexbox, grid va boshqalar;
  • Moslashuvchan tartib;
  • oldingi va (yoki) keyingi protsessorlardan foydalanish, chiqish kodini yig'ish, minimallashtirish, optimallashtirish;
  • HTML shaklini tekshirish, stilize qilingan faylni yuklash tugmasi.

Vazifa juda katta, shuning uchun siz ishlamaydigan narsalarni o'tkazib yuborishingiz mumkin. Bu sizning ballingizni biroz pasaytiradi, lekin siz hali ham o'z bilimingizni namoyish qila olasiz. Ishingiz tugagach, bizga ikkita havolani yuboring - portfelingizga va GitHub-dagi manba kodiga.

Topshiriqda taklif qilingan sxemalar nafaqat mobil qurilmalar, planshetlar va ish stollari uchun ekranlar, balki haqiqiy texnik xususiyatlarga ham ega edi.

Birinchi topshiriqni tekshirish natijasiga imkon qadar ob'ektivlik kiritish uchun ushbu tekshirish uchun juda ko'p mezonlar mavjud edi.

mezonlari

Dizayn veb-sayt. Bu ochiq-oydin ko'rinadi, lekin ba'zi bolalar ba'zi bloklarni butunlay o'tkazib yuborishdi - ular vaqtni tejashni xohlashdi yoki ular buni qila olmadilar. Tartibni taxminan to'rtta asosiy ekranga bo'lish mumkin: avatarli asosiy ekran, SRI dan kutishlar ro'yxatiga ega blok, portfelli blok va kontakt ma'lumotlariga ega blok. Ular bo'limlarga bo'linishi yoki oddiygina divs yordamida tayyorlanishi mumkin, asosiysi to'rtta blokning hammasi mavjud edi.

Joylashtirishning sxemaga muvofiqligi. Dizayner nomzodlar uchun qulaylik yaratish uchun alohida spetsifikatsiya (jumladan, ranglar, tipografiya, tugma holatlari va boshqalar) yaratdi. Pastki qismida birinchi ekranning chegaralari va xususiyatlari haqida maslahat bor edi. Men dizaynerning barcha istaklarini inobatga olgan yigitlardan juda mamnun bo'ldim: masalan, birinchi ekran ko'rish maydonining balandligidan kam bo'lmasligi kerak edi.

Moslashuvchan tartib - bu interfeys shunchaki joylashtirilgan emas, shunda uchta ruxsatda hamma narsa pikseldan pikselgacha bo'ladi. Oraliq shtatlarda tartib ham buzilmasligi kerak. Ba'zilar konteynerning maksimal kengligini cheklashni unutib, hamma narsani 1920 pikselga qo'yishdi, ba'zilari fonni buzdi, lekin umuman olganda, nomzodlar bu vazifani yaxshi bajardilar.

Semantik tartib. "Ular dunyoga necha marta aytdilar" havolani , tugmani - sifatida ishlab chiqish kerak. Yaxshiyamki, ko'pchilik nomzodlar bu talabni ham bajarishdi. SRI ning taxminlaridagi yashirin ro'yxatni hamma ham tanimadi, uni div teglari yordamida amalga oshirdi, ammo bu unchalik yomon emas. Bir nomzod bor edi, u o'zi bilgan barcha semantik teglarni kiritdi - bu kerak bo'lgan joyda va kerak emas. Masalan, ro'yxat o'rniga - va . Axir, semantika - bu sizning sahifangiz tarkibini va har bir blokning maqsadini tushunish (ko'pchilik uni bu erda boshqargan), shuningdek, oldingi va / yoki keyingi protsessorlardan foydalanish (bu erda bir nechtasi buni boshqargan bo'lsa-da) haqida. nuqtalarda ham bo'lgan - ko'pincha ular kamroq va scss ishlatgan) .

Ishlaydigan slayder. Topshiriqda biz JS dan foydalanish mumkin emasligini yozgan edik. Bu erda muammolarni hal qilish qobiliyati sinovdan o'tkazildi - slayderni va kombinatsiyasi yordamida yaratish mumkin edi. Barcha sehr selektor darajasida sodir bo'ladi #button-N:checked ~ .slider-inner .slider-slides. Kirish katakchalaridan birini bosganimizda, u belgilangan holatga o'tadi. Biz bundan foydalanib, slaydlar bilan konteynerga kerakli tarjimani belgilashimiz mumkin: transform: translate(-33%). Slayderning bajarilishini ko'rishingiz mumkin shu yerda.

Ochiladigan ro'yxatlar. Bu erda hammasi ham tushdi va shunga o'xshash selektor: .accordion-item input:checked ~ .accordion-element__content. Amalga oshirishni ko'rishingiz mumkin shu yerda.

:hover, :active va :focu* holatlarining mavjudligi. Juda muhim nuqta. Interfeys bilan o'zaro aloqada bo'lgan qulaylik unga bog'liq edi. Foydalanuvchi har doim o'z harakatlari haqida fikr-mulohazalarini olishi kerak. Ushbu element so'rovnoma bilan o'zaro ta'sir davomida tekshirildi. Agar men "Menga qo'ng'iroq qiling" tugmasini bosgan bo'lsam va vizual ravishda hech narsa sodir bo'lmasa (so'rov yuborilgan bo'lsa ham), bu yomon, chunki keyin uni qayta-qayta bosaman. Natijada o'nta so'rov yuboriladi va menga o'n marta qo'ng'iroq qilinadi. Mobil qurilmalarda sichqoncha yo'qligini unutmasligimiz kerak, ya'ni hover bo'lmasligi kerak. Semantika haqidagi fikrni bajarganlarga ta'sir qilmagan yana bir nuqta. Agar sizning boshqaruvingiz interaktiv element bo'lmasa, kursorni uning ustiga olib borganingizda, kursor standart bo'lib qoladi. Hover uchun reaktsiya yozgan bo'lsangiz ham, bu juda tartibsiz ko'rinadi. Kursorni kamsitmang: ko'rsatgich.

Animatsiyalar. Elementlar bilan sodir bo'ladigan barcha reaktsiyalar silliq bo'lishi muhimdir. Hayotda hech narsa bir zumda emas, shuning uchun interfeysni yanada yoqimli qilish uchun hover va faol o'tishlarga ega bo'lish kifoya edi. Xo'sh, slayder va ro'yxatlarni animatsiya qilganlar odatda ajoyib.

Eng yangi texnologiyalardan foydalanish. Ko'p odamlar flexdan foydalanganlar, ammo hech kim grid yordamida vazifani bajarmagan. Agar flex to'g'ri ishlatilgan bo'lsa, ball hisoblangan. Agar biron bir joyda tartib mana shu egiluvchanlik tufayli buzilgan bo'lsa, afsuski, siz qo'shimcha ball olmadingiz.

Shaklni tasdiqlash. Shaklning har bir kiritilishiga kerakli atributni qo'shish zarur edi. Elektron pochta maydonini elektron pochta sifatida tasdiqlaganlarga ball qo'shdik.

Faylni yuklash tugmachasini shakllantirish. Biz quyidagi kombinatsiyani ko'rishni kutgan edik: va Faylni tanlang. Keyinchalik biz kirishni yashirishimiz va yorliqni uslublashimiz kerak edi. Yana bir keng tarqalgan usul bor - shaffof kiritish va uni tugmaning tepasiga qo'yish. Lekin hamma brauzerlar uslubini yaratishga ruxsat bermaydi va bu yechimni to'liq o'zaro faoliyat brauzer deb atash mumkin emas. Va yorliq qilish semantik jihatdan to'g'riroq.

Brauzerlar o'rtasidagi muvofiqlik. Zamonaviy brauzerlarning ikkita so'nggi versiyasida (IEsiz - ishtirokchilar omadli edi), shuningdek, iPhone-larda Safari va Android-da Chrome-da hamma narsa yaxshi ekanligini tekshirdik.

Aksincha, agar kimdir JS yoki Bootstrap-dan foydalansa, biz ballarni olib tashladik: ikkalasi ham butun vazifaning maqsadini yo'q qiladi. Bundan tashqari, Bootstrap bilan ishtirokchilar nafaqat minus olishdi, balki semantika va amalga oshirilgan elementlar uchun ko'p ball yo'qotishdi.

O'z saytini Internetning biron bir joyida joylashtirganlar hech qanday afzalliklarga ega bo'lmadilar - lekin sharhlovchilar omborlarni yuklab olishlari va ularni kompyuterlarida mahalliy sifatida ishga tushirishlari shart bo'lmaganida juda xursand bo'lishdi. Shunday qilib, bu karma uchun ortiqcha bo'lib xizmat qildi.

Birinchi vazifa, birinchi navbatda, talaba uchun juda foydali edi. Biz qabul qilmaganlar endi tayyorlangan rezyumega ega - siz uni g'urur bilan barcha javoblarga qo'shishingiz yoki gh-sahifalaringizga joylashtirishingiz mumkin.

2-topshiriq: Transport marshruti

Vazifa muallifi qidiruv interfeyslari guruhi rahbari Denis Balyko.

Vaziyat

Yulduzli xaritangiz bormi? U har bir yulduzning nomini, shuningdek, undan boshqa yulduzlargacha bo'lgan masofani yorug'lik soniyalarida ko'rsatadi. Uchta argumentni olishi kerak bo'lgan yechim funktsiyasini amalga oshiring: kalitlari yulduzlarning nomlari va qiymatlari yulduzlargacha bo'lgan masofalar (kosmosdagi bir tomonlama harakat), shuningdek nomlari bo'lgan ob'ekt. yo'lning boshlang'ich va tugash nuqtalari - mos ravishda boshlanish va tugatish. Funktsiya boshlang'ich yulduzdan marra yulduzigacha bo'lgan eng qisqa masofani va davom etadigan yo'lni qaytarishi kerak.

Funktsiya imzosi:

const solution = function(graph, start, finish)  {
    // Ваше решение
} 

Misol kiritish ma'lumotlari:

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

Chiqish misoli:

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

Eslatma: Yechim skeleti src/ jildida, yechimingizni solution.js-ga qo'ying.

Ikkinchi vazifani tekshirish eng avtomatlashtirilgan va ob'ektiv edi. Ko'pchilik yigitlar Dijkstra algoritmini amalga oshirish kerakligini taxmin qilishdi. Uning tavsifini topib, JSda algoritmni amalga oshirganlar yaxshi ish qilishdi. Biroq, topshiriqni tekshirishda biz bir xil xatolarga ega bo'lgan ko'plab qog'ozlarga duch keldik. Biz Internetda kod bo'laklarini qidirdik va ishtirokchilar algoritmni ko'chirgan maqolani topdik. Qizig‘i shundaki, ko‘pchilik muallifning izohlari bilan birga maqoladagi kodni ham ko‘chirib olgan. Bunday ishlar past ball oldi. Biz hech qanday manbalardan foydalanishni taqiqlamaymiz, lekin biz odam yozgan narsasini chuqur o'rganishini xohlaymiz.

mezonlari

Sinovlar uchun asosiy ballar berildi. Ba'zan yigitlar omborlar bilan aralashib, papkalarni qayta nomlashlari va kerakli fayllarni topa olmagani uchun testlar muvaffaqiyatsiz bo'lishi aniq edi. Bu yil biz bunday yigitlarga yordam berishga harakat qildik va ular uchun hamma narsani joyiga qaytardik. Ammo kelgusi yilda biz tanlov tizimiga o'tishni rejalashtirmoqdamiz va bu endi kechirilmaydi.

Shuningdek, "inson", qo'l mezonlari ham bor edi. Masalan, bitta kod uslubi mavjudligi. Hech kim bo'sh joy o'rniga yorliqlardan foydalanganlik uchun ballarni olib tashlamadi yoki aksincha. Agar siz o'zingizga ma'lum bo'lgan bitta qoida bo'yicha bitta tirnoqni qo'sh tirnoq bilan almashtirsangiz va nuqta-vergulni tasodifiy qo'ysangiz, bu boshqa masala.

Yechimning ravshanligi va o'qilishi alohida e'tiborga olindi. Dunyodagi barcha konferentsiyalarda ular dasturchining 80% ishining boshqa odamlarning kodini o'qishdan iboratligini aytishadi. Hatto maktab o'quvchilari ham o'zlarining kuratorlaridan va bir-biridan kod tekshiruvidan o'tadilar. Shunday qilib, bu mezon katta vaznga ega edi. Bitta belgidan ortiq o'zgaruvchilar bo'lmagan ishlar bor - iltimos, bunday qilmang. Ishtirokchilarning sharhlari juda dalda bo'ldi - Stella Changning sharhlari bilan bir xil bo'lganlar bundan mustasno.

Oxirgi mezon - avtotestlarning mavjudligi. Faqat bir nechta odam ularni qo'shdi, lekin hamma uchun bu ularning karmalarida katta ortiqcha bo'ldi.

To'g'ri yechim:

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-topshiriq: Tadbirlar taqvimi

Uni interfeys ishlab chiquvchilari Sergey Kazakov va Aleksandr Podskrebkin tayyorlagan.

Vaziyat

Jadvalingizni ko'rsatish uchun mini-taqvim yozing. Siz o'zingiz yoqtirgan har qanday jadvalni olishingiz mumkin. Masalan, 2019 yilda frontend konferentsiyalari jadvali.

Kalendar ro'yxat kabi ko'rinishi kerak. Boshqa dizayn talablari yo'q. Tadbir eslatmalarini 3, 7 va 14 kun oldin o'rnatishga imkon bering. Internetdan birinchi yuklab olingandan so'ng, taqvim ochilishi va oflayn rejimda ishlashi kerak.

Foydali manbalar

Frontend konferentsiya jadvali:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

Xizmat ko'rsatish xodimlari:
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Using_Service_Workers
developers.google.com/web/fundamentals/primers/service-workers

Bildirishnomalar API:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

Uchinchi vazifa sinab ko'rish uchun eng qiziqarli bo'ldi, chunki har birining o'ziga xos echimlari juda ko'p edi. Biz nomzodning notanish texnologiyalar bilan qanday ishlashini tekshirdik - u qanday tadqiqot qilishni biladimi yoki o'z yechimlarini sinab ko'radimi.

mezonlari

Katlangan kalendar. Ha, u hali ham tartibga solinishi kerak edi. Shartni juda tom ma'noda qabul qilgan va CSS kodining bir qatorini kiritmaganlar ham bor edi. Bu juda jozibali ko'rinmadi, lekin hamma narsa ishlagan bo'lsa, ballar kamaymadi.

Manbadan voqealar ro'yxatini olish. Bu tartib vazifasi emas, shuning uchun unga kiritilgan voqealar ro'yxati hisobga olinmagan. Siz har doim konferentsiyani bekor qilishingiz, uni qayta rejalashtirishingiz yoki yangisini qo'shishingiz mumkin. Shunday qilib, tashqaridan ma'lumotlarni qabul qilish va olingan JSON asosida tartibni ko'rsatish kerak edi. Ma'lumotlarni har qanday usulda olish muhim edi (fetch usuli yoki XMLHttpRequest yordamida). Agar biror kishi olib kelish uchun polifill qo'shgan bo'lsa va readme-da o'z tanlovini belgilagan bo'lsa, bu ortiqcha deb hisoblanadi.

Xizmat ishchisini xatosiz ro'yxatdan o'tkazish va birinchi yuklashdan keyin oflayn rejimda ishlash. Mana bir misol birinchi yuklashda jadval keshiga ega bo'lgan xizmat xodimi. Xizmat ko'rsatuvchi xodimlar, ularning imkoniyatlari va ular bilan ishlash usullari (keshlar bilan ishlash strategiyalari, oflayn rejimda ishlash) haqida ma'lumotni bu erda topishingiz mumkin.

Eslatmani o'rnatish qobiliyatiShunday qilib, u aslida 3, 7, 14 kundan keyin ishlaydi. Bildirishnomalar API-ni tushunish kerak edi, qaysisiga havola vazifani to'g'ri bajardi. Biz surish vaqti kelganligini tekshirish uchun biron bir aniq dasturni kutmagan edik. Har qanday ish varianti qabul qilindi: localStorage, IndexDB-da saqlash yoki xizmat ko'rsatuvchi xodim tomonidan davriy so'rov. Hatto push-server yaratish ham mumkin edi (bu erda misol), lekin u oflayn rejimda ishlamaydi. Sahifa yopilgandan keyin va bir muncha vaqt o'tgach ochilgandan so'ng, surish qabul qilish bir xil darajada muhim edi. Agar eslatma sahifa yopilgan paytda o'lgan bo'lsa, yechim hisobga olinmaydi. Yigitlar sharhlovchilar haqida o'ylashganda va 3 kun kutmaslik uchun hoziroq surish imkoniyatini yaratganida juda yaxshi.

Ish stolida belgini joylashtirish imkoniyati (PWA). Biz fayl mavjudligini tekshirdik manifest.json to'g'ri belgilar bilan. Ba'zi bolalar ushbu faylni yaratdilar (yoki uni CreateReactApp-da qoldirdilar) - lekin to'g'ri piktogramma qo'shmadi. Keyin, o'rnatishga urinayotganda, "boshqa belgi kerak" kabi xatolik yuz berdi.

Kod uslubi va loyiha tuzilishi. Ikkinchi vazifada bo'lgani kabi, biz bitta kod uslubini ko'rib chiqdik (hatto u biznikiga to'g'ri kelmasa ham). Ba'zi yigitlar linterlarni burishdi - bu juda yaxshi.

Konsol xatolari. Agar konsolda biror narsa noto'g'ri ekanligini ko'rsatuvchi ko'rsatkich bo'lsa va ishtirokchi bunga e'tibor bermasa, biz ballarni olib tashladik.

natijalar

Ishtirokchilarning qarorlarida nima kulgili:

  • Bitta so‘rovnomada quyidagi matn bor edi: “Dasturchi do‘stim menga React ilovasini yaratishda yordam berdi. Men unga qanday va nima uchun degan savollar bilan bombardimon qildim va u menga aytdi. Bu menga juda yoqdi, men bu haqda ko'proq bilishni xohlayman." Biz bu ilovani chin dildan izlardik, lekin afsuski, nomzodning do‘sti arizaning ishlashiga unchalik yordam bermadi.
  • Bir nomzod RAR arxivi joylashgan GitHub-ga havola yubordi - bu haqda izoh berish qiyin. 🙂
  • Boshqa nomzod, solution.js faylining birinchi qatoridagi izohda, algoritmdan nusxa ko‘chirganini halol tan oldi.

76 nafar nomzoddan ariza qabul qilib, 23 kishini tanlab oldik. Bizga nafaqat Minskdan, balki Moskva, Sankt-Peterburg va hatto Tataristondan ham anketalar yuborildi. Yigitlarning ayrimlari bizni hozirgi kasblari bilan lol qoldirdi: biri sud-tibbiyot eksperti, ikkinchisi esa tibbiyot fakulteti talabasi.

Natijada topshiriqlarni bajarishda muvaffaqiyat ko'rsatkichlarining qiziqarli taqsimoti bo'ldi. Ishtirokchilar birinchi topshiriqni o‘rtacha 60 foizga, ikkinchisi 50 foizga, uchinchisi esa eng qiyin bo‘lib chiqdi va o‘rtacha 40 foizga bajarildi.

Bir qarashda, vazifalar murakkab va ko'p vaqt talab qiladigan ko'rinadi. Buning sababi, biz iloji boricha ko'proq nomzodlarni chetlab o'tishni xohlayotganimizda emas. O'qish davomida talabalar hayotiy vazifalarga duch kelishadi - chat qilish, bolalar uchun Yandex.Musiqa yoki ob-havoga bog'liq odamlar uchun Yandex.Weather. Buning uchun sizga boshlang'ich asos kerak.

Ikki yil oldin SRIga kirish vazifamni ko'rganimni va buni hech qachon hal qilmayman deb o'ylaganimni eslayman. Ayni paytda asosiy narsa o'tirish, shartlarni diqqat bilan o'qib chiqish va buni qilishni boshlashdir. Ma'lum bo'lishicha, shartlar eritmaning deyarli 80% ni o'z ichiga oladi. Masalan, uchinchi vazifa (eng qiyin) shartida biz MDN-da xizmat ko'rsatuvchi ishchilar va Notifications API-ga havolalarni qo'shdik. Havolalar mazmunini o'rgangan talabalar uni qiyinchiliksiz yakunladilar.

Men ushbu maqolani kelajakda SRIga kirishni rejalashtirgan, Minsk maktabiga kira olmagan yoki boshqa test topshirig'ini bajarishni boshlagan nomzodlar tomonidan o'qilishini juda istardim. Ko'rib turganingizdek, buni qilish juda mumkin. Siz faqat o'zingizga ishonishingiz va mualliflarning barcha maslahatlarini tinglashingiz kerak.

Manba: www.habr.com

a Izoh qo'shish