С чего начать учить
Как изучать языки программирования
Я ни в коей мере не утверждаю, что указанный мной способ лучший из возможных. Более того, я вовсе не уверен в том, что он вообще правильный. Возможно, если бы моим первым языком был не Си, а какой-либо из функциональных языков или ассемблеров, моё мнение было бы иным, и жизнь моя сложилось бы совсем иначе. Так что весь нижеизложенный материал воспринимайте со здоровым скептицизмом.
Немного личных воспоминаний
С детства я мечтал о карьере биолога, но в тринадцать лет, впервые ознакомившись с компьютером в школе, задумал стать крутым хакером. Когда у меня в пятнадцать лет появился регулярный доступ к компьютеру, первой мыслью было изучение программирования. Мой выбор пал на C++, была куплена книга из серии «Для чайников», но всё было ужасно скучным, непонятным и неинтересным. Уже тогда я понимал, что с C++ что-то не так. И сам ход изложения материала в книге начинался с краткого экскурса в функции, после чего сразу переходили к классам, причём всё объяснялось не на живых примерах, а на уровне глобальных абстракций. Авторы с увлечением рассказывали о прекрасном мире ООП, в котором нам посчастливится жить, про машины с разными функциями или животных с разным поведением. В общем, в то время изучение C++ и сама концепция ООП были заброшены.
Спустя несколько лет, во время учёбы в университете, я увидел в киоске маленькую книгу «Язык программирования Си», Брайана Кернигана и Денниса Ритчи. Купив её, я сразу же приступил к чтению. И о чудо! Всё было ясно, легко и ужасно интересно. Язык C очень маленький, простой и элегантный (я всё ещё так считаю), а сама книга была написана нормальным человеческим языком, не лишённым однако строгости. Я перечитывал её много раз, выполнял упражнения, и, таким образом, вскоре освоил этот язык и стандартную библиотеку функций.
Но на чистом Си много не напишешь, а мне хотелось писать серьёзные программы с красивой графикой. Программировал я в Slackware Linux, ибо в Windows как в среде программирования полностью разочаровался. В те времена я вообще много экспериментировал с разными системами, включая QNX и NetBSD. Но в свободных Unix системах выбор вменяемых графических библиотек был невелик: GTK+ и Qt. Причём вторая была написана на C++, с которым я не желал связываться, а в первой не было ясно вообще, как работать. И, если мне не изменила память, их редакторы интерфейсов генерировали огромный код, который ещё нужно было вставлять в свою программу, а не ресурсные файлы, что казалось мне совершенно ужасным.
Так бы я и не начал карьеру, если бы случайно не познакомился с Mac OS X, которую недавно портировали на Intel процессоры. Попросив у знакомого диск с Mac OS X 10.5 Leopard, я установил её на свой HackBook и первый раз ощутил себя на Земле Обетованной.
Помня о своём неудачном первом разе, я ещё долгое время скептически относился к объектно-ориентированному программированию. В начале даже планировал писать программы на чистом Си, используя библиотеку Carbon. И, как выяснилось – зря. Objective-C я изучил по официальному руководству компании NeXT – Object-oriented programming and the Objective-C language. В те времена изучающих новый язык ещё не считали поголовно идиотами или школьниками, поэтому книга написана нормальным языком, а авторы предполагают знание Си и общее представление о программировании. Оказалось, что ООП – это легко, интересно и очень удобно, а объекты – вовсе не абстрактные сущности, а всего лишь структуры, объединённые с функциями. На мой взгляд, именно так и нужно рассказывать основы объектно-ориентированного программирования.
В Xcode и основам Mac OS X я разобрался по замечательным урокам Алексея Борескова. После чего сразу же нырнул в Mac Developer Library, взялся за изучение официальных руководств по Cocoa и прочим библиотекам, параллельно начав писать программы.
Моим первым серьёзным проектом было портирование уроков по OpenGL с Windows на Mac OS X, которое растянулось на целый год. Лишь закончив его, я почувствовал себя достаточно уверенно, чтобы устроиться на регулярную оплачиваемую работу.
Изучая Objective-C, нельзя не услышать о Smalltalk, ибо на него очень часто ссылаются в материалах по Objective-C, видимо, извиняясь за непривычный синтаксис. Но Smalltalk был похож на Неуловимого Джо – все о нём слышали, но мало кто его видел или использовал. В конце концов и мне стало интересно, откуда есть пошла русская земля.
Узнав, что компания Cincom – лидер в сфере решений на Smalltalk – в рекламных целях предоставляет свои инструменты для некоммерческого использования, я сразу же заказал их. Менее чем несколько недель в мою дверь постучал курьер и вручил мне фирменную коробку с несколькими CD дисками и официальным руководством. Всё было совершенно бесплатно, даже за доставку не пришлось платить. На одном из дисков обнаружился VisualWorks – одна из самых мощных и быстрых коммерческих сред по разработке на Smalltalk в мире.
После я узнал про Squeak – свободную реализацию Smalltalk, основанную на оригинальной версии Smalltalk-80, – и познакомился со многими её разработчиками. Для обучения и исследований он подходит намного больше, чем прочие версии. Кстати, сообщество программистов на Smalltalk очень дружное.
Почти все серьёзные проекты являются кроссплатформенными, и их ядра написаны на C++, ибо Objective-C очень мало распространён за пределами Apple экосистемы. Главным образом из-за отсутствия удобных средств разработки. (Будем надеяться, что благодаря LLVM ситуация вскоре улучшится.) Так что мне пришлось изучить C++, несмотря на явную нелюбовь к нему. К счастью, к этому времени я уже научился отделять зёрна от плевел.
Впрочем, хакером я так и не стал.
Порядок изучения языков
C – первый язык
Это маленький (всего 32 ключевых слова в C89, 37 слов в C99 и 44 слова в C11) императивный язык, и его первичное изучение не займёт у вас много времени. В то же время C – очень мощный промышленный язык. Главным образом используется в системном программировании, написании аппаратно независимых компонент операционных систем, компиляторов и трансляторов языков, библиотек, программировании микроконтроллеров. По версии TIOBE Programming Community Index Си всё ещё лидирует по использованию, изредка вежливо уступая первенство Java.
Objective-C – второй язык
Он представляет собой очень тонкий слой поверх чистого Си. Все знания, полученные при изучении Си понадобятся вам в Objective-C. Причём объектно-ориентированная парадигма концептуально и синтаксически отделена от процедурной: в нём вы никогда не спутаете вызов функции и посылку сообщения. Основное его применение – создание пользовательских программ на устройствах компании Apple.
Smalltalk – третий язык
После Objective-C он покажется вам очень знакомым. И не зря, ведь именно его синтаксис и объектная модель были положены в основу Objective-C. Интересен прежде всего чистой реализацией объектно-ориентированной парадигмы. Все конструкции языка, включая условия, циклы, управляющие структуры и операторы, реализованы через механизм сообщений и вынесены в стандартную библиотеку классов. Несмотря на малое распространение он используется в крупных сложных проектах, где важна масштабируемость, гибкость и возможность изменений во время работы. Например, в финансовой сфере (Kapital – система оценки и управления рисками в JPMorgan), управлении производством (CIM в Texas Instruments), логистике (IRIS-2 в Orient Overseas Container Lines), страховании (Desjardins General Insurance Group) и прочих.
После изучения указанных языков, все прочие можно учить в любом порядке, в зависимости от ваших личных предпочтений. Ниже я приведу список наиболее важных и интересных языков.
Очень избыточный (число ключевых слов превалило за 100), запутанный и сложный в изучении язык, со множеством исключений и массовыми нарушениями ОО парадигмы. Но если вы хотите работать в индустрии, знать его нужно, так как альтернативы ему не предвидится. На C++ написана большая часть научных и инженерных программ, игр, фото- видео- аудиоредакторов и много чего ещё. После того, как Objective-C и Smalltalk сформировали у вас правильное представление об ООП и программировании, C++ уже не сможет повредить ваш разум. Но всё равно будьте очень осторожны. Вообще, слово «знать» в применении к C++ имеет несколько иное значение, ибо знать его в том же смысле, в каком можно знать, например, Objective-C или Java мало реально. Хорошая новость: в большинстве случаев для успешной работы вам нужно освоить лишь небольшое подмножество языка. Великолепным примером грамотного использования C++ является I/O Kit – интерфейс программирования драйверов в Mac OS X.
Assembler
Ассемблеров существует очень много, намного больше, чем различных архитектур процессоров, так как они представляет собой всего лишь мнемонические коды машинных команд и различаются в разных операционных системах и их версиях. В настоящее время на них не пишут большие программы (исключая, разве что Demo сцену). Однако они широко используются при написании компьютерных вирусов и антивирусов, аппаратно зависимых компонент операционных систем, программировании микроконтроллеров, в реверсивной инженерии и отладке программ.
JavaScript
Пожалуй, главный язык программирования Всемирной Паутины. Основное его применение – создание динамических web страниц на клиентской стороне. Каждый браузер снабжён интерпретатором и средствами для анализа и разработки на нём. Если вы хотите заниматься web программированием, JavaScript – ваш выбор. В нём реализованы по меньшей мере три парадигмы: процедурная, функциональная и объектно-ориентированная, причём последняя основана на прототипах. На первый взгляд JavaScript кажется очень лёгким, ибо позволяет писать в C-подобной манере, но в реальности он сложный. Большинство JavaScript разработчиков программируют не с использованием языка и даже не на языке, а на одной из библиотек.
Язык Ada
По крайней мере его стоит выучить, чтобы шокировать знакомых священников громким заявлением. Шучу. Благодаря правильному дизайну, многочисленным встроенным механизмам и проверкам Ada является одним из самых безопасных языков программирования. Вряд ли вы будете регулярно использовать его (если, конечно, вам не повезло работать в Министерстве Обороны США, авиационной или космической сфере), но ознакомиться с ним крайне полезно. После его изучения вы узнаете, каким должен был быть C++.
Scheme
Функциональный язык, разработанный в Массачусетском Технологическом Институте специально для обучения студентов программированию. Один из диалектов знаменитого Lisp. Интересен своей элегантностью и минимализмом. В промышленности не замечен, главным образом используется (и весьма успешно) в образовательных учреждениях. Своё знакомство с миром функционального программирования лучше начать именно с него.
Знание разных языков позволит вам выбирать нужный язык под конкретную задачу, а не наоборот.
Особое мнение
Многие авторы советуют первыми изучать скриптовые языки высокого уровня, такие, как Shell, Perl, JavaScript или Scheme. Но лично я рекомендую первым языком учить именно Си. Скриптовые языки с автоматическим управлением памятью, скрывающие всю сложную работу с указателями глубоко в недрах программы, действительно легче в освоении, но все их преимущества можно в полной мере понять и оценить лишь после изучения языка уровнем ниже.
Когда вы научились считать каждый байт, привыкли проверять границы массивов, освоили ручное управление памятью и разобрались с указателями и адресной арифметикой, переход на любой скриптовый язык покажется вам лёгкой прогулкой. Обратное же, как правило, не верно. Если вы привыкли, что ваш интерпретатор всё делает за вас, освоиться в C или C++ будет намного сложнее, особенно, в процессе смены специализации. Ещё вы будете знать, что происходит под капотом вашей программы, и сможете примерно представлять в уме, как могли бы выглядеть на Си выражения используемого языка.
По схожей причине ряд учёных предлагает изучать физику не с классической, а с упрощённой версии квантовой механики. Чтобы у студентов сразу формировалось правильное представление о мире.
Более того, поскольку практически все интерпретаторы и компиляторы языков высокого уровня, а также их модули расширений (во всяком случае самые важные их компоненты) написаны на C, его знание будет вам очень полезным, если вы захотите внести в них изменения или исправления.
Также не нужно выбирать первым объектно-ориентированный язык. Не бегите впереди паровоза. Дело в том, что временные затраты на проектирование и реализацию классов весьма существенны. И в маленьких учебных программах польза от них не очевидна. ООП является логическим расширением процедурного программирования, и изучать его лучше именно в таком ключе. После того, как вы написали несколько сложных программ на процедурном языке, естественным путём пришли к объектным моделям, вам сразу будут ясны все преимущества языков, реализующих объектно-ориентированную парадигму. И ещё, на первом языке обычно изучают основы программирования и алгоритмы, а применение объектной парадигмы, требующей немалого объёма «лишней» работы, будет отвлекать ваше внимание.
Хороший пример объектной модели, реализованной на языке C – библиотека CoreFoundation в Mac OS X.
Как учить язык?
Изучение языка программирования очень похоже на изучение обычного человеческого языка общения. Чтобы выучить новый язык вам понадобятся:
Во-первых, хороший учебник. Не «Для чайников» и не «За 21 день». Лучше, если это будет учебник именно по языку, а не руководство по созданию и выкладыванию игры в App Store (в котором процессу выкладывания посвящено больше времени, чем самому программированию). Во-вторых, стандарт языка ANSI/ISO и справочник по стандартной библиотеке. И, в-третьих, учебные и реальные примеры, которые можно найти в Сети.
Читайте учебники, выполняйте упражнения, изучайте чужие и пишите свои учебные примеры. Экспериментируйте с языком, например, попробуйте реализовать на нём несвойственные ему парадигмы. Полезное упражнение не только поможет вам лучше прочувствовать язык, его достоинства и недостатки, но и приведёт вас к правильной мысли – не существует универсальных языков. Бывают языки хорошо или плохо спроектированные.
Лучшее упражнение – это написание небольших программ, реализующих различные структуры данных и алгоритмы – деревья, списки, таблицы, графы, поиск и сортировку из книги «Алгоритмы. Построение и анализ», Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн (Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein). Несложные функции стандартной библиотеки или утилиты командной строки. Не нужно пытаться сразу писать большие и сложные программы, всё равно вы ещё плохо знаете язык.
Ещё один хороший способ лучше разобраться в языке – портировать на него учебные примеры или реальную программу с другого языка. По сравнению с разработкой программы с нуля, при портировании у вас уже есть образец перед глазами, и вы сможете всецело сфокусироваться на языке, а не на архитектуре и проектировании. В отличие от многих моих коллег лично я не считаю портирование скучным занятием.
У многих на фоне первых успехов возникает желание сразу начать писать большие серьёзные программы. Я крайне не рекомендую вам следовать их примеру. Взявшись за сложный проект, вы через месяц обнаружите, что ваш первый код был ужасен и приметесь его переписывать, вполне возможно, вам потребуется ещё несколько итераций. В результате вы потратите время и силы на то, что нужно отрабатывать на учебных или небольших программах. Так что не торопитесь – к счастью, примерно за год изучения и упражнений легко можно выйти на приемлемый уровень коммерческой разработки.
Даже если вы опытный программист, лучше вначале разберитесь в языке – как известно, программисты на Fortran (в основном касается ранних версий) могут на любом языке писать как на Fortran. Дело в том, что язык программирования не ограничивается синтаксисом и семантикой, кроме них он включает в себя набор шаблонов, приёмов, идиом и парадигм характерных именно для него. За неделю разобраться в них не представляется возможным.
Подпишитесь на каналы и новостные группы, списки рассылки, посвящённые вашему языку. Ценным источником информации и ответов на многие вопросы являются профильные сообщества в stackexchange.com и аналогичных ресурсах.
В последнее время получил широкое распространение иная стратегия – нацеленная на немедленный результат. Появилось множество книг и курсов, обещающих сделать из человека без малейшего представления о программировании высококлассного специалиста менее чем за месяц. Немало людей посещают подобные курсы (за приличные деньги), учатся писать screensaver, радостно публикуют его в Сети и получает на выходе красивый сертификат с которым бегут устраиваться в фирмы. Подобный подход опасен тем, что создаёт иллюзию знания: человек наспех выучивает одну технологию (как правило не самую лучшую) и считает её единственно возможной.
Советы полиглота: как выучить любой язык без слез и ругательств
У большинства людей сложилось впечатление, что изучение языка похоже на квантовую механику. Как бы долго ты не разбирался с темой, все равно почти все будет непонятным.
Этих людей можно понять. Достаточно вспомнить, как мы сами учили английский в школе. За 6-8 лет обучения большинство учеников могли воспроизвести только фразы «My name is…» и «London is the capital of Great Britain». Свободное владение? Не, не слышал.
Но откуда тогда появляются полиглоты, которые знают по несколько десятков языков? Неужели они знают какой-то секрет, который позволяет им учить языки намного быстрее?
В команде EnglishDom есть полиглот, который знает 7 языков. Марина свободно говорит на украинском, русском, английском, французском, польском, немецком и шведском.
И она всегда убеждает нас, что учить языки на самом деле легко. Мы подробно обсудили с ней как она этого достигла и стоит ли ее сжечь за это на костре как ведьму. В общем, читайте и на ус мотайте.
Совет 1. Сделайте язык, который вы изучаете, родным
Вы можете спросить: «Что за муть? У меня ведь есть родной язык. Их не может быть два!». Но для начала стоит понять одну важную вещь. У человека нет врожденного понимания языка.
Мозг одинаково хорошо воспринимает языковые конструкции, вне зависимости от характера языка. Это доказывает один-единственный факт.
Маленькие дети в любой стране учатся говорить примерно в одном и том же возрасте — 1-2 года. Уже в 4 года дети в полном объеме могут свободно оперировать комплексными понятиями и фразеологизмами.
А это значит, что для изучения абсолютно любого языка мозг тратит одинаковое количество ресурсов, вне зависимости от сложности языка.
Главная сложность изучения второго языка — его отличия от первого. Объясним. Мозг воспринимает родной язык как константу. И когда человек начинает учить еще один — он конфликтует с первым.
Если объяснить на пальцах:
В русском языке вы знаете, что А+В=3
А в английском оказывается, что А+В=8, а С еще и в уме нужно держать.
Ребенок, который учит несколько языков с самого раннего возраста — к примеру, в билингвальной семье — будет воспринимать такие особенности как само собой разумеющиеся. Но взрослый мозг буксует от подобных противоречий. К примеру, русский человек привык, что он может ставить члены предложения почти в любом порядке.
Я люблю тебя.
Я тебя люблю.
Тебя я люблю.
Люблю я тебя.
При желании можно написать еще. При этом все эти фразы абсолютно равнозначны. Отличаются разве что тонкими нюансами. А вот на немецком есть только два возможных варианта.
Они тоже отличаются по нюансам, но в немецком вы не можете сказать «Liebe ich dich». Это будет неправильно грамматически.
В английском все еще «интереснее».
И в принципе все. Фишка, которая прошла с немецким, здесь уже не работает. «You love I» — это неправильно. О других вариантах и вспоминать нечего. Но можно поиграться и перестроить предложение. К примеру, фразу «It’s you I love» использовать можно, но у нее будет другой смысл.
К чему мы ведем. Изучая иностранный язык, нельзя мыслить категориями родного. Зачастую они только мешают.
Что с этим делать? Как мы уже написали, нужно сделать иностранный язык родным. Используйте его в быту.
И нет, это не означает говорить с родными только на нем. Хотя если они знают тот язык, которые вы учите, — это было бы идеально.
Чтобы облегчить процесс, даем вам 2 эффективных хитрости.
Хитрость 1.
Просто поменяйте язык на своем телефоне и компьютере. Это намного проще, чем может показаться. Визуально вы будете помнить, где какие функции находятся, поэтому пользоваться гаджетами сможете без проблем.
Следующий этап — использование программ и игр на этом языке. Это чуть сложнее, но в целом за пару недель вы привыкнете и не будете ощущать практически никакой разницы.
«Когда моему ученику нужен максимальный результат за кратчайшие сроки, то мы делаем максимальное погружение в языковую сферу, которое только возможно без переезда.
Все гаджеты и используемые программы — только на том языке, который изучаем. Любые материалы для чтения: книги, журналы, инструкции, мемасики и все остальное — тоже только на нем.
Сериалы и фильмы — ну вы поняли.
Если бы еще семью ученика можно было заставить говорить на изучаемом языке, было бы идеально. Но это мечты, мечты».
Хитрость 2.
Слушайте радио и песни на том языке, который вы учите. Смотрите фильмы, сериалы, телепередачи. Даже в том случае, если ничего не понимаете.
Штука в том, что нужно привыкнуть к звучанию языка, почувствовать его мелодичность.
Здесь мы просто не могли не вставить этот отрывок из сериала «Клиника». Кто в очередь, чтобы научиться говорить, как милая молочница?
Человек долго привыкает именно к звучанию языка. Возьмем, например, украинский и польский. В языках примерно 70% общей лексики — даже несмотря на то, что один на кириллице, а второй — на латинице.
В теории, украинец должен понимать речь поляка почти без подготовки, но в реальности за множественными польскими шипящими разобрать хоть что-нибудь крайне сложно. Зато через месяц-два в польской среде украинец начинает свободно говорить по-польски даже без дополнительного изучения. А все потому, что мозг привык к звучанию языка и научился распознавать речь.
Конечно, с китайским такая штука не сработает из-за отсутствия этих самых параллелей и общей лексики, но мы все же рекомендуем привыкать к звучанию языка. Этот способ также поможет намного проще поставить правильное произношение.
Совет 2. Поддерживайте актуальность языка
Актуальность языка — это комплексное понятие. Начнем с актуальности мотивационной.
Чтобы изучение языка давало хорошие результаты, нужно быть постоянно замотивированным.
Мотивация подбирается строго индивидуально. Одни предприниматели учат язык, чтобы общаться с заграничными деловыми партнерами и заключать с ними выгодные контракты. А другие бизнесмены учат язык, чтобы обучаться у лучших профессионалов мира.
Одни школьники учат язык, чтобы поступить в престижный вуз из Лиги плюща. А другие — чтобы смотреть сериалы, фильмы и мультики в оригинале.
Один из самых интересных примеров мотивации в изучении языка — это Джузеппе Меццофанти, итальянский кардинал XVIII-XIX века.
По документированным данным, кардинал свободно владел 38 языками. И еще 30 языков и диалектов мог понимать и объясняться на них.
С личностью Меццофанти есть интересная история.
Кардинала как-то пригласили в тюрьму исповедать преступника перед смертной казнью. Но вот незадача — преступник говорил на неизвестном языке и не знал ни одного из тех, на которых говорил кардинал.
Кардинал узнал, что это за язык и, вернувшись домой, всего за одну ночь выучил его на достаточном уровне, чтобы принять исповедь.
История уже обросла вымыслами и стала больше похожей на легенду, но она вполне может оказаться правдой.
Практика говорит, что базовым уровнем языка можно овладеть за месяц. Остальное зависит от мотивации и периодичности занятий.
Есть один интересный способ, который способен увеличить результативность обучения в разы.
Устройте соревнование со своими друзьями.
Человеческий мозг устроен таким образом, что конкуренция и соперничество подстегивает его работать эффективнее.
Известный полиглот Мэтью Юлден на своих выступлениях часто рассказывает историю, как он со своим братом-близнецом выучили турецкий язык на спор за 7 дней.
Он не раскрывает предмет спора, но подчеркивает, что через неделю оба брата смогли понятно изъясняться на турецком и в большинстве своем понимать турецкую речь.
То есть, им понадобилось всего лишь 7 дней, чтобы выучить язык с нуля до уровня бытового общения. Если смогли они, то что мешает остальным?
С мотивацией вроде разобрались. Теперь немного об актуальности временной.
Одно из основных правил в изучении языков звучит: лучше заниматься каждый день по 30 минут, чем раз в неделю по 5 часов.
Все потому, что ежедневные занятия дают стабильные результаты, которые постоянно накапливается. А занятия редкие или нерегулярные практически не приносят пользы. Все дело в механизме забывания.

Кривую забывания построил немецкий психолог Герман Эббингауз. Она показывает, как в памяти удерживаются знания.
Уже на следующий день человек забывает до 50% всей изученной информации. И чем больше промежутки между повторениями, тем сильнее забывание. Через неделю человек забудет до 90% полученных знаний — и на их повторение нужно будет потратить почти столько же усилий и времени, сколько на изучение.
Но если повторять информацию каждый день, кривая забывания выравнивается. Если 3 дня подряд вы будете повторять, к примеру, новые слова, то через неделю в памяти останется 80-90% от изученного. При этом суммарное время занятий и в первом (раз в неделю) и во втором (каждый день) случаях абсолютно одинаковы.
Именно поэтому в большинстве программ изучения иностранных языков занятия ведутся через день — как наиболее оптимальная тактика с точки зрения затрат времени и полученных результатов.
Совет 3. Сделайте процесс изучения языка интересным и веселым
Если занятия проходят весело, это стимулирует мозг для создания ассоциативных связей с информацией, которая в него поступает. А это значит, что знания будут усваиваться проще и крепче.
Что интересно, вы можете выбрать абсолютно любые инструменты и приемы занятий, которые кажутся вам занимательными и веселыми.
Главное — получать удовольствие от процесса. Ограничений здесь практически не существует.
Мы в EnglishDom часто рекомендуем молодым людям играть в компьютерные игры на английском. Реакция почти всегда одинаковая:
Зато потом просто море энтузиазма, когда эти ученики разбирают и пересказывают диалоги из Far Cry или Witcher 3. На стандартных упражнениях обучение идет раза в 4 медленнее.
Если вы изучаете язык самостоятельно, обязательно используйте юмор в качестве обучающего инструмента. Даже просмотр легендарных «Друзей» — это уже отличный способ провести время, прокачать восприятие английского на слух и расширить лексикон.
«Как-то с учеником вместе переводили русские матерные песни и частушки на английский.
Занятие сложное, ведь нужно не только перевести по смыслу, но еще и ритмику и рифмы сохранить, чтобы петь удобно было.
Была куча шедевров вроде:
Down the river drifts an axe
From the town of Byron.
Let it float by itself —
Fucking piece of iron!
Потом эти частушки пели чуть ли не каждое занятие. Настроение отличное — и учеба шла как по маслу каждый раз.
И если кто мне скажет, что это сомнительный способ учить английский, так я отвечу, что ученика своего за 5 месяцев подтянула, и он без проблем сдал TOEFL».
Все стереотипы длительного и сложного изучения языков — это чушь. Они все родом из школьных неудач. Ведь многим кажется, что если в школе все было настолько сложно, то и во взрослой жизни может быть только сложнее.
Но на самом деле все проще, чем кажется. И чем больше языков ты знаешь, тем проще учатся следующие. После пяти дело пойдет лучше, обещаем! Можете проверить.
А пока используйте хитрости от полиглота и учите языки с удовольствием. Если вы учите английский, то у нас для вас хорошие новости.
EnglishDom.com — онлайн-платформа по изучению английского
Прокачай разговорный английский на онлайн-курсах от EnglishDom.com. По ссылке — 2 месяца подписки на все курсы в подарок.
А для живого общения выбирай обучение по Skype с преподавателем. Первый пробный урок — бесплатно, регистрируйся тут. По промокоду goodhabr2 — 2 урока в подарок при покупке от 10 занятий. Бонус действует до 31.05.19.



