Сегодня у нас на разбор интересный вопрос: «Нужно ли учить старые версии языка, когда доступна уже новая?». У большинства людей складывается впечатление, что не нужно. Так ли это на самом деле — давайте обсудим.
Обучение по учебникам со старой версией языка
Вопрос достаточно сложный и тут нельзя так сходу сказать, надо ли учить старую версию. Например, у вас есть учебник по 4й Джаве (на данный момент доступны 19-20 версии). Читать этот учебник или нет? С одной стороны, с 4й версии в Java действительно очень много чего изменилось. Даже в Java! Я привел для примера этот язык, поскольку это мой основной язык и, к тому же, в нем все меняется очень медленно. Но даже тут произошли изменения за то время, пока вышли новые версии Java.
С другой стороны, нужно понимать, что базовые структуры языка как были так и остались. Они были расширены, добавлены новые, но все старые структуры языка все еще валидны. Плюс философия языка в большинстве случаев не меняется. Поэтому довольно ощутимый кусок этого учебника будет вам помогать и учить тому, что нужно. Но вы не узнаете, что сейчас пишут на относительно современных версиях. К тому же во многих случаях нововведения стали более качественно альтернативой тому, как это делалось раньше.
Например в Java после 4й версии добавилось очень много. А вот если сравнивать 8-ю Джаву с нынешней версией, то новшеств будет мало, особенно из того, что доступно новичкам. Так что все зависит от языка. Если мы говорим про JavaScript, то некоторые его версии изменили язык очень сильно. Брать учебник до 6-й версси JS абсолютно бессмысленно. Читать первые издания по таким древним языкам типа С++ также нет смысла, потому что сейчас принято писать код совсем иначе. Если же вам нужно понять, как вообще работает этот язык, то старый учебник вполне подходит. Вы научитесь синтаксису, научитесь с ним обращаться, у вас получится написать простую программу и она, скорее всего, заработает. Если мы не берём какой-то совсем уж экзотический язык. Но из всех названий языков, которые придут вам в голову, скорее всего все плюс-минус будет соответствовать написанному выше.
Если вам нужно учить какой-то язык как профессиональный, то я советую погуглить, после какой версии изучаемого вами языка крупных изменений не происходило. Самые простой вариант — спросить в соответствующих группах о том, какая версия языка является переломной. Например, Angular первый и Angular второй — это абсолютно разные вещи, система была полностью переписана с нуля. Тогда как начиная со второй по текущую версии изменения есть, но они совсем не критичные. Да, я понимаю, что это не язык программирования, но близко к тому. Соответственно, вам нужно узнать какая версия конкретногоязыка была ключевой, после которой изменения не критичны.
Базовые учебники актуальны
Еще один момент, который я хотел уточнить. Довольно часто какие-то базовые книги по языку все еще актуальны. Например “Thinking in Java” («Философия Java») написана для достаточно старых версий Java, однако актуальность она не потеряла. Там достаточно хорошо и качественно описаны принципы ООП, как строятся приложения, разбивка приложений на классы, что куда класть и прочее. Это не изменилось и, наверное, не изменится никогда. Все зависит от того, что вы будете брать из данной книги. Если вы хотите выучить актуальный синтаксис и узнать, как прямо сейчас пишут, то лучше брать книги, описывающие относительно новые версии языка. Если же вам нужно вникнуть в язык, понять как все работает — тогда спокойно можно читать и про старые версии.
Если вы опытный разработчик на каком-то языке, и вам нужны книги по архитектуре, например, по паторнам, по тому, как писать серьезные приложения и так далее. В этом случае все еще интереснее. Если в книге приведены инструкции, правила и какие-то примеры в виде кода на языке, который вы не знаете — ничего страшного. На самом деле в большинстве случаев гораздо проще понять пример из другого языка, чем искать книжку, в которой будут примеры именно на вашем языке. Важнее найти действительно хорошую книгу и разбираться на примерах того языка, который там приведен, потому что тут гораздо важнее именно текст, а не иллюстрации в виде кода.
Подытожим
«Учить ли старые версии языка, если доступны новые версии?». Абсолютно нормально учить язык на несколько версий назад. Т.е когда вы читаете книжку, посвященную одной-двум версиям языка назад от текущей. Потому что в продакшене никто не использует последние версии языка. В большинстве случаев используется все-таки на 1-3-5 версий назад.
Если вам попалась хорошая книжка, но которая посвящена старой версии языка — читайте, ничего страшного. Просто заранее стоит ознакомиться с новыми возможностями языка и тогда читая эту книгу, вы будете понимать, что уже изменилось. Никто из авторов не переписывает свои книги под каждую новую версию языка. Разве что это справочники.
Это же касается и курсов. Так что не пугайтесь, если курс посвящен языку одной-двумя версиями назад от текущей. Ничего критичного вы не потеряете, в большинстве случаев для новичка это будет не то что не критично, а просто незаметно.
Всегда ваш Сергей Немчинский.