До списку уроків
11 клас · Урок 13 з 14

IT-професії майбутнього і збірка лендинга

виконано0%
Крок 1

Сьогодні ти збираєш усе, що зробив за модуль, в одну сторінку

Тема 8 · урок 1 з 2 · передостанній урок модуля · 120 хвилин

Дванадцять уроків ти складав продукт по частинах. Бриф, дані ринку, економіка, айдентика. Потім пітч, база знань, беклог, форма відгуків і автозвіт. Кожна з цих частин лежить у ~/www/ окремим файлом.

Сьогодні вони вперше стають одним лендингом. Це та сторінка, яку побачить людина, що прийшла за адресою твого продукту. Про сам продукт вона не знає нічого.

На першому уроці ти завів index.html порожнім каркасом із трьома секціями. Сьогодні він наповнюється. Не переписується з нуля, а добудовується.

Різниця тут не косметична. За сторінкою, яку збирали 13 уроків, стоять твої власні дані. За сторінкою, зверстаною за вечір, — нічого.

Дві лінії уроку, які насправді одна Перша лінія — збірка лендинга. Це структура сторінки, перші пʼять секунд уваги, живі числа й сторінка team.html. Друга — IT-професії: хто робить продукт і що з цього ти вже робив сам. Сходяться вони в одній думці. Усе, що ти бачиш на лендингу, — це чиясь робота. І кожна така робота має назву ролі.

Після уроку ти вмієш

Слова hero, соціальний доказ і fetch поки нічого не означають — розберемо кожне тоді, коли воно знадобиться.

Хід уроку

ЕтапХвЩо робимо
Мапа IT-ролей20вісім ролей через «понеділок, 9:40»: інструменти, зона відповідальності
Що з цього ти вже робив10дванадцять уроків → назви ролей; картка ролей
AI, автоматизація і вибір15що ІІ забирає, що підсилює; що росте, а що змінюється
Практика: team.html203–5 карток ролей, ≥ 3 навички, чесна позначка своєї
Анатомія лендинга15перші пʼять секунд, заголовок-пояснення, докази, заклик
Практика: каркас index.html30сім секцій, спільний brand.css, навігація без битих посилань
Практика: живі дані15fetch у секції numbers, roadmap, feedback
Автоперевірка й план Demo Day5check11 8, регламент виступу на уроці 14
Що робиться де Верхній екран сайту зветься hero. Усе важке для нього — ілюстрації, фони, обробку картинок, генерацію AI-медіа — роби на своєму компʼютері. На сервер це не заливається. У hero працюють assets/logo.svg, assets/og.png (1200×630, до 500 КБ) і CSS. Критерій no_media діє й сьогодні. У ~/www/ і ~/upload/ не має бути .mp4 .mov .avi .mkv .webm .mp3 .wav .flac. Файлів понад 2 МБ теж.
Крок 2

Вісім ролей: понеділок, 9:40

Не «займається розробкою програмного забезпечення», а що людина реально відкриває на екрані в перші пів години робочого дня

Означення професій нічого не пояснюють: у них усі слова однакові. Різницю видно тільки в роботі. Що людина відкриває, кого питає, що віддає далі. І за що з неї спитають, коли зламається.

РольПонеділок, 9:40ІнструментиЗа що спитають
Продакт-менеджер читає відгуки за вихідні, викидає з плану тижня дві задачі з пʼяти й пояснює команді, чому саме ці беклог, аналітика, розмови з користувачами що робимо і навіщо саме це
Аналітик перевіряє, чому вчорашня конверсія впала вдвічі: спершу дивиться, чи не зламався збір даних SQL, таблиці, дашборди чи можна вірити числу, на яке спираються рішення
Дизайнер малює стан «нічого не знайдено» для пошуку — той екран, про який усі забули Figma, дизайн-система, токени чи людина зрозуміє екран без пояснень
Фронтенд-розробник переносить макет у код і виявляє, що довге імʼя користувача ламає шапку на 360 px HTML, CSS, JavaScript, git що бачить і чим клацає користувач
Бекенд-розробник додає поле в API так, щоб старий застосунок на телефонах не перестав працювати мова сервера, база даних, API де дані живуть і чи не загубляться
QA (тестувальник) проганяє нову версію по списку перевірок і заводить дефект із кроками відтворення чек-листи, DevTools, автотести щоб зламане не доїхало до користувача
DevOps дивиться, чому нічний деплой упав, читає лог, відкочує версію за три хвилини Linux, cron, CI, моніторинг щоб продукт був доступний і оновлювався без болю
Підтримка відповідає на «у мене нічого не працює», витягує з людини версію браузера й крок, на якому все стало звернення, база знань, скриншоти щоб користувач не лишився сам зі своєю проблемою

У таблиці стоять слова, яких ти ще не зустрічав. Розберемо їх по черзі. Майже кожне виявиться тим, що ти вже робив руками, тільки названим інакше.

База даних — програма, яка зберігає рядки й швидко знаходить потрібні. Твій ~/data/responses.csv — та сама ідея, тільки в одному файлі й без пошуку. Коли рядків стає мільйон, файлом уже не обійтися.

Питання до бази ставлять не мишкою, а текстом: «покажи всі відгуки з оцінкою нижче 3 за минулий тиждень». Мова, якою пишуть такі питання, зветься SQL. Ти робив те саме командою awk по CSV.

Сирі відповіді аналітик нікому не показує. Він робить дашборд — одну сторінку, де кілька графіків оновлюються самі. Твій report.html з уроку 12 — це найпростіший дашборд.

А конверсія в його рядку — це частка відвідувачів, які зробили те, чого від них чекали. Зайшло двісті людей, форму заповнили шестеро — конверсія 3%. Наступного дня при тих самих двохстах заповнили троє: конверсія впала вдвічі, і треба шукати чому.

Дизайнер малює екрани не в редакторі на своєму компʼютері, а у Figma. Вона працює прямо в браузері, тому макет можна відкрити вдвох одночасно. Розробник бере з нього точні розміри й кольори, а не міряє на око.

Щоб екрани не розʼїжджалися, кольори, шрифти й відступи записують один раз в окремий файл. Такий набір спільних домовленостей зветься дизайн-системою, а одне записане в ній значення — токеном. Твій brand.css із рядками var(--brand-…) — це вона і є, у мініатюрі.

API — адреса, за якою по дані приходить не людина, а програма. Замість сторінки вона забирає голі числа. Твій ~/www/data/feedback-stats.json — найпростіший API, який буває: одна адреса, два числа.

git памʼятає історію файлів: хто, коли і що змінив. Якщо сьогоднішня правка все зламала, вчорашню версію повертають однією командою. Тека «лендинг_фінал_3» після цього не потрібна.

DevTools — панель, яка відкривається в браузері клавішею F12. У ній видно розмітку сторінки, помилки в консолі й кожен запит до сервера. Туди заглядають першими, коли сторінка виглядає не так, як задумано.

Автотести — програма, яка натискає кнопки замість людини й звіряє результат з очікуваним. Сто перевірок вона проганяє за хвилину. Людина руками — за день, і на пʼятдесятій втрачає увагу.

Запускати ці тести після кожної зміни доручають окремому серверу. Служба, яка це робить, зветься CI. Вона ж збирає нову версію й кладе її на бойовий сервер.

Саме таке викладання нової версії й називають деплоєм. Якщо після деплою все посипалося, DevOps відкочує версію: повертає на сервер попередню, ту, що працювала. Тому це швидко — три хвилини, а не переписування коду.

А моніторинг — служба, яка щохвилини сама відкриває твій сайт і перевіряє, чи він відповідає. Не відповів двічі поспіль — DevOps дістає повідомлення о третій ночі. Саме тому uptime з уроку 1 узагалі є що рахувати.

Продакт Аналітик Дизайнер Фронтенд Бекенд QA DevOps Підтримка що і навіщо звідки ми це знаємо як це читається що бачить людина де це зберігається де це ламається як це доїде на сервер що каже користувач ОДИН ПРОДУКТ твій лендинг на власному сабдомені
Ролі — це не вісім різних проєктів, а вісім поглядів на один. У великій компанії кожен погляд — це окрема людина або відділ. А в стартапі на старті всі вісім поглядів тримає одна людина. Саме тому вона так часто щось забуває — не через лінощі, а через кількість ролей у голові.
Ролі, що не потрапили у вісімку, але існують поруч Проєктний менеджер стежить за строками. Він знає, хто чекає на чию роботу, і першим бачить, що команда не встигає. Технічний письменник пише те, що читають після запуску: довідку, інструкцію, опис для розробників. Data-інженер робить так, щоб дані самі доїжджали до аналітика. Приблизно те саме ти робив у report.sh, тільки в мініатюрі. Інженер з безпеки шукає місця, де чужий текст може щось зламати. Ти вже займався цим, коли гасив формулу з = у CSV. SRE — сусід DevOps. Він відповідає за доступність числом: це той самий uptime з уроку 1.
Питання

Користувач пише в підтримку: «кнопка “надіслати відгук” нічого не робить». У кого на столі ця задача?

Питання

У вакансіях поруч зустрічаються «продакт-менеджер» і «проєктний менеджер». У чому головна різниця?

Крок 3

Головний хід уроку: ти вже пробував шість ролей із восьми

«Професії майбутнього» — незручна назва теми: те, про що йдеться, ти робив руками останні три місяці

Про IT-ролі зазвичай розповідають як про далекий вибір: колись, після школи, треба буде щось обрати. Але робота ролі — це не диплом, а набір дій.

І майже кожну з цих дій ти вже виконував. Масштаб був інший, зарплати й замовника не було. Але сама робота — та сама.

УрокЩо ти робивЯк це зветься в роботіРоль
1SSH, права rwx, теки www/ data/доступ до середовища й розділення публічного та приватногоDevOps
2режим пропонування, коментарі, CHANGELOG.mdрецензування й журнал змін документапродакт, техпис
3чистка market.csv, TRIM, дублікатипідготовка даних перед аналізоманалітик
4зведена, діаграма, маржа, точка беззбитковостіпродуктова аналітика й висновок із числоманалітик, продакт
5brand.css, контраст 4,5:1, logo.svgдизайн-система в коді: токени замість «гарних кольорів»дизайнер
6pitch.html, deck.html, OG-тегикомунікація продукту й превʼю посиланняпродакт, маркетинг
7–8атомарні нотатки, MOC, генерація kb/index.htmlдокументація і скрипт, що її збираєтехпис, розробник
9–10tasks.json, WIP-ліміт, DoD, дорожня картабеклог і планування роботипродакт, проєктний менеджер
11форма, обробник, валідація, екранування = у CSVфронтенд, бекенд і трохи безпеки в одному завданнірозробник
12report.sh, шаблон, cron, лог запусківавтоматизація за розкладом і діагностика збоюDevOps
11–12режим «Зламай конвеєр»: знайти, який вузол упавлокалізація дефекту й опис кроків відтворенняQA
Що ти робив на уроках Як це зветься в продукті чистив market.csv, рахував маржу підбирав палітру, доганяв контраст верстав pitch.html, deck.html, форму писав report.sh, ставив cron шукав, чому чужа сторінка ламається вирішував, що робити першим уроки 3 і 4 урок 5 уроки 6 і 11 урок 12 уроки 11–12, «Зламай конвеєр» уроки 9 і 10 Аналітик Дизайнер Розробник DevOps QA Продакт чи можна вірити числу чи зрозуміє це людина що бачить і чим клацає чи доїде на сервер де саме ламається що робимо першим головна роль цієї роботи дотична: те саме завдання зачіпає й цю роль
Жодна робота не належить одній ролі повністю. Саме тому люди всередині IT частіше переходять між ролями, ніж міняють галузь. Аналітик, який добре пояснює висновки, за два роки стає продактом. А тестувальник, який пише автотести, — розробником.
Що з цього можна писати про себе чесно Ось як звучить правда: «Маю навчальний досвід підготовки даних. Чистив датасет на 120 рядків, рахував маржу й точку беззбитковості, зробив сторінку з висновками». «Аналітик даних із досвідом роботи» — ні. Різниця в одному слові: навчальний. Воно нічого не знецінює, зате знімає з тебе обіцянку, яку доведеться підтверджувати на першому ж завданні.
Питання

На співбесіді на літнє стажування питають: «У тебе є досвід роботи з даними?» Ти пройшов уроки 3 і 4. Що відповісти?

Крок 4

Картка ролей: не «ким бути», а «що з цього було не в тягар»

Відміть роботи, які тобі справді сподобалося робити протягом модуля. Сторінка покаже, до яких ролей вони ближчі

Це не тест на профорієнтацію. Тут немає прихованої шкали, психології й «твого типу особистості». Механіка проста й уся на видноті. Кожна робота приписана до однієї-двох ролей. Сторінка складає твої галочки й ділить на максимум по кожній ролі. Відсоток означає рівно одне: яка частка робіт цієї ролі тобі сподобалася.

Чому це орієнтир, а не діагноз Тобі сподобалося те, що вийшло. Дизайн міг «не піти» через один невдалий урок, а не тому, що він не твій. Тому картку читають так: «ось два напрями, куди варто копнути наступного місяця», а не «ось моя професія». Перевірити можна одним способом — зробити ще щось у цьому напрямі й подивитися, чи подобається на другий і третій раз.
Що з цього тобі сподобалося робити

Відсоток = скільки робіт цієї ролі ти відмітив, поділити на всі роботи цієї ролі в переліку. Кожна робота важить 2, якщо вона для ролі головна, і 1, якщо дотична.

Питання

Картка показала: «Дизайнер — 83 %, Аналітик — 25 %». Однокласник каже: «Все, тобі в дизайн, аналітика не твоє». Як це прочитати правильно?

Крок 5

Що змінює автоматизація і як через це обирати

Обережно: нижче немає передбачень. Є те, що вже видно, і те, чого ніхто не знає

Правило, яке діяло весь модуль: AI пише чернетку — ти перевіряєш, правиш і відповідаєш за результат. Це і є коротка відповідь на питання «чи замінить ІІ програмістів».

Зникає не робота, а її склад. Менше набирання тексту. Більше постановки задачі, перевірки й відповідальності за наслідки.

Що вже автоматизується добреЩо ІІ підсилює, але не робить самЩо не передається взагалі
чернетка коду за описом; типова верстка; переклад; переписування тексту; генерація тестових даних; пояснення чужого коду пошук причини помилки (гіпотези — від ІІ, перевірка — від тебе); чернетка дизайну; чернетка анкети; підсумок 200 відгуків рішення, яку задачу користувача вирішувати; відповідальність за наслідки; доступ до реальних людей і їхньої довіри

Перевір на власному досвіді. На уроці 12 ІІ міг написати тобі report.sh за двадцять секунд. А ось три речі довелося зробити тобі. Вирішити, що середній рейтинг рахується без тестових рядків. Помітити, що «Експорт» і «експорт» — та сама функція. І перевірити три рядки вручну.

Робота не зникла. Вона перемістилася з набирання на перевірку.

«Айтішник» — не професія Це як «медик»: між хірургом, лаборантом і завідувачем реєстратури спільна тільки будівля. Подивись на продакта й DevOps із попередньої схеми. Продукт у них один, а дні не схожі нічим: ані інструментами, ані тим, з ким вони розмовляють. Тому «хочу в IT» — ще не вибір. Вибором ця фраза стає після відповіді на питання «що я готовий робити щодня по вісім годин».

Що росте, а що змінюється

Нижче — не пророцтво, а прогноз статистичного бюро. Він показує, скільки робочих місць у цих групах професій очікують у США за 2023–2033 роки. Країна інша, ринок інший, та й прогнози регулярно не збуваються. Читай це як напрям стрілки, а не як обіцянку.

Група професійПрогноз 2023–2033Як це читати
Аналітики даних (data scientists)+36 %дані зростають швидше, ніж кількість людей, які вміють їх чистити
Фахівці з інформаційної безпеки+33 %кожен новий сервіс — нова поверхня для атаки
Розробники ПЗ, QA-аналітики й тестувальники+17 %рахуються разом однією групою: тестування не зникає, воно змінюється
Веброзробники й цифрові дизайнери+8 %зростає, але помітно повільніше: типову верстку справді автоматизували
Фахівці підтримки користувачів+6 %перша лінія частково пішла в ботів, друга — ні
Усі професії разом, для порівняння+4 %орієнтир, відносно якого «швидко» і «повільно» мають сенс

Джерело — Бюро статистики праці США, розділ Occupational Outlook Handbook; посилання в секції «Джерела». Всесвітній економічний форум у звіті Future of Jobs 2025 оцінює: до 2030 року зміняться близько 39 % ключових навичок працівників. Це і є головна цифра розділу. Вона каже не «професії зникнуть», а «зміст професій поїде».

Як обирати, щоб не обирати навмання

  1. Дивись на дію, а не на назву. «Хочу бути продактом» — це назва. «Мені подобається вирішувати, що робити першим, і сперечатися про це» — це дія, яку можна перевірити вже цього тижня.
  2. Перевіряй, що подобається на третій раз. Перша палітра — цікаво завжди. Питання в тому, чи цікаво доганяти контраст до 4,5:1 впʼяте.
  3. Мода — найгірший критерій. Коли ти вийдеш на ринок, модною буде інша роль: між твоїм вибором і першою роботою — роки, а хвиля живе коротше.
  4. Роль не назавжди. Перехід «QA → розробник», «аналітик → продакт», «підтримка → QA» — звичайний шлях, а не поразка.
  5. Одна навичка спільна для всіх восьми ролей — вміти поставити задачу словами й перевірити результат. Ти тренував її щоуроку, коли працював з AI-редактором.
Питання

AI-редактор за двадцять секунд написав тобі скрипт звіту, і він запустився без помилок. Що змінилося у твоїй відповідальності?

Питання

Однокласник каже: «Після школи йду в айті, там платять». Що з цією заявою не так у першу чергу?

Крок 6

Перші пʼять секунд: що людина встигає зрозуміти

Лендинг оцінюють не так, як твою роботу оцінює вчитель. Його не читають — його швидко переглядають і закривають

Уся структура лендинга тримається на двох виміряних фактах. Перший. Враження про сторінку формується приблизно за 50 мілісекунд. Це швидше, ніж людина встигає прочитати перше слово. Тобто оцінюють загальний вигляд, а не зміст.

Другий. Більшість відвідувачів ідуть зі сторінки в перші 10–20 секунд. Лишаються тільки ті, хто за цей час побачив чітко названу користь для себе.

Звідси єдина вимога до верхньої частини сторінки. За пʼять секунд і без прокрутки має бути зрозуміло що це, для кого і що тут робити. Усе інше — докази, дорожня карта, команда — нижче, для тих, кого зачепило.

logo.svg бриф · пітч · база знань · команда Розклад гуртків твоєї школи в одному місці Без груп у месенджерах і зниклих оголошень Подивитися розклад без реєстрації, 10 секунд logo.svg + оформлення на CSS растр на сервер не їде {кількість відгуків} {середня оцінка} {зроблено задач} з report.html з report.html з tasks.json 12 34 нижче межі першого екрана: problem · solution · roadmap · feedback · team сюди доскролить тільки той, кого зачепили перші секунди
Порядок 1–2–3–4 — це не «правильна траєкторія погляду». Це порядок питань, на які людина шукає відповідь: «де я?», «що це?», «що мені зробити?», «чому вам вірити?». Числа в плашках навмисно показані як {шаблон}: на робочій сторінці вони підтягуються, а не вписуються.

Заголовок, який пояснює, проти заголовка, який інтригує

Найчастіша помилка шкільного лендинга — заголовок-настрій. Він звучить красиво і не повідомляє нічого. Перевірка одна: чи може незнайома людина після цього рядка сказати, що ти пропонуєш і кому.

ЗаголовокЩо з ним не такЯк переписати
«Ми змінюємо правила гри»підходить будь-якому продукту на світі«Розклад гуртків твоєї школи в одному місці»
«Інноваційна платформа нового покоління»чотири слова без жодного іменника про суть«Обмін підручниками між учнями твоєї школи»
«Твоє життя стане простішим»обіцянка без предмета: простішим у чому?«Нагадує, коли здавати роботи, за день до дедлайну»
«SkillUp»назва замість пояснення; назва вже є в шапці«SkillUp — щоденник підготовки до НМТ на 15 хвилин на день»
Чотири речі у верхній частині, і жодної зайвої Заголовок — що це і для кого, до 12 слів. Підзаголовок — одне речення, як саме воно працює. Заклик до дії — одна головна кнопка з дієсловом («Подивитися розклад», а не «Дізнатися більше») і чесною приміткою поруч. Докази — числа й відгуки, а не прикметники: «4,6 із 5 за 127 відгуками» замість «нам довіряють».
Питання

У hero твого лендинга написано: «Ми змінюємо підхід до навчання». Кнопка — «Дізнатися більше». Що виправляти першим і чому саме це?

Крок 7

Сім секцій і звідки взявся кожен блок

Нічого нового писати не треба: майже все вже лежить у ~/www/ з попередніх уроків

Лендинг — не ще один документ поруч із дванадцятьма попередніми. Це вхід до них: коротко головне, а деталі — посиланням на сторінку, яку ти вже зробив. Тому робота сьогодні здебільшого не «написати», а «дістати, скоротити й зшити».

Секція лендинга Звідки береться #hero #problem #solution #numbers #roadmap #deck #feedback назва, заголовок, кнопка, логотип кому і як сильно болить що ти зробив і як це працює економіка, обсяг ринку, оцінка що вже зроблено і що далі пітч і презентація на 8 слайдів форма відгуку і те, що вже сказали fetch fetch fetch урок 1 · каркас index.html урок 2 · brief.html урок 2 · brief.html уроки 3–4 · market.csv уроки 9–10 · tasks.json урок 6 · deck.html урок 11 · feedback.html урок 5 · brand.css, logo.svg розділ «Проблема», скорочено урок 6 · pitch.html, 2–3 речення урок 12 · report.html, агрегат урок 10 · roadmap.html, посилання урок 6 · assets/og.png для превʼю урок 12 · report.html, середня оцінка team.html — окрема сторінка (урок 13), посилання на неї стоїть у шапці лендинга поруч із брифом, пітчем і базою знань
Три секції з семи позначені словом fetch: вони не містять чисел у розмітці, а тягнуть їх із джерела під час відкриття сторінки. Саме це перевіряє критерій «дані живі»: підміна значення у джерелі має змінити те, що показує лендинг.

Три способи потрапити на лендинг

СпосібКоли доречнийПриклад із твого проєкту
Скорочена копія текстутекст майже не змінюється, а на лендингу потрібні 2–3 речення замість двох сторінокproblem, solution — із brief.html
Посиланняматеріал великий і живе окремою сторінкоюdeck.html, pitch.html, kb/, team.html
Живі дані через fetchчисло змінюється саме й має змінюватися на сторінці без правки HTMLnumbers, roadmap, feedback

Третій спосіб із таблиці — живі дані — тримається на трьох джерелах, по одному на секцію. Перше джерелоdata/market.csv з уроків 3 і 4. Секція numbers бере з нього кількість потенційних користувачів і складає її вже під час відкриття сторінки.

index.html · секція numbers тягне числа з market.csv
<section id="numbers">
  <h2>Ринок і економіка</h2>
  <p>Потенційних користувачів у сегментах: <b id="n-users">—</b></p>
</section>

<script>
fetch('data/market.csv')
  .then(r => { if (!r.ok) throw new Error(r.status); return r.text(); })
  .then(text => {
    const rows = text.trim().split('\n').slice(1);        // без заголовка
    const users = rows.reduce((s, line) => s + Number(line.split(',')[1] || 0), 0);
    document.getElementById('n-users').textContent = users.toLocaleString('uk-UA');
  })
  .catch(() => {
    document.getElementById('n-users').textContent = 'дані тимчасово недоступні';
  });
</script>

Друге джерело — твій власний звіт. report.html уже лежить поруч і оновлюється сам за cron. Щоб дістати з нього числа, познач їх у bin/report.tpl.html ідентифікаторами — і лендинг прочитає готову сторінку як документ:

index.html · секція feedback читає власний звіт
<script>
fetch('report.html')
  .then(r => { if (!r.ok) throw new Error(r.status); return r.text(); })
  .then(html => {
    const doc = new DOMParser().parseFromString(html, 'text/html');
    const val = id => (doc.getElementById(id) || {}).textContent || '—';
    document.getElementById('f-count').textContent = val('r-count');   // скільки відгуків
    document.getElementById('f-avg').textContent   = val('r-avg');     // середня оцінка
  })
  .catch(() => { document.getElementById('f-count').textContent = '—'; });
</script>

Третє джерелоdata/tasks.json з уроків 9 і 10. Секція roadmap читає його тим самим fetch і показує, скільки задач із карти вже зроблено. Код майже не відрізняється: інше імʼя файлу й інші поля, з яких беруться числа.

Приватність: на лендинг іде агрегат, а не відповіді responses.csv містить імена й коментарі реальних людей і лежить у приватній ~/data/, поза вебкоренем. Лендинг не має права тягнути її навіть якщо дуже хочеться показати «живі відгуки». На сторінку потрапляють кількість відгуків і середня оцінка. Ще можна взяти окремі цитати — але тільки ті, на які людина дала згоду. Імʼя в цитаті скорочуй до імені й класу.
Питання

Ти вписав у секцію numbers руками: «127 відгуків, середня 4,6». Через тиждень відгуків 140, а середня — 4,4. Що станеться?

Крок 8

Збирач лендинга: що в тебе вже є і що з цього вийде

Відміть артефакти, які реально лежать у ~/www/. Нижче збереться каркас майбутньої сторінки — з попередженнями про порожні місця й готовим кодом

Відмічай чесно: не «я збирався зробити», а «файл лежить на сервері й відкривається за посиланням». Збирач не знає, що в тебе на сервері, — він показує наслідок твоїх галочок. Якщо позначити все підряд, він видасть красивий каркас із мертвими посиланнями, і на уроці 14 це побачить автоперевірка.

Артефакти, готові до збірки
секцій наповнено0 / 7
артефактів готово0 / 9
живих джерел даних0 / 3

Живий каркас майбутньої сторінки
    Каркас index.html під те, що в тебе вже є
    index.html · згенеровано збирачем
    
          

    Це каркас, а не готова сторінка: текст, заголовок і докази пишеш ти. Згенерований код підключає brand.css. У навігацію він бере тільки ті сторінки, які в тебе справді є. А fetch ставить лише туди, де для нього є джерело.

    Питання

    Збирач попереджає: «секція roadmap порожня — немає tasks.json». До кінця уроку 40 хвилин. Що робити?

    Крок 9

    team.html: ролі, потрібні продукту, і чесна позначка своєї

    Сторінка про команду — не про кількість людей, а про те, яка робота в продукті існує і хто її зараз робить

    Інвестор, учитель і будь-яка доросла людина дивляться твій проєкт із двома питаннями в голові. Перше: чи розумієш ти, з чого складається робота над продуктом. Друге: що з цього ти справді робиш сам.

    Саме сторінка команди й відповідає на обидва. Друге питання важливіше — на ньому шкільні проєкти падають найчастіше.

    team.html Команда продукту Які ролі потрібні продукту і хто їх зараз виконує Розробник Дизайнер Аналітик верстає сторінки, пише обробник форми токени бренду, логотип, читабельність тексту дані ринку, юніт-економіка навички навички навички · HTML і CSS · JavaScript, fetch · shell і cron · палітра, контраст 4,5:1 · типографіка · векторний SVG · чистка CSV · зведені таблиці · висновок із числом цю роль виконую я цю роль виконую я допомагає однокласник Бекенд-розробник — ролі в команді немає потрібно: зберігати відгуки в базі замість CSV · поки цього не робить ніхто чесна порожня картка коштує дешевше за вигадану людину: перша викликає повагу, друга — перше ж незручне питання
    Мінімум для перевірки — 3–5 карток, у кожній щонайменше три названі навички, і хоча б одна позначка «цю роль виконую я». Картка «ролі немає» не обовʼязкова, але саме вона показує, що ти розумієш межі власного продукту.

    Чому чесність тут вигідніша за «команду з десяти людей»

    team.html · одна картка ролі
    <article class="role">
      <h2>Аналітик</h2>
      <p class="what">Готує дані ринку, рахує юніт-економіку і стежить,
         щоб кожен висновок на лендингу спирався на число з market.csv.</p>
      <ul class="skills">
        <li>чистка й перевірка CSV</li>
        <li>зведені таблиці та вибір діаграми під питання</li>
        <li>маржа й точка беззбитковості</li>
      </ul>
      <!-- позначка своєї ролі: її шукає автоперевірка -->
      <p class="me">Цю роль виконую я — Данило К., 11-А</p>
    </article>
    Як написати «шукаємо», не збрехавши Формулювання «Шукаємо бекенд-розробника» звучить як вакансія неіснуючої фірми. Чесніше й сильніше: «Роль потрібна, щоб перенести відгуки з CSV у базу даних. Зараз її не виконує ніхто — при поточних 30 відгуках CSV вистачає». Ти назвав роль, задачу й межу, за якою вона стане критичною.
    Питання

    У team.html пʼять карток: CEO, CTO, дизайнер, маркетолог, аналітик — з іменами й фото людей, яких не існує. На Demo Day журі питає: «Хто з них писав скрипт звіту?» Що буде далі?

    Крок 10

    Збірка з частин: один brand.css, одна навігація, нуль мертвих посилань

    Девʼять сторінок стають продуктом тоді, коли в них спільні кольори, спільна навігація й жодного посилання на 404

    У тебе в ~/www/ накопичилося девʼять сторінок, зроблених у різні тижні й у різному настрої. Сьогодні вони мають виглядати як один сайт. Для цього потрібні рівно три речі: спільні кольори, спільна навігація й перевірені посилання.

    1. Кольори тільки в одному файлі

    Правило з уроку 5 тепер стає технічною вимогою. У власному CSS лендинга не має бути «сирих» кольорів на кшталт #0b7285. Усе йде через var(--brand-…).

    Причина не в естетиці. На Demo Day ти вирішиш, що акцент занадто блідий. Один рядок у brand.css має перефарбувати всі девʼять сторінок. А якщо кольори розповзлися по файлах, правити доведеться девʼять місць — і два ти забудеш.

    2. Навігація однакова на всіх сторінках

    Один і той самий блок посилань угорі кожної сторінки. Людина, яка відкрила analytics.html із пошуку, має за один клік потрапити на головну. Порядок посилань теж однаковий — інакше сторінки виглядають як чужі одна одній.

    index.html лендинг brief.html analytics.html Deck.html pitch.html roadmap.html kb/index.html feedback.html report.html team.html 200200 200200 200200 200200 404 велика літера в імені файлу brand.css — один файл змінних, підключений рядком <link> у кожній із цих сторінок
    Одне мертве посилання на схемі — не вигадка, а найчастіша помилка модуля. Написання Deck.html з великої літери відкривається на Windows і не відкривається на сервері. Про це був перший урок — і ось воно повернулося.

    3. Перевірка посилань перед здачею

    Перевіряй у SSH-сесії на сервері, а не у PowerShell на своїй машині. Причина проста: у Windows PowerShell 5.1 curl — це інше імʼя команди Invoke-WebRequest. Ключі справжнього curl там не працюють. А на сервері один рядок перевіряє всі сторінки одразу.

    SSH-сесія на сервері
    $ for f in index.html brief.html analytics.html pitch.html deck.html roadmap.html report.html feedback.html team.html kb/index.html; do curl -s -o /dev/null -w "%{http_code} $f\n" "https://$91.219.61.4/s/USER/$f"; done 200 index.html 200 brief.html 200 analytics.html 200 pitch.html 404 deck.html 200 roadmap.html 200 report.html 200 feedback.html 200 team.html 200 kb/index.html

    А цей рядок покаже, куди насправді веде кожне посилання з лендинга — зокрема ті, які ти встиг забути:

    SSH-сесія на сервері
    $ grep -o 'href="[^"]*"' ~/www/index.html | sort -u href="brief.html" href="brand.css" href="deck.html" href="team.html" href="#numbers"

    Приклади виводу складені як типові для навчального сервера — на твоєму акаунті список буде свій.

    Чек-лист перед здачею

    Що перевіритиЯк самеНайчастіша помилка
    Усі сім секцій із потрібними idпошук по файлу: hero problem solution numbers roadmap deck feedbackсекція названа section-1
    Жодного мертвого посиланняцикл із curl вищевелика літера або пробіл в імені файлу
    brand.css підключений і використанийу CSS немає #-кольорів поза brand.cssлендинг зверстано «з нуля» новими кольорами
    Числа підтягуються, а не вписанізміни значення в market.csv — сторінка має змінитисякопія чисел у HTML
    Вигляд на 360 pxDevTools, режим телефона, немає горизонтального скролуширока таблиця без обгортки
    Доступністьу кожної картинки alt, у кожного поля форми <label>іконки без alt
    Наскрізний no_mediaу ~/www/ і ~/upload/ немає медіа й файлів понад 2 МБфон для hero у 3 МБ

    Це вже портфоліо

    Портфоліо — не «колись потім». Це посилання на працюючу сторінку, за яким видно, що людина довела справу до кінця. У тебе воно вже є. Сайт відкривається з мережі за постійною адресою. Дані в ньому справжні. А історія роботи лежить у CHANGELOG.md і теці kb/.

    Що показуватиЯк це звучить
    посилання на лендинг«Ось продукт: 91.219.61.4/s/<логін>. Відкривається з телефона, дані живі»
    що саме ти зробив«Дані, дизайн-токени, форму й скрипт звіту робив я; це навчальний проєкт»
    одну технічну деталь«Звіт генерується скриптом за cron, числа на лендинг тягне fetch»
    чесно про AI«Чернетку скрипта писав AI-редактор, я перевіряв логіку й правив розрахунок»
    що зламалося й що ти полагодивнайцікавіша частина розмови: помилка й твоє рішення
    Чого в портфоліо бути не може Чужих персональних даних. responses.csv з іменами однокласників у публічний доступ не викладають — ані на сайт, ані посиланням «подивіться, які в мене дані». Показуй агрегат: скільки відгуків, середня оцінка, три знеособлені цитати з дозволу авторів.
    Питання

    Верстаючи лендинг, ти написав у стилях color:#0b7285 — «так гарніше, ніж змінна». Сторінка виглядає добре. Що не так?

    Крок 11

    Практика: збираємо лендинг і пишемо team.html

    Виконуй по черзі. Галочки зберігаються — сторінку можна закрити й повернутися.

    Що робиться локально, що їде по FTP Файли index.html і team.html ти пишеш у редакторі в себе на компʼютері. Зберігай їх у UTF-8. По FTP вони їдуть у ~/upload/, а звідти ти переносиш їх у ~/www/. Ілюстрації для hero, якщо ти їх генерував, лишаються на твоїй машині — у hero працюють assets/logo.svg, assets/og.png і CSS. Перевірку посилань запускай у SSH-сесії на сервері.
    Крок 12

    Автоперевірка check11 8, перша частина

    Система робить реальний запит на твій сабдомен і читає розмітку. Далі вона обходить усі посилання. А потім підміняє значення в джерелі даних — щоб побачити, чи сторінка справді жива. Спроби не обмежені.

    Демонстраційний режим: результат згенеровано для показу. На сервері ця кнопка запускає check11 8 від імені учня і читає ~/.progress/11-8.json.

    Як перевіряється «дані живі» Перевірка бере твій data/market.csv і робить копію. Потім змінює в ньому одне число й кладе файл назад. Далі відкриває лендинг у браузері без вікна й дивиться, чи змінилося те, що показує секція numbers. Після цього повертає файл як був. Скопійовані в HTML числа цю перевірку не проходять ніколи — не тому, що «так не можна», а тому, що вони справді не оновлюються.

    Що вчитель дивиться на екрані

    Крок 13

    Шкала виконання

    Це те, що бачить учитель, коли виставляє оцінку.

    СкладникВагаРезультат
    Виконано
    0%
    Рекомендований бал за 12-бальною

    Домашнє завдання

    1. Довести лендинг до стану «усі сім секцій наповнені реальним змістом»: під кожним заголовком є текст, а не порожнє місце.
    2. Прогнати чернетку пітчу на 3 хвилини вголос із секундоміром по deck.html — і скоротити те, що не вкладається.
    3. Дописати в ~/www/kb/ нотатку my-role.md: яку роль ти виконував у продукті, що з цієї роботи сподобалося, а що ні, і чому. Три-чотири речення, чесно.
    Анонс уроку 14: Demo Day Останній урок модуля. Спочатку фінальний аудит із регресією тем 1–7: check11 8 прожене повторно всі попередні перевірки, і зламане новою версткою буде видно. Потім пітч: 3 хвилини виступу плюс 2 хвилини питань. Лендинг показуєш живим, із проєктора. Далі голосування «інвестор». І письмовий відгук двом іншим командам за формулою «сильне — питання — пропозиція». Перевір посилання й вигляд на 360 px до уроку: на самому Demo Day часу лагодити не буде.
    Джерела

    Звідки взяті факти й числа

    Кожне число, яке ти можеш перевірити, має посилання. Прогнози ринку праці позначені окремо: це прогнози, а не факти.

    Приклади виводу команд (коди 200 і 404, список посилань), назва продукту «Розклад гуртків», числа у плашках доказів і картки в team.html складені як типові навчальні приклади — на твоєму акаунті вони будуть свої. Відсотки в картці ролей рахуються за формулою, описаною прямо під нею, і не є психологічним тестом. Повний список джерел із поясненнями — у файлі urok-13-джерела.md поруч із цією сторінкою.