Господа, выбирайте оружие! Языки программирования, которые вам (не) стоит изучать

Господа, выбирайте оружие! Языки программирования, которые вам (не) стоит изучать

3 сентября 2024 г.

Как гласит старая поговорка, в жизни мало что может быть хуже, чем принести нож на перестрелку. Как опытный разработчик, я могу сказать, что это на 100% верно и для мира программирования. Вы должны оставаться актуальными в отрасли, которая меняется быстрее, чем я пишу эту статью. Кроме того, у вас так много разных задач. Поэтому после многих лет выживания в этой среде я всегда держу свои любимые игрушки близко и заряженными. Для тихой и точной работы есть мой доверчивыйС++. Если я хочу сделать большой рывок данных, я выбираю R, несколько экстравагантный, но убедительно мощный. Но если все становится совсем грязным, я беру свойJavaScriptнестандартно: это поддерживало меня в прошлом, и это все еще может выдержать еще больше оскорблений. Нет языка, который был бы хорош или плох для всех. Это зависит от вас и работы, которую вы должны выполнять. Так что давайте обсудим, стоит ли вам всегда идти в ногу с модой или придерживаться старых добрых вещей. Этот вопрос немного сложнее, чем кажется…

Каждый день — новое начало?..

Учитывая инновационную природу технологий, обсуждение вопроса о том, стоит ли изучать другой язык, может показаться совершенно глупым. Действительно, если бы мир стоял на месте, мы бы все еще использовали глиняные таблички и счеты. К счастью, стремление к инновациям приводит к постоянному прогрессу, требующему постоянного совершенствования навыков. Например, в 1960-х годах общение с компьютерами включало прокалывание отверстий в бумаге и загрузку ее в машину. Сегодня компьютеры помещаются в наши карманы, и единственные дыры, с которыми мы сталкиваемся, — это наши бюджеты после их покупки. Представьте себе самого продвинутого разработчика из 60-х, пытающегося оставаться актуальным, не развивая свои навыки.

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

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

Изучение новых языков полезно не только по практическим причинам, но и для творчества. Оно может предложить новые подходы к знакомым задачам, расширяя перспективы и потенциал. Например, Symfony, популярный PHP-фреймворк, был вдохновлен фреймворком Spring на основе Java. Многие разработчики библиотек с открытым исходным кодом брали идеи из библиотек, реализованных на других языках, и вы можете стать следующим новатором.

…Или старое золото — настоящее?

Но ради истины давайте посмотрим с другой стороны на все то, что мы обсуждали в предыдущей главе. Знаете ли вы, когда перфокарты использовались в последний раз? Просто попробуйте угадать... И если вы не сжульничали, погуглив ответ прямо сейчас, ваша догадка, скорее всего, будет неверной. Правильный ответ — 2014. В том году последние перфокартыбыли использованымашинами для голосования в штате Айдахо во время всеобщих выборов в США. Или возьмите COBOL, язык, который мы разнесли в пух и прах как устаревший всего несколько абзацев назад. Ну, по состоянию на 2017 год, согласноРейтер, 43% всех банковских систем были основаны на COBOL; 80% личных транзакций использовали COBOL, и было 220миллиардстроки кода, написанные на COBOL, которые все еще использовались. Так что на самом деле существует (не такая уж тонкая) грань между неактуальностью языка для современных систем и его устареванием в целом.

Каковы шансы, что язык программирования, который вы знаете или собираетесь изучать, устареет и станет бесполезным в ближайшее время? На этот вопрос нет реального ответа, только догадки. Некоторые авторы оценивают средний жизненный цикл языка программирования как лежащий где угодноот 14 до 18,5 лет. Другиесказатьэто ближе к 25 годам для доминирующих языков и 5-6 для более нишевых и экзотических инструментов. Но есть такжееще одна точка зрениястоит упомянуть, потому что это выглядит вполне доказанным историей. Он основан на эффекте Линди, лучше всего описанном Нассимом Николасом Талебом в его книге«Антихрупкость: вещи, которые выигрывают от беспорядка»: «Если книга печаталась сорок лет, я могу ожидать, что она будет печататься еще сорок лет. Но, и это главное отличие, если она переживет еще одно десятилетие, то, как ожидается, ее будут печатать еще пятьдесят лет. Это, просто, как правило, говорит вам, почему вещи, которые существуют уже долгое время, не «стареют», как люди, а «стареют» наоборот. Каждый год, который проходит без вымирания, удваивает дополнительную продолжительность жизни. Это показатель некоторой прочности. Прочность предмета пропорциональна его сроку службы!»

Другими словами, языки, которые существуют достаточно долго, вероятно, останутся с нами еще на несколько десятилетий. Напротив, есть вероятность, что модные новые вещи могут устареть довольно скоро – но это еще предстоит увидеть. Каждый год активного использования языка увеличивает его шансы просуществовать дольше.

Думайте о карьере, а не о языках

Так что же нам делать? Выучить язык? Новый или старый? Что ж, само по себе обучение всегда хорошо. Исследования показывают, что почти половина всех разработчиков рассматривают возможность изучения нового языка. Согласно JetBrains' "Состояние экосистемы разработчиков в 2023 г." опроса, более 40% респондентов выразили такое желание. Разработчики, работающие с JavaScript (49%), PHP и Python (45%), и разработчики C++ (44%), проявляют наибольший интерес к изучению чего-то нового. Выбор языка, который вы хотите изучить, на самом деле зависит от вашей карьеры. Если вы думаете о стабильной работе, которая может длиться довольно долго (но не вечно), вы можете выбрать что-то старое и проверенное. Такие возможности могут возникнуть в науке, производстве и традиционных банках, т. е. учреждениях с долговечным дорогим оборудованием и/или инфраструктурой, сильно зависящей от устаревшего кода.

Например, большинство программистов COBOL былиот 45 до 55 летв 2017 году. Добавьте семь лет, прошедших с момента публикации исследования, и вы увидите, что многие разработчики COBOL вступают в пенсионный возраст. Если COBOL просуществует так долго, как ожидается, это может быть вашим шансом стать редким специалистом высокой ценности. Но имейте в виду, что такой выбор потребует очень глубоких знаний и безупречного мастерства. Кроме того, если что-то пойдет не так, ваш дальнейший выбор работы может быть весьма ограничен, если только вы не решите сменить свой профиль.

Если вы предпочитаете яркую жизнь стартапов или мощь технологических гигантов, вам следует выбрать что-то более современное и многообещающее. Наблюдение за тем, что делают другие, может дать вам подсказку: например, проверьте актуальные рейтинги языков программирования поRedMonkилиТИОБЕ. Не воспринимайте их слишком серьезно, поскольку любой мыслимый рейтинг основан на некоторой степени упрощения, но они все равно могут дать вам общую картину происходящего. Кроме того, упомянутый опрос JetBrains показывает,какие языкиизучаются чаще всего. Таким образом, вы наверняка выучите язык с будущим.

Всегда будьте практичны

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

Даже если вы только начинаете свой путь в разработке, стратегия остается прежней: выберите технологию, которую вы сможете использовать в реальной жизни (на работе или в стороннем проекте). Выберите язык с блестящим будущим, а не тот, который сторонится сообщество разработчиков. Поскольку вы только начинаете свой путь и не обременены высокими зарплатами и ожиданиями как специалист, вы можете легко и быстро изменить свой технический стек, если второй изучаемый вами язык вам понравится больше, чем первый. У вас больше гибкости в выборе, и стоит воспользоваться этим преимуществом. Только не переусердствуйте: слишком частые изменения в вашем техническом стеке и подавляющий поток знаний могут быть пагубными. Найдите баланс между тем, что вы хотите, и тем, что вы можете сделать, и вы обязательно добьетесь успеха.

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



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE