Найти тему
Журнал «Код»

Почему второй язык программирования выучить проще, чем первый?

Оглавление

Секрет — в знании алгоритмов, а не синтаксиса

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

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

Коротко: главная метафора

Вот простая метафора всего, что будет написано ниже.
Если вы научились водить автомобиль на механике, вы можете сесть плюс-минус за любой автомобиль и поехать. Вам необязательно ездить именно за тем рулём, за которым вы учились в автошколе. Может быть, первое время вам будет непривычно в новой машине, но вы быстро освоитесь.
Но если вы хотите участвовать в гонках типа «Формулы 1», то вам нужно знать ваш болид досконально, до винтика.
То же в разработке: принципы одинаковые, а нюансы языка можно освоить быстро.

Почему сложно учить первый язык программирования

В самом начале всё может даваться с трудом:

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

Это нормально, потому что вы осваиваете что-то новое. Раньше вы этого не умели, потом решили научиться и столкнулись с трудностями.

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

Шаг за шагом вы осваиваете свой первый язык программирования. Изучение идёт не слишком быстро, потому что много нового.

Почему второй язык учить гораздо проще

А вот когда вы решили выучить второй язык, вам не нужно заново изучать как таковое программирование.

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

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

Ограничения

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

Как только вы переходите в «высшую лигу», от вас требуется не просто знание принципов программирования. Вы должны знать специфику конкретного языка и даже больше того — конкретной версии языка, в которой вы работаете. Например:

  • Как именно реализованы разные вспомогательные функции языка, что у них с быстродействием.
  • Какие есть баги конкретно в этой версии, из-за чего ваш софт может не работать.
  • Какие оптимизации есть в этом языке и как их эксплуатировать.
  • Как работать с определёнными библиотеками и модулями, характерными именно для этого языка.

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

Исключение из правила

Из этого правила со вторым языком есть одно исключение: оно не работает, если второй язык принципиально другой по своей природе. Например, если вы изучили язык высокого уровня — JavaScript, а потом захотели перейти на Ассемблер — язык низкого уровня.

Или если вы решили изучить Brainfuck. Но зачем?