Всем привет, меня зовут Алексей. Я давно увлекаюсь программированием, хоть это и не является моей основной профессией. А ещё где-то год назад я увлёкся изучением английского языка.

Много статей написано о том, как учить английский язык. Но если ты владеешь навыками программирования, стоит ли тебе пользоваться готовыми решениями? Ведь можно самому написать программы для изучения языка, удобные именно для тебя.

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

Конечно, можно пользоваться бумажными карточками, но они тоже имеют много недостатков. Главные из них: невозможно прослушать произношение слова (только прочитать транскрипцию) и нельзя быстро открыть слово например в словаре Лингво или где-нибудь ещё. В общем учить по бумажным карточкам я посчитал плохой идеей в 21 веке.

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

Все программы и файлы о которых будет рассказываться в этой статье лежат в архиве: yadi.sk/d/A4UHOXCTpW9eow

image

Первым что я написал стала программа для изучения английских слов. Главной идеей стал принцип бумажных карточек. Я попытался сделать так удобно, будто я работаю с бумажными карточками. Но теперь у меня появились возможности которые даёт компьютер, и это очень круто!

В программу нужно перетащить файл в TXT который содержит список слов (каждое слово на новой строке). Для примера список из 2500 самых популярных слов лежит в архиве. Представьте что этот список (файл TXT) это стопка слов. Удобство в том что как и в жизни можно разработать собственную систему изучения и повтора слов, и перебрасывать слова между файлами. Например, сегодня вы выучили 15 слов, они находятся в списке в название которого входит дата следующего повторения и номер этого повторения (например, 15.01 1). Вы повторили слова 15 января, теперь слова нужно повторить через два дня. То есть файл можно назвать 17.01 2. Далее эти слова можно повторить через 4 дня, затем через 8, а потом их можно вбросить в файл «ВЫУЧЕНО.txt» и повторять вместе с другими выученными словами, например, раз в месяц.

Таких списков можно открыть одновременно до трёх. Можно перетаскивать слова между списками потянув мышкой за слово и отпустив его над другим списком. Можно это сделать через Блокнот, нажав кнопку «open» а после редактирования кнопку «refresh». Можно перетасовывать файлы в списке, нажав кнопку «Рандом». Нажав * слово попадёт будет в списке «Отложить». Одноимённая кнопка откроет этот список (это удобно когда хочешь позже вернуться к слову).

Есть список слов «ЗАБЫЛ», в него нельзя вбросить другой файл. И при переносе в него слов они не перемещаются из исходного списка, а копируются в него. Я использую этот список для слов которые хочу чаще повторять.

Щёлкнув по слову мы увидим это слово и его транскрипцию если она есть в базе (файл Transcription.txt, там 18000 слов). Также если в папке «sound» будет файл слово.wav то появится кнопка озвучить слово. (Где взять слова в формате wav? Намекну что можно попробовать вытащить из AB… Lin… но я этого не говорил). Если озвучки слова нет то появится кнопка голосового ассистента (я использовал утилиту Govorilka_cp.exe, которая работает через командную строку).

Нажав в поле слова или клавишу пробел, мы увидим перевод слова, картинку и мнемонику. Естественно, всё это нужно вначале создать. Для этого есть кнопка с изображением шестерёнки.

image

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

Так же написал нужную мне функцию «Похожие слова». Чтобы легче запоминать похожие по написанию слова. Особенно рассказывать сейчас про неё не стану, просто оставил свои похожие слова в программе, можно нажать кнопку и легко разобраться.

Главная функция этого окна изучение слова в разных онлайн словарях (кстати можно одновременно открыть сколько угодно слов). Чтобы добавить свои онлайн словари, нужно нажать кнопку «Онлайн словари» и отредактировать текстовой файл, чтобы на каждой новой строке ссылка на странницу онлайн словаря. Как правило все ссылки содержат само слово. И достаточно поставить вместо слова символ ~ чтобы программа меняла его автоматически на открытое слово. (Например translate.google.ru/#view=home&op=translate&sl=en&tl=ru&text=~ программа заменит на translate.google.ru/#view=home&op=translate&sl=en&tl=ru&text=red если открыто слово red).

Я использую для изучения:

  • словарь Google (там удобно показана частота использования слова в разных значениях);
  • примеры промт (там показано как именно переводится слова в текстах обработанных промт);
  • и конечно ABBYY Lingvo (если там зарегистрироваться, то появится много словарей, лично я рекомендую Учебный словарь и Англо-русский словарь (Американский вариант)).

На первой вкладке можно увидеть перевод слова в словарях, которые мне удалось найти в интернете и привести в свой формат (они находятся в папке «dictionary_plus»). А также примеры использования слова.

В принципе, это все функции, которые мне потребовались для изучения слов. И я не стал бы заморачиваться, если бы нашёл эти функции в какой-нибудь программе. Но так как я такой программы не нашёл, то пришлось написать её самому.

image

Но это не единственная программа, которую я написал для изучения английского языка. Чтобы учить слова на телефоне, я написал программу «HTML СЛОВА». Она создаёт html файл из списка слов, этот файл перебрасывается на телефон и позволяет повторять слова через браузер телефона. А если в одной директории с html файлом будет папка «sound» с wav файлами то при клике по транскрипции можно будет прослушать произношение.

Есть ещё одна программа для изучения английского. Её я написал после того, как выучил тот список английских слов, который хотел. Эта программа для чтения на английском языке. В ней я реализовал много интересного функционала для чтения на английском.

image

ПОДСВЕТКА СПИСКОВ СЛОВ. Можно закидывать в программу списки слов, задать каждому списку свой цвет. и слова в любом тексте будут подсвечиваться этим цветом. Это очень удобно, например, можно создать список слов которые вы уже знаете, и подсвечивать их синим. А слова которые хотите выучить красным. Все остальные слова в тексте будут чёрными. (Чтобы закидывать списки слов нужно нажать жёлтую кнопку СПИСОК).

Кстати, программа находит слово не только в исходной форме, а и в любой другой благодаря файлу Morphy.txt, который содержит 16000 слов во всех словоформах.

Нажав на слово в тексте, оно откроется в панели справа, где также можно перейти в программу редактирования и изучения слова. Там же будет функция перебрасывания слова между списками.

Нажимая кнопки стрелки влево и вправо, можно переходить на следующее или предыдущее приложение. И все слова которые не найдены в ваших списках будут отображены в панели справа, с переводом.

Если нажать значок похожий на глобус, то можно будет получить перевод через API Яндекса. Но для этого нужно добавить свой ключ полученный у яндекса в файл «yandex_api.txt» папки common.

Я также написал функцию, которая даёт возможность получить этот же функционал чтения на телефоне. Создав html файл. Его тоже можно сделать с переводом каждого предложения. Для этого нужно нажать синюю кнопку с изображением смартфона.

Вот это основные приложения, которые я написал для того чтобы учить английский язык. (Но даже не все). Возможно мне просто нравится программировать. А возможно желание выучить язык у меня слишком сильное. Так или иначе я сделал эти программы и получил от этого удовольствие, так же как и от изучения языка. Я выкладываю эти программы в свободный доступ. Пользуйтесь если разберётесь, всё же они были написаны для себя, без учёта разрешений разных мониторов, и прочих технических моментов. Программы не тестировались более чем на одном компьютере и могут иметь ошибки. Не судите меня строго, ведь я не делал коммерческий проект.

Спасибо если дочитали мой пост до конца.

Комментарии (26)


  1. vladimir_dolzhenko
    19.02.2019 13:30

    Quizlet приложение для телефона:
    — многие из нас проводят какое-то время в общественном транспорте, когда можно «потупить» в телефон — или заняться делом, но ноутбук неудобно таскать
    — плюс в том, что есть некоторое community вокруг него, где выкладывают словари для книг, курсов и т.п.

    И конечно не ограничивается только английским.


    1. tmg
      19.02.2019 17:47

      интересно для карточек и интервального повторения, чем Quizlet платная версия лучше?
      (я знаю, что исчезнет реклама и карточки оффлайн станут доступны).

      Просто интересно что на бесплатной версии теряешь


      1. vladimir_dolzhenko
        19.02.2019 17:53

        использовал бесплатную версию… никаких особых неудобств не испытывал


  1. little-brother
    19.02.2019 13:39

    Но если ты владеешь навыками программирования, стоит ли тебе пользоваться готовыми решениями? Ведь можно самому написать программы для изучения языка, удобные именно для тебя.

    Для меня это оказалось проблемой — писать программы для изучения гораздо интереснее чем учить английский :D Как раз собирался схожую статью писать про свои разработки, выполненные как сайты.

    P.S. Имхо не лингвисту транскрипцию использовать нет никакой надобности сейчас, когда есть возможность прослушать слово в нескольких вариантах, напр. на Forvo.


    1. alekseiasd Автор
      19.02.2019 14:14

      Значит, я Вас опередил с написанием программы. А кнопка для перехода на Forvo есть в программе (на первом скриншоте). Api у них не бесплатное (не очень дорого, но я не стал его использовать).


      1. little-brother
        19.02.2019 14:17

        У меня они несколько другие. А написаны они были еще полгода назад :)


  1. dedyshka
    19.02.2019 14:01
    +2

    Но если ты владеешь навыками программирования, стоит ли тебе пользоваться готовыми решениями?
    Вопрос в разумности подхода. Для написания этой статьи вы ведь не стали писать свою OS. Если задача именно в изучении иностранного языка, то стоит больше времени тратить на это, а не на программирование приложения для изучения. Уже существующие приложения богаты своим комьюнити.
    Но я не нашёл ни одной программы которая бы удовлетворила меня полностью. Где-то, например, нет возможности редактировать перевод слов и нужно учить их как есть, где-то нет нормальной озвучки слов, и почти нигде нет нормального повторения слов через интервалы времени.
    Anki, например, чем не устроил?


  1. klimin007
    19.02.2019 14:39

    Не сочтите за рекламу, но для чтения рекомендую присмотреться к сервису http://wordsfromtext.com, о котором писали на Хабре тут (правда, в далеком 2015 году). Anki для запоминания слов тоже отличный выбор, но для iOS стоит дорого (для всего остального — бесплатно).


    1. dedyshka
      19.02.2019 16:04

      но для iOS стоит дорого
      вопрос цены это очень субъективный вопрос, но если вам нужно приложение для iOS то цена в 1900р. за приложение с оценкой 4,5 из 5 это много или нормально? (примерно 52 доширака) :)


      1. klimin007
        19.02.2019 16:10

        Лично я купил и не жалею… Большой плюс в алгоритме (основанном на SM2, но с некоторыми изменениями).


  1. igrushkin
    19.02.2019 16:38
    +1

    Автор молодец, статью лайкнул, но а) на смартфоне учить проще б) полно программ, включая те. которые поддерживают интервальные повторения


  1. Winnie13
    19.02.2019 20:42

    Ну как ни крути, а зубрёжка слов и выражений — занятие неприятное, и более того, частое. Поэтому граница между «делаю» и «не делаю» частенько проходит по разделу удобно / неудобно. И я пока что ещё не встретил удобной именно мне программы для зубрёжки, и завидую тем, кто нашёл.
    Так что собственная программа, заточенная под себя — это хороший подход, если n подходов найти удобный аналог провалились.


  1. virtualsys
    19.02.2019 22:25
    +2

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


    1. Nikoobraz
      20.02.2019 08:39

      Но парень ведь для себя пишет, а стало быть точно знает для туризма, деловой переписки, или просмотра роликов ему это нужно.
      И как человек, имеющий некоторое представление о том, как нужно учить языки, скажу, что если у вас нет серьезной шкурной мотивации в изучении(переезд например), то одним из самых важнейших факторов, определяющих успех, является интерес. Его нужно постоянно подпитывать, и нельзя допускать его истощения. В конце концов, какой толк от правильного и эффективного структурирования и контроля процесса, если изучающий на полпути забъет болт со словами «замахался я этим заниматься»? Собственно контроль интереса и является одной из главных проблем при изучении. Многие учат в формате «две недели работаю, два месяца не до того мне», кто-то может проходить целый год на курсы, потом ходить перестанет, а как надумает вернуться — уже и не помнит что за тот год прошел, и т.д.
      Так что, КО не до конца прав. Если процесс создания программы, и удобство ее использования для изучающего смогут поддерживать интерес, то все ок. Правда, разумеется, ОК только для самого создателя программы.


    1. little-brother
      20.02.2019 10:09

      как надо учить английскому

      У меня есть подозрение, что этого никто достоверно не знает. Гипотезы есть, но они не подтверждены.

      Так же есть проблема, что учителя/создатели курсов не представляют современные возможности компьютера и в итоге программы, построенные по их методикам, немногим отличаются от книжных аналогов.


  1. xPomaHx
    20.02.2019 08:48
    +1

    Имхо само по себе изучение языка очень слабо развито сейчас, по сути нет каких то научных методов которые бы доказали эффективность способов обучения, нету метрик достоверных. Хотя вроде сервисы есть, по сути всё что нужно это собирать статистику и проводить какие то аб тесты и натравливать на результаты нейронную сеть.


  1. zsergt3
    20.02.2019 13:32

    Для меня сложностью был (есть) перевод с русского на английский. В том числе во время разговора :) Написал программу, которая предлагает фразу на одном языке (русском), ты пробуешь перевести (мысленно, но лучше вслух), затем показывает перевод. github.com/zserg/django-pairsubs (есть консольный вариант). В качестве источника фраз использовал субтитры из opensubtitles.org. Все хочу доделать автоматическое выравнивание двух файлов субтитров.


  1. hermes-jr
    20.02.2019 13:33

    Anki + AnkiDroid + синхронизация. Есть комьюнити, есть наборы карточек, учить можно хоть языки, хоть химию.


  1. kir_kkm
    20.02.2019 13:33

    Есть замечательная программа Anki (веб, десктоп, мобилки), заточенная именно под интервальное повторение. Присутствует все необходимое: добавление своих слов, редактирование шаблонов карточек, озвучка, куча готовых словарей и т.д. И интерфейс поприятнее, чем у представленных в статье выходцев из 2000х.


  1. seezykot
    20.02.2019 13:33

    Интересные программы, но на смартфоне конечно это все было бы удобнее. Мне понравилась программа для чтения — по функционалу похоже на Vortozo для андроид. Хорошая идея — учить слова именно в контексте их применения.


  1. tm8211
    20.02.2019 13:33

    Читать книги на английском (или переводить) — самое милое дело. Причём берите книги мастеров. Это даст вам то, чего вы нигде больше не найдёте (ну разве что приметесь учить словарь). Это английские идиомы, которые вельми разнообразны. И словарь пополнится, и говорить сможете. Не забывайте при выборе авторов, что американский и британский английский различаются.

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

    Переведённое вами предложение содержит старинный глагол «to get». Рано или поздно вы запомните самые популярные значения этого глагола. В данном случае «getting there in an ordinary way» get означает «переместить себя куда-либо» — и фрагмент переводится как «добираться туда как все». Можно сказать и «обычным образом», дословно, но это прозвучит формально в детской книжке.


  1. spc
    20.02.2019 13:48

    Я тоже в копилку добавлю. Если говорить о смартфонах, то мне очень (кроме небольших недостатков) нравится Memrise.

    Потому что там и слова-карточки, и фразы карточки, и набор фраз по буквам и словам, и произношение (двумя голосами), и регулярные повторы слов-фраз, и дополнительная практика по трудно усваиваемому материалу.

    Минусы в иногда спорном интерфейсе, иногда в удобстве обучающих алгоритмов, иногда — в контенте (говорят, бывают ошибки по смыслу). Ну и не для каждого иностранного языка можно выбрать в пару русский.

    До какого-то момента можно бесплатно, но в конечном итоге нужна подписка.


  1. saboteur_kiev
    20.02.2019 14:17

    Может быть это оказалось незамеченным, но мне очень понравилась идея — изучать слова не просто по переводу, и не просто по предложению с этим словом.

    А добавлять в карточку с переводом фразу, которая является более-менее популярной цитатой для нативных носителей.
    Так сразу со словом учишь полезнейшие ассоциации и высказывания.


    1. Nikoobraz
      20.02.2019 15:05

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


  1. brainoutsource
    20.02.2019 16:48

    Есть еще очень клевое приложение Playphraseme, которое воспроизводит искомую фразу, как она прозвучала в фильмах/сериалах (там приличного размера база со всякими престолами и докторами хаусами) — можно услышать что-то в живой речи, с разными акцентами и интонациями (гугловский робот ). Можно набирать себе фразы в плейлист (если с какими-то беда — я, например, с трудом произношу sort of) или генерить случайные.


  1. Torps
    21.02.2019 22:26

    Lingvist.com, словарный тренажёр, разрабатываемый эстонской командой математиков, программистов и лингвистов.

    подробнее
    И для смартфона, и для компьютера, хорошая синхронизация. Подкупает приятный и минималистичный дизайн. Программа использует метод интервальных повторений. Карточки с новым словом даёт в контексте (в предложении) с озвучкой. Кроме карточек есть ещё упражнения на грамматику, чтение, аудирование и диалоги. Есть спецкурсы, например, Бизнес (английский) или Футбол (немецкий) или Weekend в Париже (французский).
    С русского языка пока доступны только английский и французский, с английского — французский, немецкий, испанский, с других языков выбор меньше.
    Платная, но в бесплатной версии ограничения небольшие: до 20 новых слов и одно упражнение в день и до 3000 выученных слов, повтор старых слов неограничен.
    P.S. Любой может зарегистрироваться по моей ссылке и получить месяц безлимита (сразу после того, как выучите 250 слов). Безлимит даёт до 6000 слов в английском. go.lingvist.com/refer/john_torps_d138d06e479bf3