Мое первое знакомство с языком программирования было на Python на курсе информатики, когда я был студентом Калифорнийского университета в Беркли. Когда я впервые познакомился с кодированием, я начал с изучения основ: что такое переменная? Условный? Петля? Я изучил строительные блоки программирования - как приказать компьютеру выполнять определенные действия.

Когда я начал изучать новый язык программирования, процесс был совершенно другим. В Flatiron первым языком, который вы изучаете, является Ruby. Как и в случае с Python, мы изучили фундаментальные концепции и действия - опять же, переменные, условные выражения, циклы и т. Д. И Python, и Ruby построены на фундаментальных концепциях информатики. Действия, которые они передают, одинаковы, но способ их выражения отличается. Хотя я нахожусь в самом начале понимания того, что отличает язык программирования от других, я начинаю понимать, на что будет похоже изучение новых языков по мере продвижения в моей карьере разработчика.

Примерно в то время, когда я впервые увидел код в колледже, я также начал изучать китайский язык. Как и информатика, китайский язык был полностью вне моей зоны комфорта. Я не считал себя человеком математики / естествознания или кем-то особенно одаренным в языках. Мандарин был привлекательным для меня, потому что он полностью отличался от всего, что я уже знал. Мне был очень любопытен язык и Китай, который казался настолько отличным от США, насколько я мог себе представить. Мандаринский язык, безусловно, ничем не отличался от английского.

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

Хотя обучение программированию и обучение говорению на мандаринском языке были, по сути, совершенно разными для меня опытом, я заметил некоторые параллели. Если вы изучали иностранный язык, списки лексики и упражнения по грамматике будут вам знакомы. Если вы дошли до уровня владения иностранным языком, вы знаете, что, когда вы знаете достаточно словарного запаса и грамматических шаблонов, вы можете комбинировать их, чтобы выразить себя - чтобы передать все более сложные идеи, которые вы обычно выражаете на своем родном языке. Язык модульный, как и кодирование. Написание кода на самом деле просто объединение наборов выражений или инструкций в все более и более крупные компоненты программного обеспечения, чтобы в конечном итоге составить одно приложение.

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

Размышляя о взаимосвязи между этими типами языков, я подумал о том, пишут ли носители китайского или любого другого языка, кроме английского, код на английском языке. Конечно, есть. В большинстве доминирующих языков программирования используются латинские буквы и английские слова. Переменные определяются словами «var», «int» и «string», а процедуры, такие как условные выражения и циклы, - такими словами, как «if» и «while». Каким был бы опыт обучения программированию, если бы вы сначала не знали английский?

Так почему же большинство языков программирования на английском? Во-первых, более трети из 8 500+ языков программирования созданы в англоязычных странах. Даже доминирующие языки, которые возникли не в англоязычных странах, такие как Python (Нидерланды) и Ruby (Япония), были написаны на английском языке, чтобы приспособиться к международной аудитории разработчиков. Как и в других областях и отраслях, английский стал общим языком. С учетом сказанного, существует множество примеров языков программирования, написанных на языках, отличных от английского, и во многих базах кода по всему миру будут комментарии, написанные на иностранных языках, даже если сам код написан на языке программирования, основанном на английском.

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

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