惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
Y
Y Combinator Blog
The Cloudflare Blog
V
V2EX
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
P
Privacy International News Feed
S
Securelist
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tor Project blog
P
Proofpoint News Feed
Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
美团技术团队
The GitHub Blog
The GitHub Blog
SecWiki News
SecWiki News
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Security Latest
Security Latest
NISL@THU
NISL@THU
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Secure Thoughts
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
IT之家
IT之家
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy & Cybersecurity Law Blog
A
About on SuperTechFans
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
Spread Privacy
Spread Privacy
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Security Affairs
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Личный опыт: Как я учил языки и написал свою программу для запоминания слов
d_n_trunov · 2026-05-03 · via Все публикации подряд на Хабре

Эта статья о многолетнем личном опыте самостоятельного изучения иностранных языков, истории становления метода, а также о создании собственной программы для запоминания слов: как создавалась и какая получилась. Возможно, результаты опыта покажутся кому-то интересными или даже полезными.

Петров, Lingualeo и другие

Мои первые попытки самостоятельно заниматься языками были несколько неудачными и не дали особого результата: не было внятной мотивации, кроме «хочу знать несколько языков», занятия были нерегулярными, а способы занятий постоянно менялись. Уже хотелось всё бросить, но многое изменила всего лишь одна услышанная фраза. Полиглот Дмитрий Петров в одной из своих передач сказал приблизительно следующее: «Мы люди взрослые и вряд ли обладаем избытком свободного времени, но 5 минут в день на занятия языком может найти каждый». Вот чего не хватало — понятного критерия регулярности и объёма: каждый день по 5 минут. Почти сразу попался и сайт Puzzle-English, на котором удалось закрепить привычку заниматься по 5 минут каждый день (в былые времена там можно было минут 5 заниматься бесплатно).

Далее абстрактная мотивация «хочу знать языки» преобразовалась в более внятную «хочу читать на английском без словаря». К сожалению, Puzzle-English делал упор на грамматику и восприятие на слух (тоже полезно, но для меня второстепенно), а вот в чтении особо не помогал. Зато вскоре попался другой сайт: Lingualeo. Здесь уже можно было читать самые разные тексты (статьи, рассказы, книги), по одному клику открывать переводы отдельных слов и целых предложений, добавлять слова в свой словарь и учить их с помощью разнообразных упражнений. Заниматься там было настолько интересно и несложно, что даже не хотелось ограничиваться 5 минутами в день. А ещё Lingualeo приучил к тому, что новые слова нужно всё-таки учить, пусть даже не все подряд, а самые интересные и часто попадающиеся. И уже через несколько месяцев это дало первые заметные результаты.

В общем, Lingualeo был отличным сервисом (до сих пор считаю его одним из лучших) и очень помог запомнить несколько тысяч наиболее частых слов. Однако для запоминания более редких слов понадобилось больше внимания уделять контексту и изменить подход к самому запоминанию, отказавшись от интервальных повторений, а взамен учить новые слова несколько дней и потом к ним не возвращаться (о причинах — ниже). Для такого подхода Lingualeo уже не очень удобен и не только он — приложения наподобие Quizlet или Anki в этом смысле тоже не дают каких-то особых преимуществ.

О запоминании слов

На этом не часто акцентируют внимание, но интервальные повторения работают лучше, если слова (или что там нужно повторять) изначально тщательно заучить. Значит, нужно или потратить много времени на заучивание сразу, или заучивать слова несколько дней, тратя на это 3-5 минут в день (если слов не слишком много). Потом их можно повторять через интервалы, а можно полагаться на то, что они снова попадутся в текстах. Да, особо редкие слова часто забываются, но проще их снова взять на заучивание, когда попадутся в следующий раз, а не пытаться вспоминать через определённые интервалы времени.

Так что для себя я определил, что новые слова нужно тренировать 3-4 дня, в том числе сегодняшние с вчерашними и позавчерашними, а по мере добавления более новых слов самые старые из тренировки исключать. На практике я также убедился, что слова в контексте запоминаются лучше и тренировать их интереснее, чем просто слова с переводами. Значит, контекст нужно или помнить, или добавлять к слову в виде примера из самой книги и этот пример должен отображаться в тренировке вместе с самим словом (сразу, а не после выбора ответа).

В приложениях и сервисах для изучения языков и запоминания слов я стал искать именно возможность тренировать вместе добавленные за недавние 3-4 дня слова, причём добавлять их с примерами, которые бы отображались во время тренировки. Найти такое приложение было не так просто и, с учётом навыков любительского программирования, показалось проще написать собственную программу — простую и с минимумом функций.

Своя программа: формат и загрузка слов

Сразу возник вопрос: в каком формате хранить слова, как их добавлять и редактировать? Недолго думая пришёл к выводу, что самый простой формат — текстовый. Если слова будут храниться в обычном текстовом файле, то их можно легко редактировать в любом удобном текстовом редакторе. Нужно было только сразу смириться с тем, что программа будет открывать файлы только для чтения и никак не отмечать, сколько раз и когда было на тренировке то или иное слово. С другой стороны, это упрощало реализацию программы, сделав случайный выбор слов для тренировки.

Следующий вопрос: как отделять слова друг от друга и от своих переводов и примеров? Выглядит естественно, если каждое слово будет находиться в отдельной строке, а от своего перевода отделяться символами « - » (пробел-минус-пробел на клавиатуре). Пример было решено отделять от слова с переводом символами «//» (как комментарии в Си-подобных языках программирования). То есть, слова в файле могут выглядеть примерно так:

exempt - освобождённый // exempt from the end-of-term tests
plea - просьба; призыв // this could be a plea for attention
twinkle - сверкать; мигать // her eyes twinkling

Остался один вопрос: если нужно тренировать только новые слова (добавленные в ближайшие дни) и не удалять старые, то как отличать новые от старых? Было решено помечать блок новых слов специальной меткой «.new» (в отдельной строке), чтобы программа считала все слова после этой метки новыми.

Реализация в программе чтения такого файла несложная: файл читается построчно, в каждой строке ищутся разделители « - » и «//», по которым и отделяются слова, переводы и примеры. Каждое отдельное слово, перевод и пример (даже пустой, если его нет) добавляются в соответствующие динамические массивы и запоминается количество прочитанных слов. Если встретилась метка «.new», то нужно запомнить индекс первого «нового» слова.

Тренировка «Слово-Перевод» и её режимы

Итак, формат выбран, слова из файла загружаются и теперь можно подумать о реализации простой тренировки. Сразу напрашивается вариант «Слово-Перевод»: отображается слово и нужно выбрать правильный перевод из нескольких возможных вариантов. Выбор из 4-6 вариантов хорош для тестов и проверок, но при запоминании множество неверных вариантов только отвлекает, потому было решено оставить всего два: правильный и неправильный (в случайном порядке).

А сколько слов нужно проходить в одной тренировке? В Lingualeo подобные тренировки включают до 10 слов и это кажется уместным. Но если в файле будет 11-12 новых слов, то нужен выбор: запустить 10 случайных (из новых) или все новые. Что и было реализовано в соответствующих режимах: «10 новых» и «Все новые». Для возможности закрепления слов из всего файла (а не только новых) реализованы также режимы «10 случайных» и «Новее чаще». Во втором случае на тренировке тоже будет 10 слов, но чем ближе они к концу файла, тем чаще будут попадаться.

Значит, в окне тренировки нужно отобразить номер слова, само слово и две кнопки с вписанными вариантами перевода (один из них правильный), на которые нужно нажимать, чтобы программа засчитала выбор. Здесь же под кнопками можно отобразить пример, если он есть. Так это выглядит в реализованной программе:

Тренировка "Слово-Перевод"

Тренировка "Слово-Перевод"

Пара слов о реализации. Для подготовки тренировки программа создаёт массив индексов слов и перемешивает их в случайном порядке (в режиме «Новее чаще» выполняется более сложное перемешивание). Для каждого из 10 слов (или сколько их будет на тренировке) берётся очередной индекс и по нему из соответствующих массивов берутся слово (отображается вверху окна), перевод (вписывается в одну из двух кнопок) и пример (отображается внизу окна). Ещё один индекс вычисляется случайно (но обязательно не равный индексу текущего слова) и по нему берётся второй (неправильный) перевод.

Тренировка «Ввод слов»

Слишком большое количество тренировок для простой программы кажется излишним, но вот тренировки с вводом слов всё-таки не хватает. Реализовать её несложно: отобразил перевод, пользователь вводит свой вариант слова, а программа сравнивает его с «правильным» (который прочитан из файла) и либо принимает, либо сообщает об ошибке. Вот только без подсказок легко попасть в ситуацию, когда правильное написание забылось, а ни один из написанных вариантов программа не принимает. В таких случаях хочется просто закрыть программу и больше её не открывать. Нет, лучше уж отобразить подсказки, например, в виде двух вариантов слова, из которых один правильный, а второй случайный. Так это выглядит в реализованной программе:

Тренировка "Ввод слов"

Тренировка "Ввод слов"

То есть, в данной тренировке нужно идентифицировать правильный вариант слова и набрать его на клавиатуре. Возможно, это несколько «ленивый» способ письменной тренировки, но и он позволяет запоминать слова, в том числе их написание (особенно после нескольких ошибок). И да, здесь примеры не отображаются, поскольку являются излишними по отношению к отображаемым вариантам слова.

Результаты и выводы

Конечно, данная программа не идеальна и мне самому, например, не хватает в ней озвучки слов, которая была в Lingualeo и Quizlet. Также есть проблемы с другими языками: например, испанское слово «pequeño» сложно ввести с английской клавиатуры из-за отсутствия на ней символа «ñ», хотя в других приложениях нетипичные символы размещаются в виде кликабельных кнопок вблизи поля для ввода. Но свою главную задачу программа всё же выполняет: позволяет легко добавлять слова с переводами и примерами, тренировать только новые и при желании выборочно закреплять старые слова, а примеры отображаются на видном месте в окне тренировки.

Результаты занятий следующие: за несколько лет занятий в Lingualeo я поднял свой уровень английского где-то с A2 (Pre-Intermediate) до B2 (Upper-Intermediate). Занимаясь ещё несколько лет вне Lingualeo с тренировкой новых слов в собственной программе удалось поднять уровень английского уже с B2 до C1 (Advanced). Это при занятиях минут по 30 в день (от 5 минут и далее по возможности и вдохновению).

И общие выводы по изучению языков.

  • Регулярность даёт результаты, если заниматься хотя бы по 5 минут в день (и больше, если есть понятная и достаточная мотивация).

  • Новые слова нужно учить, пусть даже некоторые, а не все подряд.

  • Лучше всего слова запоминаются в контексте.

  • Интервальные повторения не обязательны, если учить слова несколько дней и потом они будут попадаться при использовании языка (при чтении, общении и т. д.).

P.S. Чуть не забыл: исходный код описанной программы для запоминания слов доступен на GitFlic (написана на C++ с использованием Qt).