11 клас — програма модуля

Study.UA · IT Skills · Cloud Services & Design · 14 уроків · групи 11A, 11B
Один урок на тиждень. Нижче — що саме відбувається на кожному занятті, чого ти навчишся і що в тебе залишиться після нього. Уроки йдуть по порядку: кожен спирається на попередній.
01

Операційні системи, Linux і твій сервер

Перший урок наскрізного проєкту STARTUP LAUNCH. Ти отримуєш логін і пароль до акаунта на шкільному сервері, підключаєшся до нього командою ssh і міняєш виданий пароль на власний. Потім кладеш перший файл index.html у теку ~/www/ і відкриваєш його за адресою <логін>.nstekh.uk — цю сторінку ти добудовуватимеш усі 14 уроків.

Після уроку ти

  • вмієш заходити на сервер зі свого комп'ютера командою ssh і міняти там виданий пароль на власний
  • вмієш відрізняти теку www/, яку бачить увесь інтернет, від теки data/, яку бачиш тільки ти
  • вмієш заливати файл index.html з ноутбука на сервер по SFTP і відкривати його за своєю адресою
  • вмієш рахувати в доларах, скільки коштує тримати цю сторінку онлайн — за місяць і за рік
  • вмієш обирати між хостингом, VPS і хмарою й називати вголос причину свого вибору
Залишається в тебе: Акаунт на сервері з власним паролем і файл ~/www/index.html, який відкривається за адресою <логін>.nstekh.uk
ssh і passwd SFTP через WinSCP VPS і сабдомен теки www/ та data/
Відкрити урок 01
02

Хмара, спільна робота і бриф стартапу

Сервер уже є, а продукту ще немає. Сьогодні ти пишеш бриф на п'ять розділів — проблема, аудиторія, рішення, цінність, критерій успіху — і збираєш із нього файл brief.html. Заразом розбираєш ролі доступу в хмарних документах і зводиш чотири сервіси в таблицю CSV.

Після уроку ти

  • вмієш писати бриф на п'ять розділів і збирати з нього файл brief.html
  • вмієш видавати в панелі «Доступ» роль коментатора однокласнику й роль редактора вчителю
  • вмієш діставати свій розділ з історії версій, коли його хтось переписав
  • вмієш правити чужий текст у режимі пропонування, щоб автор натиснув «прийняти» або «відхилити»
  • вмієш зберігати таблицю з шести колонок у форматі CSV і класти її в ~/www/data/
Залишається в тебе: Три файли на сервері: brief.html, data/cloud-compare.csv (заголовок і 4 рядки по 6 колонок) та CHANGELOG.md щонайменше з трьома записами
чотири ролі доступу: власник, редактор, коментатор, глядач історія версій і режим пропонування формат CSV CHANGELOG.md
Відкрити урок 02
03

Дані під контролем: чистка таблиці й формули

Речення з брифа на кшталт «конкуренти дорогі» перетворюються на числа, які можна перевірити. Ти чистиш таблицю від дублікатів, пропусків, викидів і різних написань одного слова, рахуєш формулами й підписуєш джерело кожного числа. Результат — файл data/market.csv, з якого наступного уроку ти зробиш діаграми й розрахунок прибутку.

Після уроку ти

  • вмієш знаходити в таблиці дублікати, пропуски, викиди й чотири написання одного й того самого слова
  • вмієш рахувати поруч AVERAGE і MEDIAN і, коли вони розійшлися більш ніж на чверть, ставити в текст обидва числа
  • вмієш ставити $ у формулі так, щоб вона не ламалася при протягуванні вниз
  • вмієш записувати в журнал чистки кожне рішення: що зробив, скільки рядків прибрав і чому
  • вмієш здавати data/market.csv, де в кожного числа є джерело в колонці source
Залишається в тебе: Файл ~/data/market.csv із колонкою source і журналом чистки; margin у кожному рядку порахований формулою, а не вписаний руками
AVERAGE і MEDIAN абсолютні посилання $ у формулах викид і репрезентативність вибірки колонка source
Відкрити урок 03
04

Від таблиці до висновку: зведені, діаграми, юніт-економіка

З чистої таблиці ти дістаєш два числа: скільки грошей лишається з одного продажу і скільки продажів треба зробити, щоб вийти в нуль. Рахуєш це формулами юніт-економіки, а витрати на сервер із уроку 1 стають рядком fixed_costs. Обидва числа й діаграму ти публікуєш сторінкою analytics.html.

Після уроку ти

  • вмієш згортати сотні рядків market.csv у таблицю на кілька чисел і бачити, який сегмент приносить найбільше грошей
  • вмієш рахувати, скільки гривень лишається тобі з одного продажу
  • вмієш рахувати, скільки продажів треба зробити, щоб вийти в нуль, і казати, скільки це продажів на день
  • вмієш обирати ціну трьома різними способами й називати причину свого вибору
  • вмієш малювати діаграму просто в коді сторінки й підписувати її реченням, у якому є число
Залишається в тебе: Сторінка ~/www/analytics.html з інлайновим SVG-графіком, мета-тегом fixed-costs і значенням break_even_units, порахованим як ceil(fixed_costs / margin)
зведена таблиця маржа й точка беззбитковості інлайновий SVG замість картинки мета-тег fixed-costs
Відкрити урок 04
05

Принципи дизайну і айдентика в коді

Кольори, шрифти й знак твого продукту стають файлами, а не картинками в графічному редакторі. Ти перевіряєш контраст тексту за формулою WCAG, доводиш його щонайменше до 4,5:1 і записуєш рішення у CSS-змінні в блоці :root. На виході — brand.css і assets/logo.svg, які працюють на всіх сторінках аж до Demo Day.

Після уроку ти

  • вмієш дивитися на чужий макет і називати словами, що саме в ньому зроблено неохайно
  • вмієш розставляти на сторінці головне, друге й третє так, щоб око знаходило їх саме в цьому порядку
  • вмієш підбирати два шрифти, які працюють разом, і задавати рядку таку довжину, щоб очі не збивалися
  • вмієш перевіряти числом, чи добре видно твій текст на твоєму фоні, і виправляти пару, якій не вистачає контрасту
  • вмієш складати файл brand.css зі своїми кольорами й чистити logo.svg від зайвого коду редактора
Залишається в тебе: Файли ~/www/brand.css із дизайн-токенами у :root і ~/www/assets/logo.svg, підключені до index.html і brief.html
CSS-змінні як дизайн-токени контраст WCAG 4,5:1 шрифтова пара і довжина рядка SVG: viewBox і currentColor
Відкрити урок 05
06

Сторітелінг пітчу і HTML-презентація

Бриф, market.csv, analytics.html і brand.css збираються в одну розповідь на три хвилини. Ти розкладаєш її на вісім блоків і робиш дві форми одного змісту: документ pitch.html зі змістом і посиланнями та слайди deck.html з однією думкою на екран. Наприкінці додаєш OG-теги й картку og.png, щоб посилання в чужому чаті відкривалося з картинкою, а не голим рядком адреси.

Після уроку ти

  • вмієш розповідати про свій продукт за три хвилини так, щоб чужа людина зрозуміла з першого разу
  • вмієш починати розповідь із чужої проблеми, а не зі свого застосунку
  • вмієш називати одне число, якому повірять, і відповідати на питання «а звідки воно?»
  • вмієш скорочувати виступ із п'яти хвилин до трьох, не втрачаючи головного
  • вмієш робити так, щоб посилання на твій продукт розгорталося в чужому чаті карткою з картинкою
Залишається в тебе: Сторінки ~/www/pitch.html із <nav id="toc"> без битих якорів і ~/www/deck.html зі слайдами на токенах бренду плюс картка assets/og.png розміром 1200×630
вісім блоків пітчу OG-теги: og:title, og:description, og:image og.png 1200×630 і безпечна зона якорі #id і nav#toc
Відкрити урок 06
07

Системи знань: Notion, Evernote, Obsidian, Markdown

За шість уроків ти ухвалив десятки рішень, і частина з них уже забулася. Сьогодні ти заводиш базу знань продукту: спершу як робочу базу в Notion, потім експортуєш її у теку ~/www/kb/ з вісьмома файлами .md. Кожна нотатка містить одну думку, одне джерело й front-matter із датою, тегами і статусом.

Після уроку ти

  • вмієш писати нотатку, у якій одна думка й одне джерело, а не файл «про все»
  • вмієш розмічати текст у Markdown: заголовки, списки, посилання, код, цитати
  • вмієш додавати нотатці front-matter із дати, тегів і статусу — і знаходити в ньому помилку, через яку він не читається
  • вмієш називати файли так, щоб вони відкривалися за адресою на Linux-сервері
  • вмієш зібрати теку ~/www/kb/ з восьми нотаток і здати її на автоперевірку
Залишається в тебе: Тека ~/www/kb/ з вісьмома файлами .md — у кожного front-matter, теги й ім'я у kebab-case латиницею
Markdown front-matter у YAML атомарна нотатка kebab-case в іменах файлів
Відкрити урок 07
08

Звʼязна база знань: вікі-лінки, MOC, публікація

Вісім окремих нотаток звʼязуються одна з одною. Ти розставляєш щонайменше 12 посилань [[назва]], доводиш кількість битих лінків до нуля, пишеш карту змісту kb/index.md і генеруєш із файлів .md звичайні HTML-сторінки. Після цього база знань відкривається за адресою <логін>.nstekh.uk/kb/ у будь-кого, кому ти даси посилання.

Після уроку ти

  • вмієш звʼязувати нотатки так, щоб із кожної було видно сусідні за темою
  • вмієш складати kb/index.md — сторінку, з якої видно всю базу за пів хвилини
  • вмієш перетворювати файли .md на сторінки сайту й відкривати їх за адресою /kb/
  • вмієш знаходити в базі биті посилання й нотатки, у які не веде жоден вхід
  • вмієш прибирати з публічної теки те, чого чужим бачити не варто: паролі, ключі, чужі особисті дані
Залишається в тебе: Тека ~/www/kb/ зі щонайменше 12 вікі-посиланнями, картою змісту kb/index.md і згенерованими сторінками, які віддаються за адресою /kb/
вікі-посилання [[назва]] зворотні посилання і нотатки без входів MOC — карта змісту генератор mdbuild: .md → .html
Відкрити урок 08
09

Дошки, брейншторм і пріоритезація беклогу

Ідеї перетворюються на список задач із виконавцями й датами. Ти набираєш щонайменше 25 карток без критики, групуєш їх за схожістю, розкладаєш у матрицю «цінність × зусилля» і позначаєш за MoSCoW, що робиш обовʼязково, а що не робиш зовсім. Підсумок — файл tasks.json, який наступного уроку прочитає сторінка roadmap.html.

Після уроку ти

  • вмієш набрати за двадцять хвилин двадцять п'ять ідей і не зарубати жодну на льоту
  • вмієш розкласти ці картки в купки за схожістю, а назви купкам дати вже після
  • вмієш поставити кожну картку в матрицю «цінність × зусилля» й позначити, що робиш обовʼязково, а що не робиш зовсім
  • вмієш вибрати найменшу версію продукту, якою вже можна скористатися, і відрізнити її від «усього, але наполовину»
  • вмієш скласти tasks.json: дія, виконавець, дата й ознака, за якою видно, що задача готова
Залишається в тебе: Файл ~/www/tasks.json, у якому кожна задача описана дев'ятьма полями і який проходить перевірку на коректний JSON
афінне групування матриця «цінність × зусилля» MoSCoW MVP і задача як структура даних
Відкрити урок 09
10

Канбан на даних: WIP, DoD, дорожня карта

Список задач стає процесом. Ти ставиш собі WIP-ліміт — число задач, які дозволено тримати в роботі одночасно, пишеш Definition of Done по пунктах і ділиш задачі на три горизонти: зараз, далі й колись. Сторінка roadmap.html малює дошку в три колонки, не маючи в коді жодної назви задачі: усе вона читає з tasks.json.

Після уроку ти

  • вмієш ставити собі число задач у роботі одночасно й називати причину, чому воно саме таке
  • вмієш писати список умов, за яких задачу дозволено переставити в done, — по пунктах, а не «на око»
  • вмієш ділити свої задачі на три горизонти: зараз, далі й колись
  • вмієш верстати сторінку roadmap.html, у якій жодної назви задачі не вписано руками
  • вмієш читати графік залишку роботи по днях і бачити на ньому затор
Залишається в тебе: Сторінка ~/www/roadmap.html із трьома колонками й блоком віх плюс оновлений tasks.json: підміниш назву задачі у файлі — зміниться сторінка
канбан і WIP-ліміт Definition of Done fetch: сторінка читає JSON burndown-графік
Відкрити урок 10
11

Анкета, форма на сайті та обробник на сервері

Сайт уперше починає приймати дані, а не тільки показувати їх. Ти складаєш анкету з 5–7 питань, верстаєш форму feedback.html, пишеш на сервері обробник ~/bin/form-handler і кладеш відповіді у файл ~/data/responses.csv поза вебкоренем. Далі перевіряєш командою curl, що цей файл справді не завантажується з інтернету.

Після уроку ти

  • вмієш складати анкету з 5–7 питань і викидати кожне, на яке ти не зміниш свій продукт
  • вмієш верстати форму feedback.html, яка відкривається за твоєю адресою
  • вмієш писати на сервері маленьку програму, що приймає відповіді й дописує їх рядком у файл
  • вмієш класти цей файл так, щоб його не міг завантажити перехожий з інтернету, і перевіряти це командою curl
  • вмієш рахувати з відповідей середню оцінку й показувати це число на лендингу
Залишається в тебе: Чотири файли: ~/www/feedback.html, обробник ~/bin/form-handler, приватний ~/data/responses.csv і публічний ~/www/data/feedback-stats.json з кількістю та середнім
POST і CGI-обробник CSV-injection дедуплікація відповідей curl для перевірки доступу
Відкрити урок 11
12

Звіт сам себе пише: шаблон, скрипт, cron

Між приватним CSV і публічною сторінкою стає автоматичний ланцюг. Скрипт bin/report.sh читає responses.csv, рахує кількість відгуків, середню оцінку й розподіл, підставляє числа в заготовку bin/report.tpl.html і кладе готовий report.html у ~/www/. Запускає скрипт cron за розкладом, тож сторінка оновлюється без тебе — і в публічний звіт не потрапляє жодного імені чи коментаря.

Після уроку ти

  • вмієш робити заготовку сторінки, у якій замість чисел стоять помітні порожні місця
  • вмієш писати скрипт, який читає responses.csv і рахує з нього кількість відгуків та середню оцінку
  • вмієш вирішувати, які числа можна показати всім, а які видадуть автора відгуку
  • вмієш ставити скрипт на розклад сервера, щоб сторінка оновлювалася щогодини без тебе
  • вмієш знаходити місце поломки за файлом-журналом, коли скрипт раптом перестав працювати
Залишається в тебе: Три файли й один запис у розкладі: bin/report.tpl.html, bin/report.sh, згенерований ~/www/report.html і рядок у crontab із перенаправленням виводу в лог
шаблон і плейсхолдери cron і crontab -e атомарний запис файлу агрегат без персональних даних (no_pii)
Відкрити урок 12
13

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

Файли, зроблені за дванадцять уроків, уперше стають однією сторінкою. Ти добудовуєш index.html до семи секцій на спільному brand.css і ставиш у нього числа, які сторінка сама забирає з market.csv, tasks.json і звіту, а не вписані руками. Паралельно розбираєш вісім ролей у команді продукту й пишеш team.html, чесно позначивши ті ролі, які виконував сам.

Після уроку ти

  • вмієш розказати про вісім ролей у команді продукту: що людина в кожній ролі робить у понеділок о 9:40
  • вмієш показати на своїх власних файлах, роботу якої ролі ти вже виконував
  • вмієш писати заголовок сторінки, після якого за п'ять секунд зрозуміло, що це й для кого
  • вмієш збирати index.html із семи секцій на спільному brand.css, без жодного мертвого посилання
  • вмієш ставити на сторінку числа, які вона сама забирає з market.csv, tasks.json і звіту
Залишається в тебе: Лендинг ~/www/index.html із семи секцій і живими числами плюс сторінка ~/www/team.html із 3–5 картками ролей і щонайменше трьома навичками в кожній
hero і перші п'ять секунд fetch: числа з market.csv і tasks.json спільний brand.css і навігація без битих посилань вісім IT-ролей
Відкрити урок 13
14

Demo Day: регресія, пітч, зворотний звʼязок

Нового сьогодні нічого не будуємо. Ти проганяєш перевірки check11 1…7 разом і лагодиш те, що зламали правки останніх тижнів, перевіряєш сторінку на екрані завширшки 360 px і виступаєш із трихвилинним пітчем плюс дві хвилини питань. Друга половина оцінки — два письмові відгуки чужим командам.

Після уроку ти

  • вмієш прогнати одразу всі перевірки попередніх уроків і полагодити те, що почервоніло
  • вмієш перевірити свою сторінку на телефоні завширшки 360 px і виправити те, що там розʼїхалося
  • вмієш розповісти про свій продукт за три хвилини так, щоб чужа людина зрозуміла, кому він потрібен
  • вмієш відповісти «я не знаю, але перевірю ось так» замість того, щоб вигадувати число на місці
  • вмієш написати чужій команді відгук із трьох частин: що сильне, що незрозуміле, що варто спробувати
Залишається в тебе: Зелена регресія перевірок check11 1…7, виступ на три хвилини і два файли на сервері: kb/demo-day.md з результатами показу та kb/feedback-given.md із двома відгуками
регресійна перевірка адаптив 360 px аудит: alt, <label>, контраст, og:image структурований відгук із трьох частин
Відкрити урок 14
Твій сайт: /s/твій-логін/ · вхід на сервер: ssh твій-логін@91.219.61.4 · зміна пароля: passwd