Сегодня хотим поговорить с вами о сравнении изучения иностранного языка с изучением нового языка программирования. Сравнивать будем английский и программирование на детище всем известной компании Microsoft — C#. Размышляет на тему наш эксперт Антон.
Немного о бэкграунде
Я овладел английским до того, как начал изучать C#. Учился как самостоятельно, так и в школе. В данный момент моего уровня хватает, чтобы смотреть сериалы без перевода и читать профессиональную литературу. Сначала я программировал на Turbo Pascal, потом на Borland Delphi, а после этого на PHP. Теперь на С#. Также пишу скрипты на PowerShell для основных задач.
Элементы языка
С чего обычно начинается изучение языка? С осмотра его атомарных единиц. В иностранном языке это буквы и звуки, в случае языка программирования — переменные.
Дальше в языке мы начинаем изучать построение слов, а из слов строим фразы. В программировании же мы учимся сначала элементарным операциям, которые затем превращаются в функции и процедуры.
Сравните сами:
Mary.
Mary is a girl.
Mary has a green dress.
Посмотрим на это с точки зрения программирования: есть переменная “Mary” типа “girl” со свойством “dress”, у которого значение “green”.
Синтаксис
Синтаксис языка программирования по своей структуре очень схож с построением фразы на английском языке. Да возьмём даже шире: законченную программу можно сравнить с рассказом, который подчиняется аналогичным правилам. Мы начинаем с описания героев произведения в рассказе и с описания классов и методов в программировании, затем переходим к развитию сюжета и основной логике соответственно, а заканчиваем выводами истории и на экран.
Попробуем рассмотреть «Три поросёнка» с такого ракурса. У нас есть класс “поросёнок” со свойствами “имя” и “домик”. Есть экземпляры класса “первый поросёнок”, “второй поросёнок” и “третий поросёнок”. Дальше необходимо свойствам “имя” и “домик” каждого поросёнка присвоить значения. Как описанное запрограммировать?
public Class Pig
{
public string Name {get; set;}
public string House {get; set;}
}
Pig pig1 = new Pig();
Pig pig2 = new Pig();
Pig pig3 = new Pig();
pig1.Name = “Nif-Nif”;
pig1.House = “Straw”;
pig2.Name = “Nuf-Nuf”;
pig2.House = “Wood”;
pig3.Name = “Naf-Naf”;
pig3.House = “Stone”;
Скажем это по-английски:
There are three little pigs.
The first pig’s name is Nif-Nif, the name of the second pig is Nuf-Nuf and the third one is Naf-Naf.
Nif-Nif lives in a house made of straw, Nuf-Nuf lives in a wooden house and Naf-Naf lives in a stone house.
Что в одном, что в другом случае мы обозначили три экземпляра класса “поросёнок“, а потом каждому из них присвоили значения свойств “имя” и “дом проживания“.
Теперь, когда мы рассмотрели общую структуру, перейдём к более мелким частям. Выше я упоминал буквы и фразы в иностранном языке и переменные и выражения в программировании. Научившись выражать языком C# элементарные конструкции, можно, изучив правила построения предложения в английском, пробовать строить законченные фразы.
Представим, что у нас богатырь стоит перед путеводным камнем и читает, куда идти и что ему за это будет. Как это описать машинным кодом?
Switch (Dobrynya.Walk)
{
Case “Left”:
Dobrynya.Head = false;
Break;
Case “Right”:
Horse.Life = 0;
Break;
Case “Forward”:
Dobrynya.Happy = true;
Break;
}
Здесь мы видим последствия его действий: если Добрыня пойдёт налево, то сложит голову, если направо, то потеряет коня, а если прямо, то получит счастье.
Теперь напишем это по-английски:
If Dobrynya walks to the right, his horse will die.
If Dobrynya walks to the left, he will lose his head.
If Dobrynya goes forward, he will be safe and happy.
Как видите, такое же описание блоков условий и описание изменений свойств объектов.
Зная язык программирования, вы сможете освоить грамматические правила построения фраз и на иностранном языке.
А дальше всё как в программировании: наращиваем словарный запас, заучивая новые слова. Сравните это с чтением MSDN и TechNet. Составлять изученные слова во фразы и предложения, а предложения уже состыковывать между собой. Это похоже на написание логики на языке программирования. Да и вообще, что программирование — это диалог машины с человеком или машины с машиной, что человеческий язык — это общение двух людей. И там, и там языковые элементы подчиняются законам и правилам, которые человеку с техническим складом мышления не составит труда систематизировать и применять на практике в свою пользу.
Конечно, это лишь размышления на тему: данная статья не призывает к изучению английского именно таким методом, но показывает, что он имеет право на жизнь.
Статья была написана по заказу компании PuzzleEnglish и опубликована на Хабре