суббота, 2 января 2016 г.

Десантники прошли обучение по программам боевой подготовки миротворцев



Десантники прошли обучение по программам боевой подготовки миротворцев

 (обновлено: )
Комплекс подготовки парашютно-десантных и десантно-штурмовых подразделений по миротворческой тематике проводился в двухмесячный период и всегда завершался проверкой командиров в ходе командно-штабных тренировок и учений.
МОСКВА, 2 января 2016 – РИА Новости. Подразделения восьми соединений Воздушно-десантных войск (ВДВ) России прошли обучение по программам боевой подготовки миротворческих подразделений в 2015 году, сообщил журналистам в субботу представитель управления пресс-службы и информации Минобороны России по ВДВ подполковник Евгений Мешков.
Подготовка осуществлялась на специальных полигонах позволяющих учитывать специфику выполняемых миротворческих задач, научить военнослужащих и командиров правильно оценивать обстановку, принимать решение и готовить необходимые расчеты.
"Занятия по миротворческой тематике проводились с подразделениями из городов Иванова, Ульяновска, Камышина, Новороссийска, Пскова, Тулы, Улан-Удэ и Уссурийска. Практические и специальные занятия проводилась на полигонах Южного, Западного и Восточного военных округов, а также в Республике Крым", – рассказал Мешков.
Он уточнил, что весь комплекс подготовки парашютно-десантных и десантно-штурмовых подразделений по миротворческой тематике проводился в двухмесячный период и всегда завершался проверкой командиров в ходе командно-штабных тренировок и учений.
"Предварительная подготовка офицеров и сержантов по миротворческой тематике осуществлялась на трехмесячных курсах дополнительного профессионального образования на базе Рязанского высшего воздушно-десантного командного училища имени генерала армии В.Ф. Маргелова", – добавил представитель ВДВ России.

РИА Новости http://ria.ru/defense_safety/20160102/1353240302.html#ixzz3w4rLLMA3


http://ria.ru/



Десантники прошли обучение по программам боевой подготовки миротворцев

 (обновлено: )
Комплекс подготовки парашютно-десантных и десантно-штурмовых подразделений по миротворческой тематике проводился в двухмесячный период и всегда завершался проверкой командиров в ходе командно-штабных тренировок и учений.
МОСКВА, 2 января 2016 – РИА Новости. Подразделения восьми соединений Воздушно-десантных войск (ВДВ) России прошли обучение по программам боевой подготовки миротворческих подразделений в 2015 году, сообщил журналистам в субботу представитель управления пресс-службы и информации Минобороны России по ВДВ подполковник Евгений Мешков.
Подготовка осуществлялась на специальных полигонах позволяющих учитывать специфику выполняемых миротворческих задач, научить военнослужащих и командиров правильно оценивать обстановку, принимать решение и готовить необходимые расчеты.
"Занятия по миротворческой тематике проводились с подразделениями из городов Иванова, Ульяновска, Камышина, Новороссийска, Пскова, Тулы, Улан-Удэ и Уссурийска. Практические и специальные занятия проводилась на полигонах Южного, Западного и Восточного военных округов, а также в Республике Крым", – рассказал Мешков.
Он уточнил, что весь комплекс подготовки парашютно-десантных и десантно-штурмовых подразделений по миротворческой тематике проводился в двухмесячный период и всегда завершался проверкой командиров в ходе командно-штабных тренировок и учений.
"Предварительная подготовка офицеров и сержантов по миротворческой тематике осуществлялась на трехмесячных курсах дополнительного профессионального образования на базе Рязанского высшего воздушно-десантного командного училища имени генерала армии В.Ф. Маргелова", – добавил представитель ВДВ России.

РИА Новости http://ria.ru/defense_safety/20160102/1353240302.html#ixzz3w4rLLMA3


http://ria.ru/

понедельник, 2 июня 2014 г.

5 бесплатных приложений для Android и iOS, которые реально помогают учить иностранный язык

 

1 июня 2014


Еще совсем недавно для изучения иностранного языка нам требовалось идти на курсы или нанимать преподавателя, покупать комплект учебных пособий и словари, подбирать специальные аудио- и видеоматериалы. Сегодня все эти инструменты могут заменить (или дополнить) мобильные приложения, установленные на вашем телефоне. В них вы найдете и толковые объяснения, и примеры, и тексты, и тесты, и упражнения на произношение. А если учесть, что многие из этих программ еще и бесплатны, то просто не остается причин не обратить на них самое пристальное внимание.


Duolingo — занятия в перерывах

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

     Скачать @
Google Play

Разработчик: Duolingo
Цена: Бесплатно

Memrise — учим новые слова методом полива

Memrise Memrise
 
При изучении иностранного языка огромную роль играет постоянное пополнение словарного запаса. Приложение Memrise именно для этого и служит. Лучше освоить материал помогает метод интервального повторения, когда через определенные промежутки времени вас просят повторить уже изученные слова для окончательного их закрепления в памяти. При этом используется простая и наглядная визуализация: каждая тема — это цветок, который вы должны периодически поливать, чтобы он вырос.
 

     Скачать @
Google Play

Разработчик: Memrise
Цена: Бесплатно

(How to) Pronounce, Listen & Speak — а что у вас с произношением?

(How to) Pronounce
 
В некоторых языках смысл слов напрямую зависит от их звучания, так что неправильное произношение может свести на нет весь ваш богатый словарный запас и обширные познания в грамматике. Поэтому возьмите на заметку это приложение, которое покажет вам, как правильно звучит та или иная фраза на нужном вам языке.
 

Для пользователей Android-устройств может пригодиться программа Listen & Speak. Она предназначена не только для обучения правильному произношению, но и может потренировать вашу способность воспринимать речь на слух.

     Скачать @
Google Play

Разработчик: 9Spikes
Цена: Бесплатно

Busuu — помощь и реальное общение с людьми

Busuu Busuu
 
Основная фишка этого курса — помощь в освоении языка от реальных людей, таких же пользователей приложения. Учитывая, что на сегодняшний день их насчитывается более 40 миллионов, программа совершенно легко подбирает вам наставника, который является носителем изучаемого вами языка, но учит, в свою очередь, ваш. Таким образом, вы можете помогать друг другу в учебе. Однако сразу следует предупредить: хотя само приложение бесплатное, за некоторые необходимые функции вам придется заплатить с помощью системы внутренних покупок.
 

     Скачать @
Google Play

Разработчик: busuu Limited
Цена: Бесплатно

HelloTalk Language Exchange — проверяем свои знания на практике

HelloTalk Language Exchange HelloTalk Language Exchange
 
Практика — единственная точная оценка всех ваших теоретических знаний. Если вы можете дома в тетрадке точно воспроизводить все грамматические особенности языка, но при живом общении не способны выдавить из себя и слова, то грош цена вашим знаниям. Поэтому используем мобильное приложение HelloTalk Language Exchange, которое представляет собой своего рода социальную сеть для изучающих иностранные языки. Живое общение, обмен новостями и фотографиями помогут вам на практике применить полученные навыки и узнать некоторые языковые нюансы, про которые не пишут в учебниках.
 

     Скачать @
Google Play

Разработчик: HelloTalk Learn Languages App
Цена: Бесплатно

А какое приложение реально помогло вам в изучении иностранного языка? Требуются компетентные мнения реальных пользователей!

(via)

http://lifehacker.ru/

 

1 июня 2014


Еще совсем недавно для изучения иностранного языка нам требовалось идти на курсы или нанимать преподавателя, покупать комплект учебных пособий и словари, подбирать специальные аудио- и видеоматериалы. Сегодня все эти инструменты могут заменить (или дополнить) мобильные приложения, установленные на вашем телефоне. В них вы найдете и толковые объяснения, и примеры, и тексты, и тесты, и упражнения на произношение. А если учесть, что многие из этих программ еще и бесплатны, то просто не остается причин не обратить на них самое пристальное внимание.


Duolingo — занятия в перерывах

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

     Скачать @
Google Play

Разработчик: Duolingo
Цена: Бесплатно

Memrise — учим новые слова методом полива

Memrise Memrise
 
При изучении иностранного языка огромную роль играет постоянное пополнение словарного запаса. Приложение Memrise именно для этого и служит. Лучше освоить материал помогает метод интервального повторения, когда через определенные промежутки времени вас просят повторить уже изученные слова для окончательного их закрепления в памяти. При этом используется простая и наглядная визуализация: каждая тема — это цветок, который вы должны периодически поливать, чтобы он вырос.
 

     Скачать @
Google Play

Разработчик: Memrise
Цена: Бесплатно

(How to) Pronounce, Listen & Speak — а что у вас с произношением?

(How to) Pronounce
 
В некоторых языках смысл слов напрямую зависит от их звучания, так что неправильное произношение может свести на нет весь ваш богатый словарный запас и обширные познания в грамматике. Поэтому возьмите на заметку это приложение, которое покажет вам, как правильно звучит та или иная фраза на нужном вам языке.
 

Для пользователей Android-устройств может пригодиться программа Listen & Speak. Она предназначена не только для обучения правильному произношению, но и может потренировать вашу способность воспринимать речь на слух.

     Скачать @
Google Play

Разработчик: 9Spikes
Цена: Бесплатно

Busuu — помощь и реальное общение с людьми

Busuu Busuu
 
Основная фишка этого курса — помощь в освоении языка от реальных людей, таких же пользователей приложения. Учитывая, что на сегодняшний день их насчитывается более 40 миллионов, программа совершенно легко подбирает вам наставника, который является носителем изучаемого вами языка, но учит, в свою очередь, ваш. Таким образом, вы можете помогать друг другу в учебе. Однако сразу следует предупредить: хотя само приложение бесплатное, за некоторые необходимые функции вам придется заплатить с помощью системы внутренних покупок.
 

     Скачать @
Google Play

Разработчик: busuu Limited
Цена: Бесплатно

HelloTalk Language Exchange — проверяем свои знания на практике

HelloTalk Language Exchange HelloTalk Language Exchange
 
Практика — единственная точная оценка всех ваших теоретических знаний. Если вы можете дома в тетрадке точно воспроизводить все грамматические особенности языка, но при живом общении не способны выдавить из себя и слова, то грош цена вашим знаниям. Поэтому используем мобильное приложение HelloTalk Language Exchange, которое представляет собой своего рода социальную сеть для изучающих иностранные языки. Живое общение, обмен новостями и фотографиями помогут вам на практике применить полученные навыки и узнать некоторые языковые нюансы, про которые не пишут в учебниках.
 

     Скачать @
Google Play

Разработчик: HelloTalk Learn Languages App
Цена: Бесплатно

А какое приложение реально помогло вам в изучении иностранного языка? Требуются компетентные мнения реальных пользователей!

(via)

http://lifehacker.ru/

среда, 26 февраля 2014 г.

VIPE Holodeck – солдат будут обучать бою с помощью компьютерных игр

http://i.dailymail.co.uk/i/pix/2014/01/29/article-2548242-1B0EE9E000000578-150_634x468.jpg

Известной американской оборонной компанией Northrop Grumman разработана система виртуальной реальности Virtual Immersive Portable Environment (VIPE) Holodeck 360.

VIPE Holodeck – солдат будут обучать бою с помощью компьютерных игр

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

Одной из реализаций технологии виртуального обучения и тренировки солдат является VIPE Holodeck. Основу этой установки составляет набор достаточно стандартных аппаратных средств и игровых технологий, совмещенные с некоторыми "фирменными" технологиями, разработанными специалистами компании Northrop Grumman. Благодаря такому симбиозу технологий система VIPE Holodeck предоставляет пользователям реалистичную среду виртуальной реальности, позволяющую смоделировать множество сценариев для обучения солдат, как самостоятельным действиям, так и действиям в составе команды, пишет gamer.ru.
Компьютерная часть системы VIPE Holodeck может создавать виртуальную среду, используя комбинацию сразу двух методов, метода компьютерного моделирования, подобного используемого в компьютерных играх, и метода моделирования с использованием реалистичных элементов, элементов, формы и изображения которых скопированы с различных реальных объектов.
Основным отличием системы VIPE Holodeck от других подобных является ее функция ситуативного обучения. Это означает то, что тренируемый военнослужащий может обучаться действиям в виртуальной окружающей среде, являющейся точной копией места, где ему предстоит действовать в будущем. Это позволит солдату столкнуться с ситуациями, с которыми он может столкнуться в реальности, и найти наиболее оптимальные выходы из этих ситуаций. А операторы системы в любой момент могут усложнить задачу, помесив в виртуальную среду дополнительных вражеских стрелков, боевую технику или самодельные взрывные устройства.
Как рассказал Райан Фрост (Ryan Frost), сотрудник компании Northrop Grumman и менеджер проекта VIPE Holodeck: "При помощи такой системы мы можем реализовать практически любой сценарий боя". Опубликовано: 25 февраля 2014, 11:09

buhira Иринаbuhira Ирина 

http://games.mirtesen.ru/ 

http://i.dailymail.co.uk/i/pix/2014/01/29/article-2548242-1B0EE9E000000578-150_634x468.jpg

Известной американской оборонной компанией Northrop Grumman разработана система виртуальной реальности Virtual Immersive Portable Environment (VIPE) Holodeck 360.

VIPE Holodeck – солдат будут обучать бою с помощью компьютерных игр

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

Одной из реализаций технологии виртуального обучения и тренировки солдат является VIPE Holodeck. Основу этой установки составляет набор достаточно стандартных аппаратных средств и игровых технологий, совмещенные с некоторыми "фирменными" технологиями, разработанными специалистами компании Northrop Grumman. Благодаря такому симбиозу технологий система VIPE Holodeck предоставляет пользователям реалистичную среду виртуальной реальности, позволяющую смоделировать множество сценариев для обучения солдат, как самостоятельным действиям, так и действиям в составе команды, пишет gamer.ru.
Компьютерная часть системы VIPE Holodeck может создавать виртуальную среду, используя комбинацию сразу двух методов, метода компьютерного моделирования, подобного используемого в компьютерных играх, и метода моделирования с использованием реалистичных элементов, элементов, формы и изображения которых скопированы с различных реальных объектов.
Основным отличием системы VIPE Holodeck от других подобных является ее функция ситуативного обучения. Это означает то, что тренируемый военнослужащий может обучаться действиям в виртуальной окружающей среде, являющейся точной копией места, где ему предстоит действовать в будущем. Это позволит солдату столкнуться с ситуациями, с которыми он может столкнуться в реальности, и найти наиболее оптимальные выходы из этих ситуаций. А операторы системы в любой момент могут усложнить задачу, помесив в виртуальную среду дополнительных вражеских стрелков, боевую технику или самодельные взрывные устройства.
Как рассказал Райан Фрост (Ryan Frost), сотрудник компании Northrop Grumman и менеджер проекта VIPE Holodeck: "При помощи такой системы мы можем реализовать практически любой сценарий боя". Опубликовано: 25 февраля 2014, 11:09

buhira Иринаbuhira Ирина 

http://games.mirtesen.ru/ 

четверг, 9 января 2014 г.

Я переучиваю людей на Java-программистов recovery mode



Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:

— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?


В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.

Немного о себе: десять лет программирования. Половину которого программировал на Java. Всего я переучил на программистов восемь человек. Еще троих учу прямо сейчас. Переучиваю, только если вижу, что человеку такая работа подойдет.

Об учениках: 3 парня и 8 девушек. У половины техническое образование. Также есть юрист, экономист, бухгалтер и историк. Некоторые уже где-то работали, некоторые только закончили универ. Программированием никто не занимался со школы. Частая история: закончил (а) универ, а кем и где работать — хз.

Почему программирование?


Прежде чем учить человека программированию, лучше объяснить, что это дает и зачем оно ему нужно.

1 Несложная интересная работа.



Программирование — это несложная и интересная работа. Была возможность сравнить с тем, чем в банке экономисты занимаются. Это небо и земля. В банке все гораздо скучнее. Да и соблюдать дресс-код в 30-ти градусную жару не очень приятное дело.

2 Хорошо оплачивается.

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

3 Гибкий график.

Жесткий график — это неприятно. Это вам подтвердит каждый, кто стоял в пробке в час пик, или кого штрафовали за опоздание в 5 минут. А как насчет возможности приходить на работу в 11 утра, а уходить в 5? Скажете мечта? Для большинства программистов это реальность. Справляйтесь со своей работой, и вам слова никто не скажет. Во многих конторах вы можете не приходить на работу, а работать из дома.

4 Профессиональный рост.

Почти в любой организации, чтобы получить престижную должность и хорошо зарабатывать, нужно делать карьеру. Программисту достаточно просто оставаться программистом. Вам не нужно переучиваться с программиста на администратора или бороться за должность начальника. Можно просто расти профессионально. Программисты с пятью-десятью годами опыта работы получают шикарные зарплаты.

5 Высокая международная мобильность.

Три самых высокооплачиваемых специальности на западе: юрист, хирург/врач и программист. Но наш юрист за границей будет бесполезен: другие законы, прецедентное право и т.д. Врачу нужно учить язык, заново сдавать экзамены. Программисту ничего учить не придется. Тот же язык. Те же стандарты. Часто даже заказчики те же.

Почему именно Java?


Совокупность трех следующих факторов и заставила меня переучивать людей на джавистов.

1 Java — один из самых легких языков для изучения

У меня получается научить человека за три месяца.

2 Большой спрос на рынке труда.

Можно устроиться на работу без опыта. Фирмы охотно берут на работу толковых новичков и занимаются их дальнейшим обучением.

3 Самые высокие зарплаты по отрасли.

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

Ключевой принцип

 

Есть такое хорошее правило, чтобы собрать рюкзак в поход:

1 составьте список всего необходимого

2 вычеркните все, без чего можно обойтись.


Примерно представляю, чем придется заниматься java junior в первый год работы. Знания, без которых можно обойтись в первый год работы — исключаем!


Я выкинул из обучения много интересных и хороших вещей. Чтобы стать хорошими программистами их придется учить. Но я даю достаточный минимум, чтобы устроиться на работу. Одна теория без практики часто оказывается неэффективна.

Вот чем я советую заниматься java junior в первый год обучения:

1 Радоваться, что есть хорошая работа.

2 Изучать проект.

3 Читать умные книжки.



Формат занятий


Одновременно учу 2-3 человек. Оптимальный размер группы для меня – три человека. Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков.
Все объясняю исключительно на примерах. Наглядность наше все. Например, чтобы понять коллекции, мы написали на занятии свои ArrayList & LinkedList. Даю домашние задания для закрепления материала.

С чего лучше начать?


С паскаля. Как показывает практика и мой субъективный опыт, все в школе изучали паскаль. В зависимости от ситуации выделяю 2-4 занятия на вспоминание паскаля.

1 Переменные и ReadLn/WriteLn.

2 if, for, while, массивы.

3 Функции и процедуры.

4 Закрепление изученного.


Формат уроков


Обычно рассказываю новую тему 10-20 минут.
Сажусь за компьютер (остальные сидят рядом) и пишу работающие примеры рассказанного. Потом, всем по очереди даю задания по текущей теме. Каждый человек за такой урок успевает сделать по 3-5 небольших заданий.
Поощряю подсказывать друг другу (учит работе в команде).
Подсматривать старые примеры можно. Копипастить ничего нельзя.

Краткое содержание первого урока по Java


(может не быть первым из всех, если были предварительные уроки по паскалю)

1 Рассказываю, что такое Java, JVM, JDK, J2SE, J2EE

2 Устанавливаем JDK, IDE (мой выбор — Intellij IDEA)

3 Создание первой программы. Показываю один раз, затем народ повторяет.

4 Ввод/Вывод, работа с переменными. Провожу аналогии с паскалем — очень помогает. Гораздо легче понять материал, когда есть аналогия с тем, что знаешь.


Альтернативные методики


Участие в свободных проектах — идеальный инструмент для саморазвития. Человеку, который может хорошо работать, но не фанатеет от программирования, подходит плохо.

Чему учу




Только самое нужное

<b>Программирование</b>
   ООП
        Наследование: extends, implements
        Полиморфизм: overriding, overloading
        Инкапсуляция
        Интерфейсы: interface
        Абстрактые методы и классы: abstract
        Пакеты: package
    Остальное
        Области видимости переменных
        Перекрытие переменных
        Скрытие методов другими методами.
        mutable, immutable
        Клонирование, контракты.
<b>Синтаксис языка</b>
    Операторы
        if-else
        for, for each
        while, do while
        switch-case-default
        try-catch-finally, return
        throw, throws, catched & uncatched exceptions  
        synchronized
        instanceof,   (type cast)
        приоритеты операторов: + * ++ -- [] =  == != && ||
        finalize
    Модификаторы
        public, protected, package, private
        static
        final x3
    Типы данных
        Примитивные типы: boolean, char, byte, short, int, long, float, double
        Ссылочные типы: Object
        autoboxing
        hashCode, equals
        Generics
<b>Библиотеки</b>
    java.lang
        Интерфейсы-маркеры: Cloneable, Serializable, Remote
        Integer, Real, Double, Character, ...
        String, StringBuilder,StringBuffer, StringWriter
        Thread,ThreadLocal, ThreadGroup
        Throwable, Exception, Error, RuntimeException
    java.io
        Serializable
        InputStream, OutputStream
        Reader, Writer
        FileInputStream, FileOutputStream
        BufferedReader, PrintReader, Scaner
        DataInput, DataOuput,
        ObjectInput, ObjectOutput 
    java.util
         java.util.Date
         java.util.Iterator
         List
             java.util.ArrayList<E>,
             java.util.LinkedList<E>,
             java.util.Vector<E>,
             java.util.Stack<E>.
         Queue/Deque
            java.util.ArrayDeque<E>,
            java.util.LinkedList<E>.
        Set
            java.util.HashSet<E>,
            java.util.LinkedHashSet<E>,
            java.util.TreeSet<E>.
        Map<K,V>
           java.util.HashMap<K,V>,
           java.util.LinkedHashMap<K,V>,
           java.util.TreeMap<K,V>,
           java.util.WeakHashMap<K,V>.
     Многопоточность
        Thread, Runable, join, interrupt, sleep, daemon, yield, wait, notify 



Чему не учу


1 Алгоритмам, графам и т.д.

Сам призер кучи олимпиад. За 10 лет реальной работы ничего не понадобилось.

2 UI, аплеты и т.д.

Скорее всего, будущие проекты в жизни моих учеников будут связаны с Tomcat, JBoss, WebLogic

3 HTML/JavaScript

Непрофильные навыки. Рекомендую заниматься самообучением.


Работа




Я не могу научить всему, да и не стараюсь.
Моя цель в том, чтобы человек получил работу, фирма — перспективного сотрудника, и обе стороны были заинтересованы в его дальнейшем обучении.

Как устроиться на работу. Ключевые моменты.


1 Правильно составить резюме.

Представьте, какой договор может составить профессиональный юрист, а какой — обычный неподготовленный человек. В важных вещах не нужно стесняться обращаться к профессионалам. Так и тут: резюме нужно не составлять самому, а попросить знающего человека.

2 Собеседование

Я провожу несколько тестовых собеседований. И отправляю «выпускников» походить на собеседования в несколько контор — для опыта.

3 Опыт

В резюме должно быть от 3 до 6 месяцев опыта работы. Это добавляет уверенности человеку, который решил взять вас на работу.

Идти работать только в айтишные конторы.


А еще лучше в большие айтишные конторы. Только они занимаются обучением новичков. Цель первого года работы — получить как можно больше опыта, а не денег. Уже на позиции middle developer спрос превышает предложение, и зарплаты начинают резко расти.

Истории из жизни учеников


Как правильно просить повышения.

История одной моей ученицы.
— Получала я как-то зарплату в $2400. Подошел очередной срок пересмотра зарплаты. Хочу 2800, но как договориться?

Решила попросить $3000, с таким расчетом, чтобы сторговаться на 2800. Однако когда дошло до обсуждения новой суммы, выяснилось, что выше 2600 поднимать не хотят. Неужели я не стою больше? — подумала я, и записалась на собеседование в стороннюю фирму.

Через пару дней сходила на собеседование, там предложили $3000.
Прихожу на следующий день на работу, распечатала job offer, и к менеджеру на разговор. Подумал он, позвонил куда-то. Через полчаса подошел и предложил $3200.

Довольная звоню в фирму, где проходила собеседование и говорю, что не могу у вас работать, так как на текущем месте работы предложили 3200. Там предлагают 3400. Совсем выбили из колеи. Я же уже настроилась продолжать работать, а тут такие новости. Но т.к. боевой настрой еще был, опять пошла к шефу. В итоге получила $3600.

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

Самая быстрая карьера в истории.


История номер два. 

Рассказываю от первого лица.
Решил я устроиться на свою первую работу. Составил резюме на позицию java junior, приписал 4 месяца опыта в несуществующей форме и пошел на собеседование.

Взяли. Поработал три месяца. Учил java и разбирался в проекте. Но фирма не понравилась. Через три месяца уволился. Посидел дома месяц, позанимался, и пошел на собеседования снова. В этот раз я уже искал позицию java middle и, по резюме, имел год опыта работы. Поработал два месяца. Проекту с десяток лет, профессионалы справляются, но новичку на таком проекте очень скучно. Уволился.

Нашел новую работу. Теперь в моем в резюме было полтора года стажа. В этот раз проект полностью устраивал, но хотелось развиваться и другую зарплату. Должна же быть где-то фирма, которую я ищу — думал я. Поработал три месяца.

На свою последнюю работу, устроился на позицию senjor java developer. Три года работы в резюме внушали уважение. Уже три года работаю в понравившейся фирме. Именно то, что я искал. Я доволен, заказчик тоже.

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

Тонкие моменты


Чтобы быть хорошим программистом надо изучить очень много. Невозможно это сделать без желания учиться и любви к программированию.

Я вплетаю желание учиться/развиваться в сам процесс обучения. Это же не чужие мне люди: вкладываю душу, даю интересные задачи. Они занимаются не потому что надо, а потому что им интересно. Как забытое с детства удовольствие, когда делаешь что-то новое, и у тебя получается.

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

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

О собеседованиях


Человека можно оценить только по результатам его работы, а не по резюме, куда каждый что хочет, то и пишет. Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе. Как результат — часто возникает ошибка оценки квалификации и вклада специалиста в работу, особенно если работодатель небрежно относится к собеседованию. При справедливой оценке ЗП в $700, можно ведь год работать на $1000 в месяц, а можно и на $500. Я делаю все, чтобы эта ошибка, если она возникнет, была в сторону кандидата — моего ученика.

P.S.
Сегодня у моей первой ученицы (поле пяти лет работы программистом) первый день работы тимлидом. Горжусь ей.


Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:

— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?


В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.

Немного о себе: десять лет программирования. Половину которого программировал на Java. Всего я переучил на программистов восемь человек. Еще троих учу прямо сейчас. Переучиваю, только если вижу, что человеку такая работа подойдет.

Об учениках: 3 парня и 8 девушек. У половины техническое образование. Также есть юрист, экономист, бухгалтер и историк. Некоторые уже где-то работали, некоторые только закончили универ. Программированием никто не занимался со школы. Частая история: закончил (а) универ, а кем и где работать — хз.

Почему программирование?


Прежде чем учить человека программированию, лучше объяснить, что это дает и зачем оно ему нужно.

1 Несложная интересная работа.



Программирование — это несложная и интересная работа. Была возможность сравнить с тем, чем в банке экономисты занимаются. Это небо и земля. В банке все гораздо скучнее. Да и соблюдать дресс-код в 30-ти градусную жару не очень приятное дело.

2 Хорошо оплачивается.

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

3 Гибкий график.

Жесткий график — это неприятно. Это вам подтвердит каждый, кто стоял в пробке в час пик, или кого штрафовали за опоздание в 5 минут. А как насчет возможности приходить на работу в 11 утра, а уходить в 5? Скажете мечта? Для большинства программистов это реальность. Справляйтесь со своей работой, и вам слова никто не скажет. Во многих конторах вы можете не приходить на работу, а работать из дома.

4 Профессиональный рост.

Почти в любой организации, чтобы получить престижную должность и хорошо зарабатывать, нужно делать карьеру. Программисту достаточно просто оставаться программистом. Вам не нужно переучиваться с программиста на администратора или бороться за должность начальника. Можно просто расти профессионально. Программисты с пятью-десятью годами опыта работы получают шикарные зарплаты.

5 Высокая международная мобильность.

Три самых высокооплачиваемых специальности на западе: юрист, хирург/врач и программист. Но наш юрист за границей будет бесполезен: другие законы, прецедентное право и т.д. Врачу нужно учить язык, заново сдавать экзамены. Программисту ничего учить не придется. Тот же язык. Те же стандарты. Часто даже заказчики те же.

Почему именно Java?


Совокупность трех следующих факторов и заставила меня переучивать людей на джавистов.

1 Java — один из самых легких языков для изучения

У меня получается научить человека за три месяца.

2 Большой спрос на рынке труда.

Можно устроиться на работу без опыта. Фирмы охотно берут на работу толковых новичков и занимаются их дальнейшим обучением.

3 Самые высокие зарплаты по отрасли.

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

Ключевой принцип

 

Есть такое хорошее правило, чтобы собрать рюкзак в поход:

1 составьте список всего необходимого

2 вычеркните все, без чего можно обойтись.


Примерно представляю, чем придется заниматься java junior в первый год работы. Знания, без которых можно обойтись в первый год работы — исключаем!


Я выкинул из обучения много интересных и хороших вещей. Чтобы стать хорошими программистами их придется учить. Но я даю достаточный минимум, чтобы устроиться на работу. Одна теория без практики часто оказывается неэффективна.

Вот чем я советую заниматься java junior в первый год обучения:

1 Радоваться, что есть хорошая работа.

2 Изучать проект.

3 Читать умные книжки.



Формат занятий


Одновременно учу 2-3 человек. Оптимальный размер группы для меня – три человека. Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков.
Все объясняю исключительно на примерах. Наглядность наше все. Например, чтобы понять коллекции, мы написали на занятии свои ArrayList & LinkedList. Даю домашние задания для закрепления материала.

С чего лучше начать?


С паскаля. Как показывает практика и мой субъективный опыт, все в школе изучали паскаль. В зависимости от ситуации выделяю 2-4 занятия на вспоминание паскаля.

1 Переменные и ReadLn/WriteLn.

2 if, for, while, массивы.

3 Функции и процедуры.

4 Закрепление изученного.


Формат уроков


Обычно рассказываю новую тему 10-20 минут.
Сажусь за компьютер (остальные сидят рядом) и пишу работающие примеры рассказанного. Потом, всем по очереди даю задания по текущей теме. Каждый человек за такой урок успевает сделать по 3-5 небольших заданий.
Поощряю подсказывать друг другу (учит работе в команде).
Подсматривать старые примеры можно. Копипастить ничего нельзя.

Краткое содержание первого урока по Java


(может не быть первым из всех, если были предварительные уроки по паскалю)

1 Рассказываю, что такое Java, JVM, JDK, J2SE, J2EE

2 Устанавливаем JDK, IDE (мой выбор — Intellij IDEA)

3 Создание первой программы. Показываю один раз, затем народ повторяет.

4 Ввод/Вывод, работа с переменными. Провожу аналогии с паскалем — очень помогает. Гораздо легче понять материал, когда есть аналогия с тем, что знаешь.


Альтернативные методики


Участие в свободных проектах — идеальный инструмент для саморазвития. Человеку, который может хорошо работать, но не фанатеет от программирования, подходит плохо.

Чему учу




Только самое нужное

<b>Программирование</b>
   ООП
        Наследование: extends, implements
        Полиморфизм: overriding, overloading
        Инкапсуляция
        Интерфейсы: interface
        Абстрактые методы и классы: abstract
        Пакеты: package
    Остальное
        Области видимости переменных
        Перекрытие переменных
        Скрытие методов другими методами.
        mutable, immutable
        Клонирование, контракты.
<b>Синтаксис языка</b>
    Операторы
        if-else
        for, for each
        while, do while
        switch-case-default
        try-catch-finally, return
        throw, throws, catched & uncatched exceptions  
        synchronized
        instanceof,   (type cast)
        приоритеты операторов: + * ++ -- [] =  == != && ||
        finalize
    Модификаторы
        public, protected, package, private
        static
        final x3
    Типы данных
        Примитивные типы: boolean, char, byte, short, int, long, float, double
        Ссылочные типы: Object
        autoboxing
        hashCode, equals
        Generics
<b>Библиотеки</b>
    java.lang
        Интерфейсы-маркеры: Cloneable, Serializable, Remote
        Integer, Real, Double, Character, ...
        String, StringBuilder,StringBuffer, StringWriter
        Thread,ThreadLocal, ThreadGroup
        Throwable, Exception, Error, RuntimeException
    java.io
        Serializable
        InputStream, OutputStream
        Reader, Writer
        FileInputStream, FileOutputStream
        BufferedReader, PrintReader, Scaner
        DataInput, DataOuput,
        ObjectInput, ObjectOutput 
    java.util
         java.util.Date
         java.util.Iterator
         List
             java.util.ArrayList<E>,
             java.util.LinkedList<E>,
             java.util.Vector<E>,
             java.util.Stack<E>.
         Queue/Deque
            java.util.ArrayDeque<E>,
            java.util.LinkedList<E>.
        Set
            java.util.HashSet<E>,
            java.util.LinkedHashSet<E>,
            java.util.TreeSet<E>.
        Map<K,V>
           java.util.HashMap<K,V>,
           java.util.LinkedHashMap<K,V>,
           java.util.TreeMap<K,V>,
           java.util.WeakHashMap<K,V>.
     Многопоточность
        Thread, Runable, join, interrupt, sleep, daemon, yield, wait, notify 



Чему не учу


1 Алгоритмам, графам и т.д.

Сам призер кучи олимпиад. За 10 лет реальной работы ничего не понадобилось.

2 UI, аплеты и т.д.

Скорее всего, будущие проекты в жизни моих учеников будут связаны с Tomcat, JBoss, WebLogic

3 HTML/JavaScript

Непрофильные навыки. Рекомендую заниматься самообучением.


Работа




Я не могу научить всему, да и не стараюсь.
Моя цель в том, чтобы человек получил работу, фирма — перспективного сотрудника, и обе стороны были заинтересованы в его дальнейшем обучении.

Как устроиться на работу. Ключевые моменты.


1 Правильно составить резюме.

Представьте, какой договор может составить профессиональный юрист, а какой — обычный неподготовленный человек. В важных вещах не нужно стесняться обращаться к профессионалам. Так и тут: резюме нужно не составлять самому, а попросить знающего человека.

2 Собеседование

Я провожу несколько тестовых собеседований. И отправляю «выпускников» походить на собеседования в несколько контор — для опыта.

3 Опыт

В резюме должно быть от 3 до 6 месяцев опыта работы. Это добавляет уверенности человеку, который решил взять вас на работу.

Идти работать только в айтишные конторы.


А еще лучше в большие айтишные конторы. Только они занимаются обучением новичков. Цель первого года работы — получить как можно больше опыта, а не денег. Уже на позиции middle developer спрос превышает предложение, и зарплаты начинают резко расти.

Истории из жизни учеников


Как правильно просить повышения.

История одной моей ученицы.
— Получала я как-то зарплату в $2400. Подошел очередной срок пересмотра зарплаты. Хочу 2800, но как договориться?

Решила попросить $3000, с таким расчетом, чтобы сторговаться на 2800. Однако когда дошло до обсуждения новой суммы, выяснилось, что выше 2600 поднимать не хотят. Неужели я не стою больше? — подумала я, и записалась на собеседование в стороннюю фирму.

Через пару дней сходила на собеседование, там предложили $3000.
Прихожу на следующий день на работу, распечатала job offer, и к менеджеру на разговор. Подумал он, позвонил куда-то. Через полчаса подошел и предложил $3200.

Довольная звоню в фирму, где проходила собеседование и говорю, что не могу у вас работать, так как на текущем месте работы предложили 3200. Там предлагают 3400. Совсем выбили из колеи. Я же уже настроилась продолжать работать, а тут такие новости. Но т.к. боевой настрой еще был, опять пошла к шефу. В итоге получила $3600.

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

Самая быстрая карьера в истории.


История номер два. 

Рассказываю от первого лица.
Решил я устроиться на свою первую работу. Составил резюме на позицию java junior, приписал 4 месяца опыта в несуществующей форме и пошел на собеседование.

Взяли. Поработал три месяца. Учил java и разбирался в проекте. Но фирма не понравилась. Через три месяца уволился. Посидел дома месяц, позанимался, и пошел на собеседования снова. В этот раз я уже искал позицию java middle и, по резюме, имел год опыта работы. Поработал два месяца. Проекту с десяток лет, профессионалы справляются, но новичку на таком проекте очень скучно. Уволился.

Нашел новую работу. Теперь в моем в резюме было полтора года стажа. В этот раз проект полностью устраивал, но хотелось развиваться и другую зарплату. Должна же быть где-то фирма, которую я ищу — думал я. Поработал три месяца.

На свою последнюю работу, устроился на позицию senjor java developer. Три года работы в резюме внушали уважение. Уже три года работаю в понравившейся фирме. Именно то, что я искал. Я доволен, заказчик тоже.

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

Тонкие моменты


Чтобы быть хорошим программистом надо изучить очень много. Невозможно это сделать без желания учиться и любви к программированию.

Я вплетаю желание учиться/развиваться в сам процесс обучения. Это же не чужие мне люди: вкладываю душу, даю интересные задачи. Они занимаются не потому что надо, а потому что им интересно. Как забытое с детства удовольствие, когда делаешь что-то новое, и у тебя получается.

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

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

О собеседованиях


Человека можно оценить только по результатам его работы, а не по резюме, куда каждый что хочет, то и пишет. Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе. Как результат — часто возникает ошибка оценки квалификации и вклада специалиста в работу, особенно если работодатель небрежно относится к собеседованию. При справедливой оценке ЗП в $700, можно ведь год работать на $1000 в месяц, а можно и на $500. Я делаю все, чтобы эта ошибка, если она возникнет, была в сторону кандидата — моего ученика.

P.S.
Сегодня у моей первой ученицы (поле пяти лет работы программистом) первый день работы тимлидом. Горжусь ей.

понедельник, 1 октября 2012 г.

Электронные карточки для заучивания английских слов


Главное окно Хочу поделиться с уважаемым хабрасообществом очередным велосипедом, для пополнения английского словарного запаса. Представляет он из себя классические карточки для самостоятельного изучения слов: вам предлагается слово на русском или английском, вы вводите перевод. Описывать плюсы методики не буду, напомню лишь, что формирование словарного запаса — это один из первых этапов изучения языка — закладывание базы для дальнейшего, более полного изучения.
Программа очень простая, но имеет ряд особенностей, которые отличают ее от тех, что я пробовал перед тем, как взяться за собственную реализацию. Кому лень читать подробное описание, могут сразу перейти на github, где выложен скрипт и ознакомиться с ним, там же есть readme с описанием возможностей, в более сжатом виде.

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


Особенности


Первое и самое важное — время.
Все сервисы по изучению языка, что я пробовал, тот же, широко известный lingualeo, требуют, что бы на них выделяли хотя бы минут по 30, причем единовременно. Сами сервисы так устроены, что нет особого смысла заходить туда 10 раз в день по паре минут, тогда просто ничего не успеть. Offline программы ведут себя с точки зрения времени так же — занятие включает в себя набор упражнений по переводу слов с русского на английский, обратный перевод, выбор перевода из предложенных вариантов и т.п. и занятие требуется довести до конца, иначе оно просто не засчитывается. Последствия печальны, по крайней мере, для меня. На работе — совесть не позволяет выделить 30 минут, а дома — постоянно нет времени. Иногда конечно после прочтения очередной мотивирующей статьи вспыхивает энтузиазм, но через месяц он спадает, и начинаешь откладывать урок на потом, на завтра, обещаешь себе с понедельника начать заниматься каждый день… и постепенно на ресурс заходишь все реже, а потом забрасываешь вообще.

Поэтому было решено, что нужна программа, которая будет занимать минимальное кол-во времени и напоминать о себе сама. Выглядит это очень просто — всплывает окно, вам последовательно предлагают перевести несколько слов, после 5 правильных ответов — программа завершается. Через 30 мин она запускается вновь. Ввести 5 правильных ответов, особенно при навыках слепой печати — занимает от силы минуту, что позволяет учиться и дома и на работе (совесть вполне позволяет потратить пару минут в час). Если в данный момент вы выполняете какую-то важную работу — окно сворачиваем и программа затихает не отвлекая от задачи, пройти урок можно попозже во время неизбежных перерывов. Все равно каждый рано или поздно отвлечется от работы на чай, обед или еще что.
Таким образом получаем: частные повторения уроков с минимальными временными затратами на каждый отдельный урок, плюс напоминания о том, что неплохо бы повторить слова.

Далее — набор слов для изучения.
Почему-то все приложения считают, что после того как я выполнил необходимый минимум по кол-ву правильных ответов по слову, то его следует отметить выученным и больше не вспоминать о нем. Да я же его так забуду рано или поздно! Еще никогда не понимал разделение слов по тематическим словарям. В том же клиенте wordsteps для телефонов — у вас есть набор словарей, в каждом примерно по 50 слов, для урока вы выбираете какой-нибудь словарь, вас прогоняют по части этого словаря и в зависимости от того, насколько хорошо вы по мнению программы выучили то или иное слово, оно помечается к повторению через день, два, неделю и т.п. В итоге у меня скапливается штук пять различных словарей и в каждом только по 2-3 слова помеченных к повторению сегодня, и я вынужден просматривать все словари, что бы найти те, у которых есть необходимое для урока кол-во изучаемых слов. Возможности хоть как-то объединить словари, по крайней мере, в телефонном клиенте — нет.

В качестве решения был выбран формат в виде одного большого словаря. Как только в нем заканчиваются слова — просто добавляем в конец новые. А для урока слова выбираются следующим образом: формируем набор из 50 штук, которые мы начали изучать и добавляем все изученные. Каждому из слов проставляется рейтинг, зависящий от того, насколько давно это слово повторялось, какой процент по нему правильных ответов, правильно ли вы в последний раз его перевели и т.п., в итоге чем хуже вы слово знаете тем выше у него рейтинг. Затем из полученного списка случайным образом выбираются слово, которые будет предложено для перевода, причем, чем выше у слова рейтинг, тем больше вероятность, что именно оно будет вам предложено. Изученные слова, конечно, получают рейтинг сильно ниже, чем те, которые находятся на изучении, но все же рано или поздно вы и их повторите, причем, если при повторении наделаете много ошибок, они вновь перейдут в разряд неизученных. Статистика для подсчета рейтинга ведется отдельно по каждому из направлений переводов: Ru->En и En->Ru. Причем, когда нужно выбрать новое слово для изучения, например с русского на английский, в первую очередь беруться слова, которые изучались или изучаются в другом направлении перевода, что бы не получилось так, что с русского на английский вы научились переводить первую половину словаря, а с английского на русский вторую.
В итоге имеем — один большой словарь, каждое слово которого планомерно и последовательно изучается, а потом периодически повторяется.

Следующее — это словарь.
Если я решу самостоятельно создать свой словарь для изучения, большинство программ предоставит мне «удобный» GUI интерфейс, где я буду медленно, но верно вписывать слова по одному за раз. Что очень, на мой взгляд, неудобно, особенно если я хочу добавить сразу набор из штук 100, которые нашел где-то в интернете по интересующей меня тематике. А о возможностях «кастомизации» перевода у слова даже говорить не хочется, хорошо если позволяют ввести несколько возможных переводов через запятую, да регистр при ответе проигнорируют. И все — больше никаких возможностей.

Из этих соображений, GUI интерфейс для пополнения словаря, был отвергнут, а сам словарь был помещен в простенький текстовый файлик json формата, где нет ничего лишнего, только через запятую указаны слово, транскрипция и перевод. Теперь, как только мы находим в интернете очередную страничку с тысячей самых часто употребляемых слов английского языка, просто копируем ее, вставляем в любой редактор, желательно с поддержкой блочного редактирования, например в sublime text и за 5-10 минут приводим к нужному формату. Редактировать слова потом, тоже одно удовольствие. Так же в словарь были добавлены возможности настройки правильности перевода:
  1. Это широко распространенная возможность указывать через запятую несколько вариантов перевода слова, когда за правильный засчитывается любой из них
  2. Некоторые разные английские слова переводятся на русский одинаково н-р: «team» и «command» переводятся как «команда», поэтому просить перевести слово «команда» на английский без уточнения контекста как-то глупо. На этот случай, в словаре можно использовать уточнения в круглых скобках вот так: [«team», «ti:m», «команда(группа)»], [«command», «kə'mɑ:nd», «команда(приказ)»]. Теперь в упражнении программа будет явно просить перевести словосочетание «команда (группа)» или «команда (приказ)», при переводе же в обратную сторону слов «team» или «command» уточнение писать не нужно, требуется ответить только «команда»
  3. При переводе на русский, зачастую, окончание слова (или другая часть) не важна. Например — «angry» можно перевести как «сердитый», «сердит», «сердита» и т.п. Что бы избежать путаницы, в переводе можно пометить необязательную часть слова квадратными скобками например так: [«angry», "'æŋgri", «сердит[ый]»]. Теперь везде в интерфейсе перевод будет отображаться как «сердитый», но в качестве ответа на слово «angry», допускается вводить любое слово, которое начинается с «сердит», т.е. упомянутые выше: «сердитый», «сердит», «сердита» и т.п. Скобок может быть сколько угодно и в любой части слова


Пример оформления словаря можно посмотреть тут.
Конечно для составления такого словаря придется попотеть, но простота редактирования и результат — делают такую работу оправданной.

Ну и еще немаловажный плюс:
все это в open-source и написано на python, что в связи с простотой и удобочитаемостью языка — дает возможность очень широкому кругу лиц поправить исходники под себя. Что я и призываю активно делать, с выкладыванием интересных результатов доработки — обратно в репозиторий. Так же python «автоматически» обеспечивает высокую степень кроссплатформенности (скрипт проверялся в Windows7 и Ubuntu, надеюсь с другими версиями и Mac OS X проблем не будет, к сожалению, возможности протестировать везде — нет).

Синхронизация


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

Статистика


Ну и какая программа по пополнению словарного запаса без визуализации прогресса. В правом верхнем углу основного окна программы есть кнопочка с буквой «i» нажав на которую можно уведеть список всех слов из словаря с информацией по каждому из них
Подробная статистика по словам
а так же на последней вкладке видна суммарная статистика по всем словам сразу:
Общая статистика

Настройки


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

Установка


Какая-то специальная установка для скрипта не требуется достаточно прописать в автозагрузку строку вида «%path_to_Python26%\pythonw.exe %path_to_main.py%\main.py». Ну и конечно иметь установленный python 2.6 (хотя вполне вероятно, что все будет хорошо работать и на других версиях 2.X). Никаких специальных библиотек я не использовал, только стандартные возможности дефолтной поставки, для GUI взял tkinter, который в большинстве случаев поставляется вместе с python. В Linux python уже с большой вероятностью будет установлен, но возможно понадобится доустановить пакет tkinter.

Заключение


Собственно цель написания статьи и выкладывание программки в общий доступ — получения обратной связи от максимального кол-ва людей. Буду очень благодарен за новые идеи по доработке и за критику существующей реализации. Будет вообще здорово, если идеи и критика будут выражены в виде коммитов в репозиторий.

P.S.: Я отнюдь не претендую на то, что программа и принципы заложенные в нее — это универсальный и наиболее правильный способ изучения английских слов. Это всего лишь методика, которая на данном этапе помогает мне. Если программа облегчит жизнь кому-то еще, то это здорово и замечательно, ведь наличие альтернатив — это всегда хорошо.

Главное окно Хочу поделиться с уважаемым хабрасообществом очередным велосипедом, для пополнения английского словарного запаса. Представляет он из себя классические карточки для самостоятельного изучения слов: вам предлагается слово на русском или английском, вы вводите перевод. Описывать плюсы методики не буду, напомню лишь, что формирование словарного запаса — это один из первых этапов изучения языка — закладывание базы для дальнейшего, более полного изучения.
Программа очень простая, но имеет ряд особенностей, которые отличают ее от тех, что я пробовал перед тем, как взяться за собственную реализацию. Кому лень читать подробное описание, могут сразу перейти на github, где выложен скрипт и ознакомиться с ним, там же есть readme с описанием возможностей, в более сжатом виде.

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


Особенности


Первое и самое важное — время.
Все сервисы по изучению языка, что я пробовал, тот же, широко известный lingualeo, требуют, что бы на них выделяли хотя бы минут по 30, причем единовременно. Сами сервисы так устроены, что нет особого смысла заходить туда 10 раз в день по паре минут, тогда просто ничего не успеть. Offline программы ведут себя с точки зрения времени так же — занятие включает в себя набор упражнений по переводу слов с русского на английский, обратный перевод, выбор перевода из предложенных вариантов и т.п. и занятие требуется довести до конца, иначе оно просто не засчитывается. Последствия печальны, по крайней мере, для меня. На работе — совесть не позволяет выделить 30 минут, а дома — постоянно нет времени. Иногда конечно после прочтения очередной мотивирующей статьи вспыхивает энтузиазм, но через месяц он спадает, и начинаешь откладывать урок на потом, на завтра, обещаешь себе с понедельника начать заниматься каждый день… и постепенно на ресурс заходишь все реже, а потом забрасываешь вообще.

Поэтому было решено, что нужна программа, которая будет занимать минимальное кол-во времени и напоминать о себе сама. Выглядит это очень просто — всплывает окно, вам последовательно предлагают перевести несколько слов, после 5 правильных ответов — программа завершается. Через 30 мин она запускается вновь. Ввести 5 правильных ответов, особенно при навыках слепой печати — занимает от силы минуту, что позволяет учиться и дома и на работе (совесть вполне позволяет потратить пару минут в час). Если в данный момент вы выполняете какую-то важную работу — окно сворачиваем и программа затихает не отвлекая от задачи, пройти урок можно попозже во время неизбежных перерывов. Все равно каждый рано или поздно отвлечется от работы на чай, обед или еще что.
Таким образом получаем: частные повторения уроков с минимальными временными затратами на каждый отдельный урок, плюс напоминания о том, что неплохо бы повторить слова.

Далее — набор слов для изучения.
Почему-то все приложения считают, что после того как я выполнил необходимый минимум по кол-ву правильных ответов по слову, то его следует отметить выученным и больше не вспоминать о нем. Да я же его так забуду рано или поздно! Еще никогда не понимал разделение слов по тематическим словарям. В том же клиенте wordsteps для телефонов — у вас есть набор словарей, в каждом примерно по 50 слов, для урока вы выбираете какой-нибудь словарь, вас прогоняют по части этого словаря и в зависимости от того, насколько хорошо вы по мнению программы выучили то или иное слово, оно помечается к повторению через день, два, неделю и т.п. В итоге у меня скапливается штук пять различных словарей и в каждом только по 2-3 слова помеченных к повторению сегодня, и я вынужден просматривать все словари, что бы найти те, у которых есть необходимое для урока кол-во изучаемых слов. Возможности хоть как-то объединить словари, по крайней мере, в телефонном клиенте — нет.

В качестве решения был выбран формат в виде одного большого словаря. Как только в нем заканчиваются слова — просто добавляем в конец новые. А для урока слова выбираются следующим образом: формируем набор из 50 штук, которые мы начали изучать и добавляем все изученные. Каждому из слов проставляется рейтинг, зависящий от того, насколько давно это слово повторялось, какой процент по нему правильных ответов, правильно ли вы в последний раз его перевели и т.п., в итоге чем хуже вы слово знаете тем выше у него рейтинг. Затем из полученного списка случайным образом выбираются слово, которые будет предложено для перевода, причем, чем выше у слова рейтинг, тем больше вероятность, что именно оно будет вам предложено. Изученные слова, конечно, получают рейтинг сильно ниже, чем те, которые находятся на изучении, но все же рано или поздно вы и их повторите, причем, если при повторении наделаете много ошибок, они вновь перейдут в разряд неизученных. Статистика для подсчета рейтинга ведется отдельно по каждому из направлений переводов: Ru->En и En->Ru. Причем, когда нужно выбрать новое слово для изучения, например с русского на английский, в первую очередь беруться слова, которые изучались или изучаются в другом направлении перевода, что бы не получилось так, что с русского на английский вы научились переводить первую половину словаря, а с английского на русский вторую.
В итоге имеем — один большой словарь, каждое слово которого планомерно и последовательно изучается, а потом периодически повторяется.

Следующее — это словарь.
Если я решу самостоятельно создать свой словарь для изучения, большинство программ предоставит мне «удобный» GUI интерфейс, где я буду медленно, но верно вписывать слова по одному за раз. Что очень, на мой взгляд, неудобно, особенно если я хочу добавить сразу набор из штук 100, которые нашел где-то в интернете по интересующей меня тематике. А о возможностях «кастомизации» перевода у слова даже говорить не хочется, хорошо если позволяют ввести несколько возможных переводов через запятую, да регистр при ответе проигнорируют. И все — больше никаких возможностей.

Из этих соображений, GUI интерфейс для пополнения словаря, был отвергнут, а сам словарь был помещен в простенький текстовый файлик json формата, где нет ничего лишнего, только через запятую указаны слово, транскрипция и перевод. Теперь, как только мы находим в интернете очередную страничку с тысячей самых часто употребляемых слов английского языка, просто копируем ее, вставляем в любой редактор, желательно с поддержкой блочного редактирования, например в sublime text и за 5-10 минут приводим к нужному формату. Редактировать слова потом, тоже одно удовольствие. Так же в словарь были добавлены возможности настройки правильности перевода:
  1. Это широко распространенная возможность указывать через запятую несколько вариантов перевода слова, когда за правильный засчитывается любой из них
  2. Некоторые разные английские слова переводятся на русский одинаково н-р: «team» и «command» переводятся как «команда», поэтому просить перевести слово «команда» на английский без уточнения контекста как-то глупо. На этот случай, в словаре можно использовать уточнения в круглых скобках вот так: [«team», «ti:m», «команда(группа)»], [«command», «kə'mɑ:nd», «команда(приказ)»]. Теперь в упражнении программа будет явно просить перевести словосочетание «команда (группа)» или «команда (приказ)», при переводе же в обратную сторону слов «team» или «command» уточнение писать не нужно, требуется ответить только «команда»
  3. При переводе на русский, зачастую, окончание слова (или другая часть) не важна. Например — «angry» можно перевести как «сердитый», «сердит», «сердита» и т.п. Что бы избежать путаницы, в переводе можно пометить необязательную часть слова квадратными скобками например так: [«angry», "'æŋgri", «сердит[ый]»]. Теперь везде в интерфейсе перевод будет отображаться как «сердитый», но в качестве ответа на слово «angry», допускается вводить любое слово, которое начинается с «сердит», т.е. упомянутые выше: «сердитый», «сердит», «сердита» и т.п. Скобок может быть сколько угодно и в любой части слова


Пример оформления словаря можно посмотреть тут.
Конечно для составления такого словаря придется попотеть, но простота редактирования и результат — делают такую работу оправданной.

Ну и еще немаловажный плюс:
все это в open-source и написано на python, что в связи с простотой и удобочитаемостью языка — дает возможность очень широкому кругу лиц поправить исходники под себя. Что я и призываю активно делать, с выкладыванием интересных результатов доработки — обратно в репозиторий. Так же python «автоматически» обеспечивает высокую степень кроссплатформенности (скрипт проверялся в Windows7 и Ubuntu, надеюсь с другими версиями и Mac OS X проблем не будет, к сожалению, возможности протестировать везде — нет).

Синхронизация


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

Статистика


Ну и какая программа по пополнению словарного запаса без визуализации прогресса. В правом верхнем углу основного окна программы есть кнопочка с буквой «i» нажав на которую можно уведеть список всех слов из словаря с информацией по каждому из них
Подробная статистика по словам
а так же на последней вкладке видна суммарная статистика по всем словам сразу:
Общая статистика

Настройки


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

Установка


Какая-то специальная установка для скрипта не требуется достаточно прописать в автозагрузку строку вида «%path_to_Python26%\pythonw.exe %path_to_main.py%\main.py». Ну и конечно иметь установленный python 2.6 (хотя вполне вероятно, что все будет хорошо работать и на других версиях 2.X). Никаких специальных библиотек я не использовал, только стандартные возможности дефолтной поставки, для GUI взял tkinter, который в большинстве случаев поставляется вместе с python. В Linux python уже с большой вероятностью будет установлен, но возможно понадобится доустановить пакет tkinter.

Заключение


Собственно цель написания статьи и выкладывание программки в общий доступ — получения обратной связи от максимального кол-ва людей. Буду очень благодарен за новые идеи по доработке и за критику существующей реализации. Будет вообще здорово, если идеи и критика будут выражены в виде коммитов в репозиторий.

P.S.: Я отнюдь не претендую на то, что программа и принципы заложенные в нее — это универсальный и наиболее правильный способ изучения английских слов. Это всего лишь методика, которая на данном этапе помогает мне. Если программа облегчит жизнь кому-то еще, то это здорово и замечательно, ведь наличие альтернатив — это всегда хорошо.

Последние комментарии

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
blogger