Получил недавно вопрос от знакомого: "Если я сейчас выучу Go, смогу ли потом перейти на Node?".
Могу привести аналогичный вопрос: "Если я научился закручивать болты шуруповертом, смогу ли потом делать это отверткой?"
Много начинающих программистов не осознают, что язык программирования это лишь инструмент. С его помощью достигается конечная цель - разработка программного продукта.
Сейчас на рынке широкий спектр разных языков. Всех их можно поделить на большие категории по парадигмам и подходам: ООП и процедурные, компилируемые и интерпретируемые, статически и динамически типизируемые.
Перейти с одного ООП языка на другой, например с JS на Python, не составит особого труда. Конечно, прийдется выучить особенности синтаксиса, стандартной библиотеки и какой-нибудь популярный фреймворк. Для этого нужно приложить должный уровень усилий, но это не займет много времени.
Перейти с Python на Haskell будет труднее: там другой подход, другая парадигма. Тут уже нужно приложить усилия чтобы перестроить свое мышление.
В любом случае, важно понимать главное - фундаментальные основы, на которых базируются современные языки. Переменные, функции, условные операторы, циклы. Необходимо иметь базис в понимании Computer Science.
Как я уже сказал, с помощью ЯП достигается конечная цель - разработка программного продукта. А для этого иметь одни лишь знания языка недостаточно.
Возьмем Васю который долго думал, что же лучше: Go или Node. Остановился все таки на Go, выучил синтаксис, даже небольшой HTTP-сервер научился поднимать.
Сможет ли Вася теперь разработать полноценное веб-приложение? Например аналог Instagram или Twitter? Конечно нет.
Потому что для разработки программных продуктов знания языка недостаточно. Необходимо иметь понимание устройства веба и его протоколов, уметь работать с базами данных, настраивать инфраструктуру и принимать архитектурные решения. А эти вещи уже не зависят от языка, на котором остановился ваш выбор.
Не долго думая какой язык выбрать, возьмите любой и учите фундамент. Фундамент в программировании, фундамент в разработке ПО и архитектуре. И самое главное - практикуйтесь. Пишите код на ежедневной основе, и тогда изучение нового языка не будет проблемой.