Опубліковано 29 травня 2025 р.

Дизайн

Як зробити текст на комп’ютері простішим для читання

Відмінність типографії для екранів та для друку

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

У цій статті поділюся частиною рекомендацій із книги «Typographie Kompakt» від Макса Боллваґе, які допомогли мені покращити оформлення блогу.

Схожість та відмінності

Загальні принципи дуже схожі, бо вони базуються на законах ґештальту та інших спостереженнях людського сприйняття тексту. Наприклад, від довгих стрічок ми швидко втомлюємось, бо губиться початок наступного рядка. Якщо відстань між ними надто мала, то мозок групує слова вертикально, а не горизонтально. А якщо надто велика — речення перестають бути пов’язаними між собою.

Проте треба враховувати, що на папір падає світло, коли як екран — випромінює. За рахунок цього той самий розмір тексту буде трошки «розмитішим» на комп’ютері.

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

Що варто зробити

Тут я коротко перекажу загальні рекомендації Макса Боллваґе. Дотримуючись їх, навіть люди без дизайнерської освіти покращать вигляд своїх статей, есе та робіт.

Почнемо з розміру шрифту. Якщо у вас він 8-12 точок, спробуйте збільшити його принаймні на 2 пункти. Для великих об’ємів тексту автор рекомендує хоча б 14 точок.

Тепер налаштуйте відстань між стрічками. Для заголовків треба їх зменшувати, а для звичайних абзаців — збільшувати. На комп’ютерах бажано встановити 115-125% та 140-150% від розміру шрифту відповідно.

Для відстані між словами працює схоже правило. Зменшіть її в заголовках та збільшіть її в абзацах. Зазвичай достатньо зміни в 0,05-0,1 точки.

Наостанок обмежте довжину рядка. Для друку це 60-70 символів (разом із пропусками та розділовими знаками), а для екранів — 40-50.

І теперь повідомлення для «фанатів» вирівнювання за шириною. Будьте готові вручну корегувати розміри деяких пропусків між словами. Інакше можуть утворитися «прірви» посеред тексту, через які слова не сприйматимуться частиною одного речення.

Короткий підсумок

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

Рекомендації:

  • Збільшіть розмір шрифту, якщо багато тексту.

  • Не робіть рядки надто довгими. До 60 символів має бути достатньо.

  • Чим більший шрифт, тим менша відстань між стрічками та cловами, і навпаки. Звертайте увагу, щоб абзаци сприймались цілісно.

  • Не «спамте» вирівнюванням за шириною, особливо якщо утворюються негарні «кілометрові» пропуски.


Опубліковано 16 травня 2025 р.

Розробка

Емуляція сервера для додатків Electron

Під час розробки Electron-додатків часто доводиться мати справу з міжпроцесовою взаємодією (inter-process communication, IPC). Але є альтернатива: можна використовувати знайому з веб-розробки архітектуру клієнт-сервер. Не запускаючи локальний сервер.

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

Початковий код доступний у моєму репозиторії. Це рішення також доступне як модуль для Node.js на npm. У кінці статті є короткий приклад використання бібліотеки.

Структура

  • Сервер: обслуговує API-запити та, можливо, надсилає фронтенд-код;

  • Electron: запуск додатку, як зазвичай;

  • Проксі: перехоплює запити до “сервера” та емулює відповіді.

Залежності

Для створення сервера я скористаюсь Express.js, а для емуляції запитів — light-my-request:

npm install express light-my-request

Сервер

Задля простоти наш сервер матиме лише одну кінцеву точку API — /api/ping, що відповідатиме стрічкою "Pong".

// server.js
import express from "express"

export const server = express()
server.get("/api/ping", (request, response) => {
    response.setHeader("Content-Type", "text/html")
    response.send("Pong")
})

Можна також налаштувати сервер, аби він відправляв файли фронтенду або навіть відправляв запити до сервера вашого бандлеру (наприклад, Vite).

Electron

Поки в нас ще не реалізован проксі, але ми хочемо спочатку зрозуміти, як він буде використаний. Зараз буде шаблонний код, але зверніть увагу на виклик protocol.handle. Він дозволяє перехопити запити, що використовують конкретний протокол (у нашому випадку HTTP).

// app.js
import { app, protocol, BrowserWindow } from "electron"
import { createProxy } from "./proxy.js"
import { server } from "./server.js"

const baseURL = new URL("http://example-app.local")

function createMainWindow() {
    const window = new BrowserWindow()
    const url = new URL("./api/ping", baseURL)
    window.loadURL(url.toString())
}

function onAppReady() {
    // Тут ми реєструємо наш проксі
    protocol.handle(
        // Ми не хочемо, щоб у кінці була двокрапка
        baseURL.protocol.slice(0, -1),
        createProxy(baseURL, server)
    )

    createMainWindow()
}

function onAllWindowsClosed() {
    if (process.platform !== "darwin") {
        app.quit()
    }
}

function onActivated() {
    if (BrowserWindow.getAllWindows().length === 0) {
        createMainWindow()
    }
}

app.whenReady().then(onAppReady).catch(console.error)
app.on("window-all-closed", onAllWindowsClosed)
app.on("activate", onActivated)

Проксі

Задачі нашого проксі:

  • емуляція запиту до бекенду, якщо хост в URL відповідає URL нашого “сервера”;

  • виконати нормальний запит в іншому випадку.

Метод createProxy створює метод для обслуговування кожного HTTP-запита. Відповідь буде об’єктом типу Response. Ось загальний скелет:

// proxy.js

// Щоб виконати нормальний запит
import { net } from "electron"
// Для емуляції запиту до бекенду
import inject from "light-my-request"

export function createProxy(baseURL, server) {
    return request => {
        const url = new URL(request.url)

        // Якщо URL хосту не відповідає адресі нашого емульованого сервера
        if (url.hostname !== baseURL.hostname) {
            // Виконуємо нормальний запит.
            return net.fetch(request)
        }

        // Інакше ми хочему емулювати запит до нашого севрера.
        return emulateRequest({ server, baseURL, url, request })
    }
}

Тепер час визначити метод для емуляції самого запиту. Просто викликаємо inject із бібліотеки light-my-request, перетворюючи типи аргументів і відповіді для сумісності.

const cacheDisablingHeaders = {
    "Cache-Control": "no-cache, no-store, must-revalidate",
    "Pragma": "no-cache",
    "Expires": 0,
    "If-None-Match": null
}

async function emulateRequest({ server, baseURL, url, request }) {
    // Емулюємо запит.
    const response = await inject(server, {
        // Створюємо об’єкт з параметрами для бібліотеки
        // на базі об’єкта Response
        method: request.method,
        url: request.url,
        query: url.search,
        remoteAddress: new URL("/", baseURL).toString(),
        body: Buffer.from(await request.arrayBuffer()),
        // Нам треба перетворити заголовки запиту
        // в потрібний формат і вимкнути кешування
        // (дивитись нижче).
        headers: {
            ...Object.fromEntries([...request.headers]),
            ...cacheDisablingHeaders
        }
    }).end()

    // Перетворюємо відповідь в об’єкт типу Response.
    return new Response(response.body, {
        headers: response.headers,
        status: response.statusCode,
        statusText: response.statusMessage
    })
}

Як ви помітили, ми вимикаємо кешування для цих локальних запитів. Це тому що Node.js видає помилку, коли створюється об’єкт Response зі статусом 304 Not Modified. Не впевнений, чи є кращий метод обходу цієї помилки, але вказане рішення працює.

Результат

Якщо виконаєте npx electron app.js, ви побачите наступне вікно:

loading-ag-132

Бібліотека

Для перевикористання цього підходу я опублікував бібліотеку, що робить усі ці кроки замість вас. Для початку встановіть її у свій проект:

npm install electron-client-server electron

Потім імпортуйте в головний файл:

import { applyProxy } from "electron-client-server"

Визначте, за якою адресою буде доступний емульований сервер:

const baseURL = new URL("http://localhost:5173")

Тепер просто застосуйте проксі, коли додаток буде готовий для виконання:

app.whenReady().then(() => {
    applyProxy("http", baseURL, server)
    // ...
})

Я протестував це рішення за допомогою Express. Fastify теж має спрацювати. І, скоріш за все, інші бібліотеки для створення серверів.

Якщо знайшли баг або маєте пропозицію про покращення, прошу відкрити питання на сторінці репозиторію.


Опубліковано 10 травня 2025 р.

Мови

Популярні помилки в україномовних публікаціях

Читаючи книги та статті, я нерідко помічаю одні й ті самі помилки. Настав час їх виправити. У більшості це дрібниці, але їхня висока частота впливає на враження від текстів. Іноді аж плакати хочеться.

Попереджаю: я не філолог. Я не маю нічого проти особистого стилю. Але коли контекст вимагає літературну українську, краще уникати наступних помилок.

Уживання у  та в

Це одне з правил милозвучності. Вони потрібні, аби ніхто не ламав язик, намагаючись сказати речення вголос. Якщо сформулювати надто спрощено: намагайтеся чергувати голосні і приголосні.

Основні випадки, коли треба писати у, а не в:

  1. на початку речення, якщо далі приголосний;

  2. між приголосними;

  3. якщо наступне слово починається на в або приголосний + в.

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

Як не требаЯк треба
В нас вдома багато книжок.У нас удома1 багато книжок.
У академії нас навчають програмуванню.В академії нас навчають програмуванню.
Я хочу поїхати в Відень.Я хочу поїхати у Відень.
Я ще ніколи не бувала у Ані в гостях.Я ще ніколи не бувала в Ані в гостях.
Він написав в своєму щоденнику, що …Він написав у своєму щоденнику, що …

1 — На ЗНО/НМТ це єдина правильна форма. Проте в реальному житті нічого не трапиться, якщо напишете «вдома».

Дієприкметники, що не існують

Якщо ви хочете назвати цей розділ «Неіснуючі дієприкметники», то в мене для вас погана новина. Дієприкметників із суфіксами -учи, -ючи, -ачи, -ячи в літературній українській майже нема. У більшості вони лише у фразеологізмах.

Як не требаЯк треба
Керуючий відділом.Керівник відділу.
Спостерігаючий за перебігом експерименту вчений.Учений, який спостерігає за перебігом процесу.
Шампунь зі зволожуючим ефектом.Шампунь зі зволожувальним ефектом.

Якщо не впевнені, користуйтеся словниками або “викручуйтеся” за рахунок підрядних речень.

Відмінювання іменників

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

Як не требаЯк треба
Люблю гуляти по великим лісам.Люблю гуляти по великих лісах.2
Для виконання цього завдання нас поділили по групам.Для виконання цього завдання нас поділили по групах.
Діти розійшлися по класам.Діти розійшлися по класах.

2 — Ця версія допустима, але тут було б краще без прийменника та в орудному відмінку.

Рекомендую зайвий раз заглянути в словник, якщо не впевнені щодо закінчення.

Посилання на інші джерела

Тут нема багато варіацій прийменників. Тому просто запам’ятайте, як правильно: згідно з, відповідно до, за.

Як не требаЯк треба
Згідно законодавства…Згідно із законодавством…
Відповідно умовам користування сервісом…Відповідно до умов користування сервісом…
У відповідності до плану…Відповідно до плану…
По правилах етикету не можна говорити з повним ротом.За правилами етикету не можна говорити з повним ротом.

Короткий підсумок

  • Перевіряйте вголос читабельність своїх речень, щоб не різало вухо.
    В усіх школах; у своїй кімнаті.

  • Оминайте дієприкметників із суфіксами -ачи, -ячи, -учи, -ючи.
    Зволожувальний замість зволожуючий; який спостерігає замість спостерігаючий.

  • Пишіть -ах/-ях замість -ам/-ям у місцевому відмінку.
    По групах; по вулицях.

  • Просто завчіть допустимі форми посилання на ресурси.
    Відповідно до, згідно з, за.


Опубліковано 20 листопада 2024 р.

Навчання

Перші тижні в університеті

Щойно закінчився мій другий тиждень навчання в німецькому університеті! Зараз поділюсь враженнями та розповім детальніше, як усе відбувалось.

Орієнтаційні дні

Усе почалось ще в кінці вересня. Старшокурсники організували зустріч, де розповіли про все від реєстрації на предмети до подій для нетворкінгу. Після цієї зустрічі нас ще поділили за навчальними програмами (бакалаврат, магістратура і т. д.), відправили на тур кампусом, а в кінці влаштували гриль та нетворкінг. Було неймовірно страшно і незручно підходити до незнайомих людей і намагатися говорити, але таким чином я обмінявся контактами з некількома однокурсниками й тепер регулярно спілкуюсь із ними.

А ще всім подарували два шопери з подаруночками! Мені дуже сподобалось, що поклали маленьку наліпочку для протирання екранів. Усе-таки ми часто маємо справу з ноутбуками та телефонами, тому треба турбуватися про чистоту своїх пристроїв.

Два шопери, пляшка для води, ручки, блокнот, багато бюлетенів, закладинки та багато іншого!
Два шопери, пляшка для води, ручки, блокнот, багато бюлетенів, закладинки та багато іншого!

Загалом, подія пройшла успішно! І нові знайомства, і подаруночки, і багато важливої інформації для початку навчання. І найголовніше, що є активності ще до початку лекцій! До них усе-таки залишалось ще майже два тижні…

“Розігрів” з математики

Наступні два тижні старшокурсники проводили лекції та практичні з математики. Розбирались наступні теми:

  • Теорія множин

  • Математичні позначення

  • Логіка виразів і логіка предикатів

  • Функції

  • Математична індукція

  • Комплексні числа

Ще був день повторення шкільної програми, де ми розв’язували задачі з різних тем і могли поставити запитання за необхідності. По суті ці всі теми вивчаються під час самої бакалаврської програми, але цей міні-курс мав за ціль підготувати нас до початку семестру.

Лекції в більшості були якісними. Вони подомогли мені ознайомитися з німецькою термінологією та трохи освіжити теми в голові. До того ж я подружився з декількома людьми. Із недоліків можу сказати, що на одній-двух практичних активність була мінімальна. Але це нормально, бо першокурсники ще трохи налякані, а старшокурсники все-таки не професори зі стажем.

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

Курс з Linux

Тепер переходимо до курса для інформатиків. Він тривав два дні з 11 до 17. Нас учили працювати з командною стрічкою у Linux, бо нам нерідко треба буде працювати з університетськими серверами. Як мені відомо, викладачі часто просять перевіряти наші програми на серверах до здачі домашніх робіт. До того ж для написання наукових робіт можна використати сервери, оскільки на деяких із них терабайт оперативної пам’яті та неймовірно потужні відеокарти!

Якщо вам цікаві деталі, курс покрив підключення до серверів через SSH, а також роботу з оболонкою bash і деякими консольними програмами. Хоч я вже тривалий час користуюсь терміналом, усе одно отримав цілком нові знання. Наприклад, уперше скористався програмою man для читання мануалів, навчився пересилати файли між комп’ютерами за допомогою SSH і нарешті ознайомився з написанням скриптів мовою bash. А ще спостерігання за Linux-ентузіастами серед студентів трохи “промиває” мозок: мені захотілось погратися з різними дистрибутивами. Узагалі це цікаво, але поки не готовий цим займатися.

Dies academicus

Dies academicus — це день, коли офіційно нема лекцій. У зимовому семестрі це зазвичай безпосередньо перед початком лекційного періоду. У цей день часто проводять перші офіційні зустрічі першокурсників, де розповідають важливу інформацію для початку навчання (включаючи реєстрацію на предмети, роботу в групах і правила безпеки). Ще такий день є в літньому семестрі, але він у більшості десь посеред лекційного періоду. Лише не знаю, чому і навіщо він тоді.

У нас, інформатиків, зустріч пройшла доволі швидко, але все одно переповнила наші мізки інформацією. У центрі міста ще проводили події для всіх “новеньких” в університеті, потім багато хто пішов у бари та ресторани. Я не приєднався, бо надав перевагу каві з друзями на нашому кампусі.

Перші лекції та практичні

Я так нетерпляче чекав на початок навчання, це просто слова не передати! Уже був налаштований радісно “влітати” та “поглинати” книги одну за одною. Але тут семестри починаються спокійно: на першому тижні лише лекції, а лише на другому починаються практичні. До того ж першокурсникам требя “втягнутися” в систему, тому нема переповнення дедлайнами. Я здивувався такому підходу, бо звик до інтенсивного початку. Тут навчаки поступово вводять у навчання. Мені лише зараз прийшла думка, що це як спринт проти марафону: якщо хочеш пробігти більшу дистанцію, краще не віддавати всі свої сили на початку.

На перших лекціях пояснювали організаційні питання та проводили вступ у предмети. У мене було лише три-чотири лекції за весь перший тиждень. Лекції типу «Основ програмування» та «Вступ в теоретичну інформатику» пропонуються ще й математикам, але як дисципліна за вибором. Через це аудиторії ломилися від студентів і було складно знайти вільне місце. Тим не менш, чим ближче кінець семестру, тим просторіше стає в залах. Тому проблема скоро зникне ;-).

Взагалі «Вступ у теоретичну інформатику» мене здивував, бо лекція спочатку здавалась доволі спокійною, але потім почався такий інтенсив! Поки що це мій улюблений предмет у цьому семестрі.

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

Враження та очікування

Я такий радий, що нарешті досягнув своєї цілі: я вступив і можу з головою погрузитися в інформатику! Уже нема необхідності стільки часу приділяти німецькій, хоча досі є, над чим працювати.

Ще було цікаво відчути інший підхід до першокурсників! Не думав, що старшокурсники будуть так активно взаємодіяти з нами і проводити зустрічі для нашої адаптації. До того ж тут протягом семестру вивчають значно менше предметів, ніж в українських університетах. Але навчання все одно насичене та цікаве.

Сподіваюсь, що в цьому семестрі буду частіше спілкуватися з іноземцями, поповню своє оточення програмістами-ентузіастами и збережу в пам’яті багато приємних моментів! Бажаю всім цікавого та легкого навчання!


Опубліковано 8 вересня 2024 р.

Мови

Ресурси і методи для вивчення німецької

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

Не думайте, що ви повинні дотримуватись усіх рекомендацій. Оберіть те, що можете легко імплементувати у своє життя, і регулярно робіть це.

Словниковий запас

Що вчити?

На самому початку вивчення будь-якої мови необхідно вивчити базові слова, щоб могти взагалі щось сказати. Існують списки найвикористовуваніших слів, але будьте з ними обережнішими: іноді вони складені не найкращим чином (наприклад, можуть зустрічатися форми дієслів замість інфінітивів). Бачив на Reddit, як хвалять оцей список слів. Він зроблений английською, але має хороший вокабуляр для початківців. Просто перекладіть слова цільовою мовою та вивчайте.

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

Імовірно, буде корисно об’єднати ці два підходи. Бо хто не хоче швидко заговорити?

Як учити?

Флеш-картки — дуже ефективний інструмент для вивчення різних видів інформації. З ними я вчив китайську, частково английську, а потім і німецьку. Це повноцінна система інтервального повторення, що дозволяє закріпити слово в пам’яті надовго. Пишіть з однієї сторони слово чи вираз, а з іншої намалюйте картинку чи напишіть визначення тією ж мовою. Бажано додати хоч один приклад вживання слова в реченні, щоб не було плутанини, як раптом забудете слово. Можете завантажити додатки типу Anki, Quizlet, Mochi або скористатися паперовими картками і ручкою.

Старайтеся частіше використовувати нові слова у своїх реченнях. Це покращить розуміння слова і заодно збагатить ваше мовлення. На інтенсивних курсах німецької мені часто не вистачало часу на створення флеш-карток, тому старався просто використовувати нові слова. Із 60 слів за урок «зберігалась» у найкращому випадку чверть, зато якісно, бо викладач міг скоригувати помилки. Хоча деяким одногрупникам/-цям допомагало навіть просте перечитування списка слів — кожному своє.

Є варіант активно «споживати» контент цільовою мовою та дивитися визначення слів, які ви забули чи не знаєте. Якщо слово дійсно часто використовується, воно неодноразово впадатиме вам в око. І сподіваємось, що на сьомий раз гортати словник не доведеться.

Граматика

На початку користувався German Grammar Drills, а пізніше забув про цю книгу і почав використовувати додаток bunpo (там різні мови є, зокрема і німецька). І там, і там пропонуються граматичні вправи.

Теоретично, на певному моменті вивчення граматики все має скластися в один цільний пазлик. Але не засмучуйтесь, якщо у вас це ще не трапилось, бо на це потрібен час.

Читання

На самому початку я не читав книги німецькою, але після приїзду до Німеччини довелось регулярно мати справу з їхніми сайтами. Якщо хочете одразу почати читати, можете пошукати в інтернеті «Graded German Readers». Це запропонує вам книжки для різних рівнів. Ще можете спробувати книжки за методом Іллі Франка. З німецькою такого досвіду не маю, але я пробував так читати китайські народні казки.

Коли не вистачало бажання чи енергії вчити німецьку, я проходив хоча б один урок на Дуолінго. Це хоч якась практика мови. Плюс нові приклади речень. Особливо для тренування читання люблю їхні історії. Там ви побачите повноцінні діалоги.

Якщо ви в німецькомовному регіоні, то книжки німецькою набагато доступніші. Пошукайте книжки на теми, що вам цікаві, але в той же ж час не надто складні. Зазвичай рекомендують художню літературу, але в мене все почалось з лекційних слайдів з комунікаційних систем. Спочатку було складно, але після закінчення курсу B2 стало набагато простіше.

Коли не хочете витрачати гроші в книгарнях, пошукайте в бібліотеках полиці з книжками, котрі можно забрати безкоштовно. А як книга здаватиметься занадто складною чи простою, можете повернути. Або просто орендуйте книжки в бібліотеці.

Якщо не маєте можливості знайти книжки німецькою у вашому регіоні, можете купувати їх в електронному варіанті навіть на іноземних сайтах.

Письмо

Якщо ви на самому початку, пробуйте складати прості речення. Дуолінго буде непоганим доповненням. Хоча там іноді трапляються фрази, котрі в житті ніколи не говорять, усе-таки це практика. У підручниках же ж також не завжди вчать тому, що є в дійності.

Спробуйте вести щоденних німецькою. Записуйте свої плани, події за день чи те, чого душа бажає. Нехай це навіть буде з перекладачем чи словником, але це буде практика і словарного запасу, і граматики, і риторики. Заодно підучите щоденні слова.

Є варіант використовувати генератор випадкових тем для творів та обрати ту, про яку ви теоретично зможете написати. У кінці можете попросити когось перевірити ваш твір чи скористатися онлайн-сервісами. Якщо раптом вирішите використовувати мовні моделі, попросіть модель виправляти лише помилки, щоб есе не переписалось зовсім іншими словами.

Аудіювання

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

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

Знову згадаю історії на Дуолінго. Зазвичай там не лише текстовий формат, а і вимова. У діалогах щоразу різні персонажі, і ситуації зазвичай смішні, тому нудно бути не має.

Говоріння та вимова

Для мене це одна з найскладніших частин. На письмі можна подумати, а під час говоріння мало часу на підбір слів. Але головне — часта практика. Один із моїх улюблених методів — складати в голові (місцямі випадкові) речення цільовою мовою з тих слів, що знаю. Іноді роблю це під час прогулянок, відпочинку чи навіть виконання щоденних задач.

Лише на користь піде говоріння з носіями. Бажано попросити їх виправляти за можливості помилки. І не переходьте до англійською за першого непорозуміння. Якби я не старався скрізь говорити німецькою, то навряд чи навчився би швидко висловлюватись. Якщо ваші друзі теж вивчають німецьку, практикуйтеся з ними. Або знайдіть носія на Tandem, HelloTalk, Speaky чи подібних сайтах.

Для роботи над вимовою знаю поки лише методику тіньового повторення («shadowing»). Треба увімкнути якусь аудіострічку, прослухати якийсь маленький відрізок і спробувати одночасно повторити за носієм, намагаючись звучати якомога схоже. Якщо вам цікаво, пошукайте в інтернеті відео чи статті про тіньове повторення. Позбутися акценту часто нелегко, але головне — не здавайтесь. Звичайно, якщо для вас це важливо.

Висновки

Стаття вийшла чималенька. Сподіваюсь, що ви відібрали для себе певні методи чи ресурси. Я записав більшість підходів, які знаю, і намагався запропонувати принаймні декілька альтернатив. Бажаю успіхів у вивченні мови!