DOU Проектор: Author’s vocabulary — вивчення іноземних мов у контексті програмування
От редакции:
В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
.
Початок
Вітаю всіх! Мене звати Олександр Матвієнко. Вищу освіту я отримав за напрямом “Менеджмент організацій”, але 7 років працював на посаді асистента. А в свої 30 років вирішив стати програмістом. Хоча багато хто каже, що вже пізно, але поживемо — побачимо.
Звісно ж, в процесі навчання виникла необхідність читати, і бажано англійською. Англійську мову я “вчив” і в школі, і в університеті, і самоосвітою займався. Але цього було мало, дуже мало. Базові знання граматики в мене є, а от словниковий запас — не дуже. Я почав займатися з програмами Lingvo Tutor, Shooting Gallery (Bridge to English), також пробував користуватися онлайн-ресурсами busuu, lingualeo. Кожен продукт по-своєму класний, але, на мій погляд, вони мають деякі недоліки, коли мова йде про вивчення іноземних мов у певному контексті (наприклад, програмування).
Я не філолог, але хочу викласти вам свій власний погляд на проблему поповнення словникового запасу іноземними словами. Як звичайний користувач, я бачу наступні проблеми:
— Існуючі програмні комплекси пропонують вам вчити ті слова, які вони вважають потрібними;
— Як альтернативу вам пропонують створювати власні словники.
Розглянемо кожну проблему детальніше.
1. Вчити те, що пропонують.
Це найбільш швидкий і зручний спосіб. Але, як програмісту-початківцю, мені хотілося б спочатку вивчити ті слова, які мені потрібні, щоб читати технічну літературу і переглядати відео в оригіналі. Тому не бачу сенсу витрачати свій час на те, щоб вчити такі слова як “риболовецький гачок”, “єпископ”, “рефрен”, “сажотрус”, “штемпелювати” і т.п. Так, теоретично всі слова потрібні, але я хотів би вивчити спочатку ті, слова, які мені потрібні в даний момент.
До того ж тут виникає ще одна проблема. Значення англійських слів інколи сильно відрізняються в залежності від того, де вони вживаються. Наприклад, ось як перекладає Lingvo слова на російську мову:
Термин | Перевод (общий словарь) | Перевод ( компьютерный словарь) |
log | бревно; колода; чурбан; заготавливать (вырубать) лес; пилить лес на стройматериалы | запись в журнале регистрации событий; журнал регистрации [событий]; регистрировать |
hack | рубить, разрубать, прорубать; кромсать; разбивать на куски; незаконно получать доступ | нудная работа, тяжёлая работа заниматься тяжёлой работой заниматься хакерством |
pipe | (курительная) трубка; свирель, дудка, свисток, волынка; труба, трубопровод | программный канал; конвейер [команд] |
А який переклад нам пропонують вчити більшість готових рішень? Звісно, загальний. Тому, навіть після вивчення таких значеннь слів, читання книжок по програмуванню англійською мовою перетворюється в дуже цікаву пригоду.
2. Самостійно створювати словники.
Для експерименту візьмемо програму Lingvo Tutor і зробимо прості розрахунки. Припустимо, щоб створити одну словарну статтю методом “копі-паст”, вам знадобиться 30 секунд, а ви бажаєте створити словничок на 5000 слів. Отже: 30 секунд * 5000 слів =150 000 секунд = 42 години
Тобто на створення словничка на 5000 слів вам потрібно безперервно протягом 42 годин клацати мишкою! Але це ще не все. Які ж слова вчити в першу чергу, а які можна залишити “на потім”?
Ну, і перед тим, як ми перейдемо до вирішення проблеми, розглянемо ще одну пораду з вивчення іноземних мов: слухати пісні, дивитися фільми і читати книжки в оригіналі. Я не стану заперечувати дієвість цього методу, але в мене є великі сумніви щодо його ефективності. Чи багато користі ви отримаєте від перегляду фільму, якщо ваш словниковий запас дуже слабкий? А чи отримаєте ви якесь задоволення? А хтось намагався читати книги по програмуванню із словником? Доки знайдеш потрібний переклад слова, забуваєш, про що йде мова.
Реалізація
Пропоную перевернути все догори ногами. Спочатку вчимо слова і лише після цього приступаємо до перегляду фільмів і читання книжок. Тоді ви дійсно отримуєте задоволення від процесу навчання і вчите саме те, що вам потрібно. Але ж як це зробити враховуючи, що на створення словника на 5000 слів (товстенька книга по програмуванню) потрібно 42 години, а на 1000 слів (середній фільм) — приблизно 8 годин. І знову ж: які слова вчити?
Я спробував реалізувати цю ідею, створивши програму Author’s vocabulary. Процес відбуваєтьсчя наступним чином:
1. Спочатку створюємо базу із словників. В залежності від потреби, можна використати, наприклад, загальний словник, щоб вчити загальновживані значення слів, комп’ютерний словник, щоб вчити англійську в контексті програмування тощо. Крім того, можна самому обирати мову перекладів, що дозволило мені встановити англо-український словник, чого я не міг зробити в жодному згаданому раніше рішенні.
2. Шукаємо текст книги або субтитри до фільму, слова із яких бажаємо вчити. В якості джерела навчання можна брати будь-який текст. До того ж тут з’являється цікава можливість: бажаєте вчити англійську в контексті програмування — берете книгу по програмуванню, медицину — по медицині, тільки починаєте вчити англійську — беріть буквар :). В будь-якому випадку, це дозволяє вам гнучко підбирати тематику і складність навчання. І вчити тільки ті слова, які вам потрібні.
3. Парсимо підготовлений текст. Програма автоматично до кожного слова приєднує із вказаного словника переклад і контекст уживання слова із запропонованого вами тексту.
4. Ну і вчимо. Тут поки що все просто: спочатку ознайомлюємося із значеннями слів, а потім вводимо відповіді з клавіатури або голосовим вводом (з англійською все ок, але Microsoft не всі мови підтримує). Заради забави також реалізував голосове управління у вікні вивчення (поки тільки en-US, en-GB).
5. Вся статистика прикріплюється до словників. Тому ви вільно можете вчити одні і ті ж слова, використовуючи різні джерела. Після того, як ви вивчили конкретне слово, воно відразу позначається як вивчене у всіх пов’язаних вокабуляріях (списках слів, які вам треба вчити). Тому, якщо ви вивчите 3000 слів із однієї книги, при вивченні слів з наступної книги вам треба буде довчити тільки нові слова, що з кожним разом буде займати все менше часу.
Написав я програму на C#+ XAML. База даних: SqlLocalDB 2012.
Це перша програма, яку я вирішив викласти в відкритий доступ. Раніше дистрибуцією програм не займався. Нашвидку створив інсталятор за допомогою ClickOnce, але, як з’ясувалося пізніше, фільтр SmartScreen блокує програму (я так розумію, що це через те, що в мене немає сертифіката видавця). Щоб запустити програму, потрібно знайти маленьке посилання “Додаткова інформація” і там дозволити запуск. Але більшість користувачів відразу лякаються і запитують мене про віруси і шпіонів.
Для тих, хто мені не довіряє, я вирішив викласти код у відкритий доступ.
Ще хочу зауважити щодо словників. В Інтернеті продається все — музика, фільми, книжки, а от більшість добротних словників — шифруються. І це створює певні труднощі для звичайних користувачів, які звикли все отримувати із коробочки: потрібно знайти словник, імпортувати його. Але тим, кому треба, думаю знайдуть потрібні словники, адже вони існують :).
Подальші плани
Звичайно, хотілося би залучити до проекту гарного дизайнера, толкового перекладача, програмістів, купити ліцензію на використання словників Lingvo і інтегрувати їх в програму, портувати програму на мобільні платформи, налагодити синхронізацію між пристроями.
В дійсності навряд чи буду робити із цієї ідеї цукерочку, адже, на жаль, я не маю ні знань, ні досвіду, ні фінансових можливостей для цього. Тому і вирішив поділитися ідеєю зі спільнотою DOU. Як на мене, це класна ідея, і вона має жити.