Найти тему

Язык - это инструмент

Получил недавно вопрос от знакомого: "Если я сейчас выучу Go, смогу ли потом перейти на Node?".

Могу привести аналогичный вопрос: "Если я научился закручивать болты шуруповертом, смогу ли потом делать это отверткой?"

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

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

Перейти с одного ООП языка на другой, например с JS на Python, не составит особого труда. Конечно, прийдется выучить особенности синтаксиса, стандартной библиотеки и какой-нибудь популярный фреймворк. Для этого нужно приложить должный уровень усилий, но это не займет много времени.

Перейти с Python на Haskell будет труднее: там другой подход, другая парадигма. Тут уже нужно приложить усилия чтобы перестроить свое мышление.

В любом случае, важно понимать главное - фундаментальные основы, на которых базируются современные языки. Переменные, функции, условные операторы, циклы. Необходимо иметь базис в понимании Computer Science.

Как я уже сказал, с помощью ЯП достигается конечная цель - разработка программного продукта. А для этого иметь одни лишь знания языка недостаточно.

Возьмем Васю который долго думал, что же лучше: Go или Node. Остановился все таки на Go, выучил синтаксис, даже небольшой HTTP-сервер научился поднимать.

Сможет ли Вася теперь разработать полноценное веб-приложение? Например аналог Instagram или Twitter? Конечно нет.

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

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