Привет, Хабр! Перевели для вас статью программиста-самоучки, в арсенале которого — три десятка языков программирования. Надеемся, она вдохновит вас поделиться собственными историями становления в кодинге не меньше, чем нас в beeline cloud. Приятного чтения!

Всё началось в далёком 1997 году. С тех пор прошло более 25 лет. Свои первые программы я писал еще под ОС Windows 95 и Windows 98. На тот момент мне было около 12 лет – как раз тот возраст, в котором многие из моего поколения начинали знакомство с программированием. Первым моим языком был Logo, используемый в MicroWorlds от LCSI (Logo Computer Systems Inc). Я получил эту программу от родителей в подарок.

Исчерпав возможности Logo в ограниченной среде MicroWorlds, я перешел на Visual Basic. По очень простой причине — он был мне понятен и к тому же доступен прямо в Microsoft Office. Visual Basic 6 стал первым «настоящим» языком программирования, с которым я познакомился.

Unsplash / Paul Esch-Laurent
Unsplash / Paul Esch-Laurent

Первые шаги в веб-разработке

Поскольку интернет в конце 90-х был одной из новейших технологий, программирование под веб стремился освоить каждый. Вначале я приобрел копию Sierra Web Artist для реализации своего собственного веб-сайта. Несмотря на то, что прежде мне доводилось работать с HTML 3, только с HTML 4 версии я смог наконец создавать достаточно сложные веб-страницы. На тусовке в локальной сети (тогда это было нечто) один парень втянул меня в изучение CSS. А еще меня интересовал JavaScript — не столько как язык, сколько из-за возможностей, которые он предоставлял для создания веб-страниц.

Как и многим людям того времени, мне приходилось прилагать значительные усилия, чтобы код JavaScript работал как в Internet Explorer 4, так и в Netscape Navigator 4. Моим личным предпочтением всегда был Navigator. Возможно, именно поэтому я сейчас пользуюсь в основном Firefox. На мой взгляд, это лучший браузер, и, кроме того, он порой напоминает мне тот самый Netscape Navigator.

Dreamweaver от Macromedia была идеальным решением для создания веб-приложений, а профессионалы использовали версию Dreamweaver UltraDev.

Серверная часть на ASP и PHP

К первому серьезному языку программирования вы, как правило, привязываетесь на долгое время. Когда я только начинал, всё казалось чересчур новым и непонятным. Небольшим утешением для меня было знание хотя бы одного языка, например, Visual Basic. Вот почему мой первый серверный код был написан на VB6 с Microsoft ASP на IIS. Поскольку в то время подобная технология была слишком дорогой, я поставил перед собой задачу изучить PHP.

Причина не только в моем интересе к веб-разработке, но и в том, что я познакомился с дистрибутивом SUSE Linux 7.2, и он мне очень понравился. Примерно в 2001 году я углубился в Linux. Настолько, что SUSE стала моей повседневной платформой. PHP довольно легко изучить, если вы пришли к нему из мира Visual Basic. Второй язык не настолько сложен для освоения, как первый, учитывая знание типов данных и основ программирования. Тем не менее изучать его мне было весьма непросто. Возможно, потому что мне было всего 17 лет.

Вы можете задать мне резонный вопрос: какой еще PHP, если чуть выше ты писал про JavaScript? Не забывайте, что поначалу JavaScript был чрезвычайно ограниченным, мучительно медленным и работал только в браузерах. Это был примитивный скриптовый язык, призванный сделать сайты более интерактивными и интересными. В то время я попросту не мог относиться к нему как к серьезному языку программирования.

Создание веб-приложений, десктопного и серверного кода в Visual Studio
Создание веб-приложений, десктопного и серверного кода в Visual Studio

Образование помогло мне освоить C, C++ и C#

Первую работу я получил тогда же, в 17 лет, благодаря системе дуального образования в Германии. В 2002 году в мире произошло два важных события: Microsoft выпустила платформу .NET и рекомендовала перейти с Visual Basic на C#. В программу моего профессионального образования входили C и C++. Не современный C, а классический C без каких-либо строковых библиотек и других полезных вещей, присутствующих сегодня в C и C++.

Пропустить этот учебный курс я при всем желании не мог. Он был чертовски сложен, и поначалу я буквально ненавидел C и C++. Платформа .NET, C#, C и C++ заставили меня почувствовать, что я не имею абсолютно никакого представления о программировании. Я ощущал себя полным идиотом, делающим свои первые неуклюжие шаги. Однако молодости не свойственно столько сомнений, сколько их приносит зрелость. Это мне очень помогло. Я с головой нырнул в C#, C и C++. Я писал по-настоящему отвратительный код, и это сходило мне с рук.

Borland C++ 2.0 для DOS привел меня к программированию на C — Фууу…
Borland C++ 2.0 для DOS привел меня к программированию на C — Фууу…

Что заставило меня по-настоящему полюбить C, так это Linux. В Windows C выглядит несколько бесполезным, поскольку C# зачастую оказывается гораздо удобнее. Однако в Linux C и C++ чувствуют себя как дома. Чтобы научиться правильно применять C и C++ для решения своих задач, мне потребовалось больше 5 лет.

После С всё кажется знакомым

Когда я в какой-то мере освоил язык C, все остальные языки стали казаться мне одинаковыми. В основном потому, что они были написаны или на C, или на C++. Например, тот же PHP написан на C. Большинство системных библиотек Windows и Linux также написаны на C. Фреймворк .NET написан на C. Всё на свете написано на C.

После C я смог быстро освоить массу языков программирования. ActionScript для Flash, AppleScript для Mac и даже немножко Delphi для одного проекта. Выучил WML и WMLScript, когда WAP был актуальной темой для Nokia 7110.

Objective-C в сочетании с первыми версиями Xcode от Apple стал первым языком, изучение которого действительно вызвало у меня трудности. Честно говоря, я так и не подружился с ним и до сих пор предпочитаю им не пользоваться. Я был в восторге, когда Apple выпустила Swift и SwiftUI, так как никогда не понимал Storyboard — механизм разработки пользовательского интерфейса.

Мой личный топ-10 языков на сегодняшний день: Swift, Go, C, JavaScript, C++, CMake, SQL, Java, C# и Scratch. Scratch в большей степени потому, что он отлично подходит для обучения детей программированию.

Считаю, что хорошо организованная личная библиотека книг по программированию будет весьма полезна
Считаю, что хорошо организованная личная библиотека книг по программированию будет весьма полезна

Как я изучал языки программирования

В начале моего обучения программированию многое постигалось методом проб и ошибок. Оглядываясь назад, можно сказать, что их было слишком много. Начинать с теории и чтения книг — не мой метод. Я был и остаюсь самоучкой. Лично для меня лучший вариант — это сочетание теории и практики. Безусловно, я не раз пользовался учебной литературой и горячо люблю ее. Книги дают структурированный подход к обучению, но они не могут заменить практических навыков.

Я купил себе две книги по Go, несмотря на то, что выучил его за 2-3 дня. Они помогли мне понять параллелизм, основные принципы и архитектурные решения языка. Что касается JavaScript, по сегодняшний день я не читал ни одной книги, лишь справочные руководства на веб-сайтах. Но это потому, что мы с JavaScript росли вместе.

Для таких самоучек, как я, работать руками и следовать книгам — самый быстрый путь к изучению языка. Подчеркну, что процесс обучения зависит от опыта работы в качестве инженера-программиста.

Знания, полезные при программировании

Язык программирования — просто инструмент, при помощи которого разрабатываются приложения для компьютеров и операционных систем. Знание архитектуры компьютера, его устройства, принципов работы сети (в основном TCP/IP, IPv4, IPv6, HTTP) и умение отследить HTTP-запросы с помощью Wireshark на уровне пакетов поможет понять поставленную задачу.

Умение читать документацию и справочные руководства также очень важно. Я писал программы для Linux, Windows, BSD, Macintosh System 6-9, macOS, Pocket PC, Windows Mobile, PalmOS, iOS, iPadOS, tvOS, watchOS, Android, Tizen TV, OpenWRT, Arduino, ARM Mbed и других ОС. Знание того, как операционные системы работают «под капотом», поможет вам понять их парадигмы и то, что на самом деле делает ваш код.

Написание системного демона с сетевыми функциями на C, Rust или Go в Linux поможет многое понять о компьютерах и сетях. Для меня эти знания оказались самыми полезными из всех, которые я когда-либо получал. Причина проста: сегодня почти всё на Linux или BSD использует сетевые ресурсы. Также, как и iPhone, телевизор Samsung или маршрутизатор.

Arduino отлично подходит для изучения электроники, связанной с вычислениями
Arduino отлично подходит для изучения электроники, связанной с вычислениями

SQL – настоящая кроличья нора

SQL – это совершенно другая история. Если вы умеете писать вложенные операторы SELECT, это еще не значит, что вы знаете SQL. Я работал с MySQL, и он мне очень нравится. Общался с T-SQL и PL/SQL от Microsoft. Написал тысячи строк кода для хранимых процедур, функций, триггеров и представлений под MySQL, MSSQL, Oracle и кучей других систем управления базами данных.

Освоение SQL — это не просто изучение его в качестве языка запросов. Речь идет о грамотном проектировании и использовании реляционных систем управления базами данных. Парадигма, согласно которой приложениям вне системы не разрешается напрямую манипулировать таблицами. Модель проектирования хранимых процедур, функций и триггеров для изоляции базовых таблиц от внешнего мира. А также многие другие концепции, которые на самом деле не имеют прямого отношения к SQL как к языку самому по себе. Изучение SQL — это, скорее, изучение реляционных баз данных, чем языка.

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

SQL предполагает нечто большее, чем просто написание запросов
SQL предполагает нечто большее, чем просто написание запросов

Языки, которыми я не пользовался более 10 лет

Когда изучаешь так много языков, наступает момент, когда забываешь о некоторых из них, и это совершенно нормально. Вот список языков программирования, которые я не использовал более 10 лет: Objective C, Visual Basic, Delphi, Perl, ActionScript, Logo, OpenScript, WMLScript.

Эти языки со временем или вымерли, или утратили для меня актуальность. Когда я столкнулся с Delphi после 10 лет неиспользования, то, безусловно, смог вспомнить многие его аспекты. Но, честно говоря, у меня было такое чувство, будто мне пришлось изучать его заново. WMLScript и ActionScript ушли навсегда. Я их окончательно забыл. Если я увижу WMLScript, то смогу прочитать код. Но не смогу ничего написать без справочного материала и книги под рукой (старая-добрая книга по WAP-программированию для Nokia).

Среды разработки, которые я больше не использую

Мои ежедневные программы — VSCode, Xcode и vim. Я очень люблю Xcode, она позволяет мне программировать так, как я хочу. VSCode — это чистая магия для программиста-полиглота, поскольку она создаёт комфортную среду для любого языка, нужного и интересного мне. Есть IDE, которые я больше не использую, но в которых провел значительную часть своей жизни.

  • Microsoft Visual Studio 6

  • Microsoft Visual C++

  • Borland C++ Builder 5

  • Borland C++ 2.0

  • Borland Delphi

  • ThinkC and MPW

  • CodeWarrior

  • Dreamweaver UltraDev

Эти IDE были по-своему неплохи, и я проводил в них много времени. Однако, когда появляются новые языки программирования и среды выполнения, появляются и новые инструменты. Каждому языку – своё время. И однажды вы понимаете, что нужно двигаться дальше. С появлением Mac OS X все инструменты System 9, по сути, умерли в одночасье. Не влюбляйтесь в эти IDE, вы никогда не знаете, как долго они проживут. Но изучить основы vim никогда не помешает.

30 языков, говорите? Хм!

В заголовке утверждается, что я изучил 30 языков, и под изучением я подразумеваю, что написал на них достаточное количество кода. Разработал, собрал и развернул приложение. Вот полный список этих языков в алфавитном порядке: ActionScript, Arduino, Assembly, Bash, C, C#, C++, CMake, COBOL, ColdFusion, Dart, Delphi, Go, Java, JavaScript, Logo, Objective-C, OpenScript, Perl, PHP, PL/SQL, PowerShell, Scratch, SQL, Swift, T-SQL, TypeScript, Visual Basic .NET, Visual Basic Classic и WMLScript.

Вероятно, я что-то мог забыть. Было много небольших скриптовых языков, которые я выучил, применял несколько недель, а потом выбросил из головы. Так что их может быть больше 30. Число не имеет особого значения.

Не имеет значения, сколько языков ты знаешь, важно, что ты умеешь с ними делать
Не имеет значения, сколько языков ты знаешь, важно, что ты умеешь с ними делать

Психологические факторы в программировании

Большая часть жизни программиста — ощущение себя глупцом. Ошибки и промахи становятся ежедневным опытом. Мир вычислительных технологий настолько огромен, что вы не можете быть в курсе всего. В середине 1980-х годов компьютеры были ещё относительно простыми. Но даже в тот период невозможно было знать все — от конструкции микросхемы до дизайна пользовательского интерфейса приложения. Человеческий мозг просто не в состоянии хранить всю эту информацию. Не будьте слишком строги к себе.

Вам нужно получать удовольствие от работы с компьютерами

Я очень рекомендую книгу «Just For Fun», биографию Линуса Торвальдса. Помимо рассказа о том, как он создал Linux, в ней множество его личных жизненных впечатлений. Понимание того, через что прошел Линус, поможет осознать, что вы не одиноки. И что все мы проходим через взлеты и падения в программировании.

Линус принадлежит к числу лучших инженеров-программистов, которыми сегодня располагает наш мир. Определенно стоит следовать за ним и учиться у него. Он написал самую популярную и важную операционную систему современности и до сих пор отвечает за ее поддержку. Линус — тот, на кого хочется равняться.

Пишите то, что любите больше всего

Изучая различные языки программирования, найдите ниши, которые вам больше всего по душе. Для меня — это все мобильное. Я люблю мобильные приложения, мобильные веб-сайты и вычислительную технику, которую можно носить в кармане. Мне нравилось программировать для Pocket PC, для Android, и я просто обожаю писать для экосистемы Apple.

Написание мобильных веб-приложений, адаптированных для смартфонов, — занятие, которое доставляет мне огромное удовольствие. Но у вас дело может обстоять по-другому. У всех свои интересы и увлечения, которые вызывают особый восторг. Моя личная рекомендация — следуйте за своими предпочтениями. Тогда даже в самые жестокие периоды вы будете получать от программирования удовольствие.

Найдите свою страсть
Найдите свою страсть

Не обманывайте себя, будьте проще

Языкам программирования как таковым уже более 100 лет, а язык ассемблера отметит свой 100-летний юбилей в 2049 году. За десятилетия, прошедшие после того, как Конрад Цузе изобрел Zuse Z1 в 1938 году, в вычислительной технике многое изменилось. Вам не обязательно воспроизводить Zuse Z1, Windows или Linux. Конечно, полезно понимать основы, но вам вовсе не нужно становиться мастером на все руки, да вы и не сможете. Ваш мозг не сможет.

Я был очень строг к себе и считал, что мне необходимо познать все самое новое. Жестоко заставлял себя учить ActionScript, чтобы уметь создавать Flash-приложения. Я никогда не получал от всего этого удовольствия. В свое время мне нравилось работать с Dreamweaver и Fireworks так же, как сегодня я наслаждаюсь работой с VSCode, XCode, vim, Photoshop и Illustrator.

Учитесь тому, что вам нравится, и не будьте слишком строги к себе. Организуйте свое обучение, не бросайтесь в омут с головой. Приобретите действительно хорошие учебные пособия. Есть замечательные книги и видеокурсы. Хотел бы я пользоваться всеми этими видеоуроками в своё время. Мне действительно очень нравится смотреть уроки программирования по телевизору, лежа на диване.

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


Другие истории разработчиков:

beeline cloud — secure cloud provider. Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы. 

Комментарии (130)


  1. sotland
    01.12.2023 18:43
    +74

    Хрень кака-то. Ощущение клиповости, поверхности, нет понимания к чему это всё.


    1. MRD000
      01.12.2023 18:43
      +10

      Я тоже как-то ожидал какой-то аналитики после прочтения названия, например как языки развивались и в конце концов что его заставило отказаться от старых или какие в них на сегодняшний день недостатки.

      Не ожидалось увидеть, что SQL и make - это языки. Если взять разные синтаксисы конфигов как обычных, так и yaml, то я бы мог утверждать, что знаю пару сотен :)


      1. Levin7
        01.12.2023 18:43

        Стоило бы написать об этом в комментариях к оригиналу статьи, чтобы автор сделал выводы


      1. X-yro
        01.12.2023 18:43

        Я вот тоже думаю, sql это же просто структурированные запросы к бд, когда он успел стать полноценным языком программирования)


        1. PuerteMuerte
          01.12.2023 18:43

          sql это же просто структурированные запросы к бд, когда он успел стать полноценным языком программирования

          А чем структурированный запрос к бд, в котором есть подпрограммы, рекурсия, вычисления (и это всё - фишки стандартного SQL, а не расширения конкретных СУБД), не является программой?


    1. KvanTTT
      01.12.2023 18:43
      +3

      На это заголовок намекает, поэтому не стал даже читать.


    1. Serj_legion_Zaryanov
      01.12.2023 18:43

      Хотел бы похвалить за память... Лингвистом бы вы были...


  1. MountainGoat
    01.12.2023 18:43
    +53

    А я умею молчать на 28 языках мира.


    1. fo_otman
      01.12.2023 18:43

      Я никак не прокомментировал твое высказывание


    1. FreeNickname
      01.12.2023 18:43
      +1

      А на одном не умею... :(


  1. Breathe_the_pressure
    01.12.2023 18:43
    +44

    Хотите программировать - программируйте, не хотите программировать - не программируйте. (Дж. Стетхем)


    1. Boilerplate
      01.12.2023 18:43
      +14

      Код пиши - с фичами. А баги в коде - не пиши. (Дж. Стетхем)


  1. wecsog
    01.12.2023 18:43
    +34

    Мое уважению автору, что он так и не стал учить питон


    1. PuerteMuerte
      01.12.2023 18:43
      +6

      Я думаю, он просто знал, что вы здесь будете, и решил не нарываться, умолчал.


    1. denis-isaev
      01.12.2023 18:43
      +4

      Но от Go не удержался :)


  1. iminfinitylol
    01.12.2023 18:43
    +10

    дружочек 30 языков "для галочки" это конечно круто, но вот насколько эффективно такое знание?

    я знаю делфи, с+++ с шарп, пхп +фронтенд с либами, мс скл, на мобильную разработку меня уже нахватает, всего не упомнишь, я могу совершать глупые ошибки из за каши в голове

    запомнить 30 языков, да еще и овладеть ими (так чтобы решить любую задачу) это нереально

    кроме того фраза "Мой личный топ-10 языков на сегодняшний день: Swift, Go, C, JavaScript, C++, CMake, SQL, Java, C# и Scratch. Scratch " тоже о многом говорит, почему с++ не на первом месте? и почему джаваскрипт выше джава и с++???

    странно что питона нету во главе списка лол
    но у меня закрадываются смутные сомнения касательно релятивности опыта (-_-)


    1. ivankudryavtsev
      01.12.2023 18:43
      +5

      У Вас явный heap overflow, пора начинать забывать - на русский памяти уже не хватает.


      1. iminfinitylol
        01.12.2023 18:43

        ничего страшного мне компилятор сам память выделяет а руский я пропустил через деструктор и переопределил с базовыми методами от б*длы чтобы объявить английский и финский^^


    1. CorwinH
      01.12.2023 18:43
      +17

      почему с++ не на первом месте?

      А за что его любить? На нём же не только писать, но и читать неудобно.


      1. iminfinitylol
        01.12.2023 18:43

        ну смотря опять же как писать, если на нативном винформс то в принципе терпимо (это в визуалке), а так если что еще рад студио есть для с++

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


        1. CorwinH
          01.12.2023 18:43

          var iter2 = iter1.Where(x => x?.Length > 0);

          Как обычно это делается на С++? Какой код я увижу в 90% проектов? (Можно два самых распространённых варианта, если нет одного стандартного).
          (iter1 - итератор по коллекции ссылок на объекты со свойством Length)


    1. firehacker
      01.12.2023 18:43
      +2

      дружочек

      К кому вы обращаетесь? К переводчику статьи?


      1. iminfinitylol
        01.12.2023 18:43
        +2

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


    1. MrNutz
      01.12.2023 18:43
      +1

      Аналогично. Совершенно не понятно что именно он там знает и на сколько глубоко понимает. Может всякую фигню на них всю жизнь пишет.


    1. orenty7
      01.12.2023 18:43

      тоже о многом говорит, почему с++ не на первом месте? и почему джаваскрипт выше джава и с++???

      А о чём, собственно, это говорит, кроме предпочтений автора? Я бы плюсы на первое место тоже не поставил, да и js мне нравится больше C++


  1. ilnurjick
    01.12.2023 18:43
    +3

    Python е знает, или не использует, но для увеличения списка должен был указать. Странно..


  1. taroved
    01.12.2023 18:43
    +1

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


  1. pOmelchenko
    01.12.2023 18:43
    +25

    Arduino это разве язык? Там же плюсы с оберткой над низкоуровневыми и регистровыми конструкциями, читай фрэймворк

    а cmake? Это же тоже не яп, а система сборки.

    Почему бы не упомянуть xml, html, css, yaml, ini, json и toml, или эти "языки" автор не использовал?


    1. lorc
      01.12.2023 18:43
      -1

      cmake полный по Тьюрингу. И да, там есть что учить.


      1. pOmelchenko
        01.12.2023 18:43
        +26

        Minecraft и Factorio тоже могут быть полными по Тьюрингу, но делает ли это их языками?


        1. Boilerplate
          01.12.2023 18:43
          +5

          Можно ли считать знание таблицы истинности И-НЕ эквивалентным знанию иного Тьюринг-полного языка?


          1. pOmelchenko
            01.12.2023 18:43
            +22

            Этот трэд можно продолжать до тех пор, пока сам трэд не станет полным по Тьюрингу, но есть ли в этом какой-либо практический смысл?)


            1. schqual
              01.12.2023 18:43

              Для обучения какого-нибудь чат-бота – имеет :)


        1. lorc
          01.12.2023 18:43
          -3

          У cmake есть применение в индустрии. И как я уже говорил - там есть что учить.



        1. playermet
          01.12.2023 18:43
          +3

          В CMake есть переменные, есть условия, есть циклы, есть типы данных, есть математические операции, есть подпрограммы, и т.д. и т.п. Я терпеть не могу встроенный язык CMake, и мечтаю о том чтобы его заменили на Lua, декларативный вариант с JSON или обрубком синтаксиса инициализации переменных C++ по готовым типам, объявленных в хедерах сответствующей версии (чтобы его мог обрабатывать линтер любой современной IDE С++). Но блин, по какому конкретно признаку встроенный в CMake язык не является языком программирования, и чем он является тогда?


      1. geher
        01.12.2023 18:43
        +3

        Полнота по Тьюрингу не делает что-либо языком программирования. А язык программирования не обязан быть полным по Тьюрингу.

        А cmake - это действительно система сборки (и да, там есть что учить). А вот ЯП, на котором описывают процесс сборки в cmake, пес его знает, как называется. Может быть, тоже cmake. А может, как-то иначе или вообще не имеет собственного названия. Если кто точно знает, проясните, пожалуйста (сам с этим зверем пока плотно не сталкивался, а потому не интересовался такими подробностями).


      1. dimaaannn
        01.12.2023 18:43
        +1

        Регулярки - тоже полный по Тьюрингу язык )


        1. erogov
          01.12.2023 18:43
          +3

          Конечно же нет.


        1. SquareRootOfZero
          01.12.2023 18:43

          А пулярки - птицы.


    1. Anton-V-K
      01.12.2023 18:43
      +5

      а cmake? Это же тоже не яп, а система сборки.

      вроде бы уже есть "отладчик" для cmake-скриптов :)


  1. gatoazul
    01.12.2023 18:43
    +10

    И что тут такого необыкновенного?


  1. denis-isaev
    01.12.2023 18:43
    +5

    Markdown-а не хватает )


  1. eulampius
    01.12.2023 18:43
    +12

    Думаю, для этого гражданина настало время изучить 1C ))


  1. PrisonerOfDarkMatter
    01.12.2023 18:43
    +16

    Ни одного функционального языка, как я понимаю. Нафиг так жить?)


  1. CorwinH
    01.12.2023 18:43
    +5

    Вот полный список этих языков

    Хорошая коллекция. После прочтения статьи охотно верю, что Вы знаете/знали их все на приличном уровне.

    После С всё кажется знакомым

    Попробуйте Haskell

    первый серверный код был написан на VB6 с Microsoft ASP на IIS

    А как же WebClass? По сравнению с ними даже ASP.NET WebForms были шагом назад.


    1. koldyr
      01.12.2023 18:43
      +2

      После хаскеля уже ничто не радует.


      1. SquareRootOfZero
        01.12.2023 18:43

        APL/J/K какой-нибудь, лучше, наверное, классический APL, с ним жизнь заиграет новыми буквами.


      1. artemisia_borealis
        01.12.2023 18:43

        Lean разве что


      1. orenty7
        01.12.2023 18:43

        Попробуйте лисп или агду


    1. bolk
      01.12.2023 18:43

      Попробуйте Haskell

      Можно ещё Refal ) Вот где я голову сломал )))


  1. HEXFFFFFFFF
    01.12.2023 18:43
    +13

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


    1. sukhe
      01.12.2023 18:43
      +2

      Нормальный программист это программист вообще, а новые языки и технологии осваиваються по мере надобности.

      Расскажите это рекрутёрам


  1. nickolaym
    01.12.2023 18:43
    +17

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

    Просто технологии приходят и уходят. За несколько десятков лет всякое перепробуешь.

    Одних бейсиков - существенно разных языков там пять штук (ассорти классических диалектов, турбо, квик, семейство вижелов, дотнет) - это то, что прямо сразу вспомнилось. Это за один язык считать или за пять?

    Всякий, кто игрался с вебом с ранней эпохи, - наверняка хапнул перл, пхп, яву, асп и аспнет, вбскрипт и яваскрипт.

    Шеллы операционок - бат, повер, ш/баш/зш, wsh с его бейсиком и яваскриптом, перл и питон.

    Хотите писать кроссплатформенный компилируемый код - познакомитесь с C, C++, Obj-C, Obj-C++ - вжух, и уже 4 языка, а там рядом пасётся микрософт с дотнетом - MC++ и C++CLI.

    Занимаетесь прикладной математикой - будет вам и фортран, и маткад/матлаб/лабвью/жулиа/р, и питон естественно. Вряд ли на одном фортране или на одном матлабе всю жизнь просидите же.

    Любите функциональщину (или просто с автокадом возитесь) - соберёте комплект лиспов, как минимум. А там и MLы, и хаскелл рядом пасётся. Да и прологи, а где пролог, там и эрланг.

    Изучаете ООП - потрогаете и смолток, и может даже симулу (если совсем дед), и может, до оберона доберётесь.

    Ну раз уж вспомнил Никласа Вирта: все турбо паскали и дельфи за диалекты одного языка считать, или за разные? (Если разные, то С++ с 93 по 23? А фортраны?)

    Ах да! Ассемблеры! Каждый новый процессор - новый ассемблер. Плохо что ли?

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


    1. gatoazul
      01.12.2023 18:43
      +2

      Форт забыли.


    1. artemisia_borealis
      01.12.2023 18:43

      Metapost ещё довольно увлекателен.


  1. slcoleg
    01.12.2023 18:43
    +1

    Просто вопрос: и на хрена?

    3 сегодня более чем.

    И второй вопрос: о сколько фреймворков? Голый язык это как русский без падежей, глаголов и наречий.


    1. bolk
      01.12.2023 18:43
      +3

      Когда программируешь не одно десятилетие, вопрос «нафига» не стоит. Языки появляются и исчезают. Когда-то актуальные Перл и Делфи почти вымерли, ПХП потихоньку помирает. Возможно Джава уже напряглась из-за Котлина и Си-шарпа. Ты просто живёшь, а то, на чём программировал — нет, поэтому учишь новое.

      Ну и если попробовал несколько областей (фронт, бэк, базы данных, системное программирование, администрирование), то языки сами учатся и остаются, куда без этого.


      1. censor2005
        01.12.2023 18:43

        Вот не надо PHP трогать, он ещё нас всех переживёт )


        1. bolk
          01.12.2023 18:43

          Я не хейчу ПХП просто «потому что», сам программирую на нём ещё с третьей версии и для интереса даже посмотрел PHP/Fi. Но его популярность неуклонно снижается, такова статистика. А так нас, может, и КОБОЛ переживёт, кто знает.


    1. gatoazul
      01.12.2023 18:43

      Был у меня молодой коллега, который рассказывал, что ему кроме PHP ничего не нужно. Устроился на первую работу и посадили его там делать шаблоны на XSLT ! Кто не в курсе - это язык, придуманный то ли инопланетянами, то ли извращенцами.


      1. 1Tiger1
        01.12.2023 18:43
        +2

        Вот же молодёжь пошла, XSLT не видели, SOAP не пробовали, WSDL файлов не читали и на Smarty не верстали. Да знаете ли вы что тако DOM и как использовать алерты для отладки js? верстали ли вы таблицами? Вскакивали ли вы ночью с постели потому что вам приснилось что вышла новая версия ExtJs и как всегда без документации, и вам снова надо все переделывать, а никто не знает как оно теперь работает? Юзали ли вы ифреймы чтобы постучатся на сервер и радовались ли AJAX? я что вы почувствовали когда узнали о JQuery?! ждали ли когда наконец то умрёт IE6? а после снова ждали. и снова.

        зажрались, XSLT им сложный и непонятный, а кто то целые новые языки, cms и фреймворки на почти чистом XML писал и развивал. эх, были же времена, какой фигнёй только не страдали (уходит в закат бормоча что то про траву и деревья).


        1. gev
          01.12.2023 18:43

          XQuery – наше все было! Мы на нем когда-то даже гуй делали и веб и десктоп с сервером и бд!
          Вот на этой платформе https://exist-db.org/


          1. gatoazul
            01.12.2023 18:43

            Уж XQuery куда поприятнее богомерзкого XSLT.


        1. bolk
          01.12.2023 18:43

          SOAP/WSDL живее всех живых.


          1. 1Tiger1
            01.12.2023 18:43

            а жаль


            1. bolk
              01.12.2023 18:43

              Почему?


              1. 1Tiger1
                01.12.2023 18:43

                громоздкий, неудобный, не гибкий, тяжёлый.

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

                SOAP наверное самое нелепое детище этого подхода. а давайте сделаем RPC и в качестве контейнеров используем XML, и сделаем специальный формат файлов для описания контейнеров, функций и взаимодействий. И тоже на XML. и ещё внутренние типы будем создавать, и их описывать. а чтобы стало совсем универсально и переиспользование, позволим этим описаниям включать и ссылать ся на другие описания в интернете. и чтобы совсем плохо было засунем в эти WSDL столько сложностей что новичку чисто чтобы понять структуру сложного запроса придётся разбиратся неделю. ну и потом ещё версий протокола наделаем чтобы совместимость совсем уничтожить. место SOAP в 1980-х, максимум в 1990-х, но почему то в консервативных организациях типа банков и гос учреждений он ещё местами жив.

                в SOAP нет ни одного преимущества перед REST (с json), и куча недостатков.


                1. bolk
                  01.12.2023 18:43

                  Так а зачем в него глазами-то смотреть? ) Ну ходит что-то там в канале и прекрасно. Куча бинарных RPC есть, мы ж туда не смотрим (хотя пришлось как-то возиться с MAPI на уровне байт, вот это куда хуже SOAP).

                  в SOAP нет ни одного преимущества перед REST (с json)

                  Очень странное утверждение. Одно преимущество у нас с вами в переписке всплыло — это WSDL. Несмотря на то, что в связке rest+json придуманы аналоги, единого стандарта нет и случаев использования я знаю только парочку.

                  Второе — SOAP бывает не только поверх HTTP/HTTPS. Можно хоть почтой слать. Я видел решение, где SOAP пересылается через сервер очередей.


                1. PuerteMuerte
                  01.12.2023 18:43

                  в SOAP нет ни одного преимущества перед REST (с json), и куча недостатков.

                  А вот неправда ваша. В SOAP есть описание протокола, и контроль типов. Возможность генерировать описание из кода клиента или сервера, или наоборот, код клиента или сервера из описания. Ничего этого нет в REST, и для этого пришлось придумывать новые, и в общем-то нестандартизованные нашлёпки вроде сваггера.

                  Да, на транспортном уровне SOAP намного более громоздкий, но благодаря вышеупомянутому вам с этим вообще не нужно было связываться, генерация и обработка пакетов там ведь были автоматизированы.


      1. andrewdeath
        01.12.2023 18:43

        Помню лет 15-20 назад, в одном небольшом проекте я даже XSLT использовал. php скрипты отдавали на фронт xml на который накладывался XSLT скрипт и в результате на выходе получали готовый html. Своеобразно все это конечно, но работало. ))


  1. jpegqs
    01.12.2023 18:43
    +4

    Jack of all trades, master of none.


  1. Yuribtr
    01.12.2023 18:43
    +4

    В заголовке утверждается, что я изучил 30 языков, и под изучением я подразумеваю, что написал на них достаточное количество кода. Разработал, собрал и развернул приложение. Вот полный список этих языков в алфавитном порядке: ActionScript, Arduino, Assembly, Bash, C, C#, C++, CMake, COBOL, ColdFusion, Dart, Delphi, Go, Java, JavaScript, Logo, Objective-C, OpenScript, Perl, PHP, PL/SQL, PowerShell, Scratch, SQL, Swift, T-SQL, TypeScript, Visual Basic .NET, Visual Basic Classic и WMLScript.

    Вангую, что изначальный заголовок был такой: "За 25 лет я написал не менее одной программы на 30 языках программирования. Хочу поделиться своим опытом", но видимо потом автор решил хайпануть и все заверте...


  1. aslermelean
    01.12.2023 18:43
    -3

    замечательная статья. спасибо


  1. bolk
    01.12.2023 18:43

    Автор в одном абзаце пишет про ASP (где программировали на VBScript и серверном диалекте JavaScript) и так же пишет, что JavaScript в те времена работал только в браузере ????


    1. ef_end_y
      01.12.2023 18:43

      Я ожидал тебя увидеть в каментах. На скольких языках ты что-либо писал?


      1. bolk
        01.12.2023 18:43
        +2

        Да чёрт его знает. Видимо больше сотни. Но это, конечно, только если считать вообще всё, на чём я хоть какую-то программу написал.


  1. belch84
    01.12.2023 18:43

    Я сам знаю не очень много языков программирования, а их обилие вызывает у меня смутные

    ассоциации


    1. PrinceKorwin
      01.12.2023 18:43

      Зря :) т.к. задачи которые решают языки очень разные, то не удивительно, что их много.


  1. unclegluk
    01.12.2023 18:43

    А смысл чисто спортивный?


    1. smind
      01.12.2023 18:43
      +1

      нет, как и автор оригинальной статьи я за почти 30 лет программирования сталкивался с разными языками, на каких то писал год, на каких то время от времени. на каких то писал более 5 лет. И да если пересчитать это будет больше 30. но годится тут особо нечем, это просто указание на возраст автора.


      1. unclegluk
        01.12.2023 18:43
        +1

        К вам вопросов нет, но один есть. 30 уникальных языков или похожих?


  1. joker2k1
    01.12.2023 18:43
    -2

    Это пример статьи, написаной ИИ?


  1. Vsevo10d
    01.12.2023 18:43
    +4

    Arduino, Scratch... это фуллстек девелопер в школьном кружке очумелых ручек, что ли?


  1. Thomas_Hanniball
    01.12.2023 18:43
    +6

    Если я напишу Hello World на 50 языках программирования, значит ли это, что я могу программировать на 50 языках?

    Очевидно, что нет. Поверхностное ознакомление с языком программирования не делает из меня программиста на этом языке.

    Если я помог студенту разобраться с его лабораторной работой на Delphi, то это не значит, что я могу программировать на Delphi.


    1. 0x131315
      01.12.2023 18:43
      +1

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


    1. PuerteMuerte
      01.12.2023 18:43
      +2

      Если я напишу Hello World на 50 языках программирования, значит ли это, что я могу программировать на 50 языках?

      Нет, но если вы пару десятилетий поработаете программистом, у вас и реальной практики хватит на пару десятков языков. Обычный современный фуллстек юзает, допустим, хытымыл, цээсэс, жаваскрипт, сишарп для бэкэнда, SQL для работы с СУБД, пайтон для скриптяшек, и ещё в пауэршелл умеет. Вот их уже семеро в один момент времени. А десять лет назад он был на каком-то другом стеке, и там у него был свой зоопарк.


  1. NIKTO56
    01.12.2023 18:43
    -3

    Книг хороших много., языков программирования видимо поменьше. Я остановилась в выборе на python.


  1. gev
    01.12.2023 18:43
    +2

    Haskell не познал – мира не видал!


  1. KvanTTT
    01.12.2023 18:43
    -1

    Я знаю ещё больше языков, а названий - тем более.


  1. Szer
    01.12.2023 18:43
    +7

    После С всё кажется знакомым

    Человек умудрился пропустить все ML подобные языки (SML, OCaml, Haskell, F#, Idris), все LISP подобные языки (Common LISP, Clojure, Racket) где он был эти 30 лет?

    Статья - полный сумбур, что там учить-то в CMake/PWSH, write-only билд скрипты?

    Автор выучил разные диалекты SQL (T-SQL, PL/SQL), но при этом умудрился выучить Assembly (хотя там диалектов больше чем в SQL и они все разные)

    Мог бы в список внести ещё HTML, CSS, XML и JSON с таким подходом :D


    1. jpegqs
      01.12.2023 18:43

      Ну, языки ассемблера кучкуются в группы, CISC/RISC/VLIW, и всякая экзотика вроде OISC. Языки из разных групп кажутся очень разными, но в пределах одной группы похожи. Бывают еще черты вроде регистровых окон (SPARC, E2K), выполнение пары инструкций за раз (Hitachi SH4), delay slot (MIPS, OpenRISC), несколько аппаратных стеков (E2K, IA64), регистровый стек (сопроцессор x87), стек машины (Java байткод), абстрактное синтаксическое дерево в стиле Lisp (WASM) и т.д.


      1. Szer
        01.12.2023 18:43

        Именно! Меня удивило что автор пишет о разных диалектах SQL (осозновая что они разные), но вставил Assembly без указания конкретного, что лично для меня показывает что человек написал бездумно и ни одного конкретного Assembly он не выучил.


        1. PuerteMuerte
          01.12.2023 18:43

          но вставил Assembly без указания конкретного, что лично для меня показывает

          ...дефолтный асм х86 :) Очевидно же, что чувак с обычным массовым бэкграундом никогда в жизни не писал на асме под VLIW (и скорее всего, вообще ничего под них не писал), вряд ли писал на асме под RISC, потому что это либо что-то специфическое, либо мобильная разработка, в которой в масс-маркете тоже асм не присутствует.

          Ну может быть, под E2K разрабатывал... хотя нет, постойте.


          1. jpegqs
            01.12.2023 18:43
            +1

            Из всего мной перечисленного я писал только для 16/32/64-бит x86 и 32-бит ARM (aarch64 настолько переделали, что можно считать отдельным языком). Остальное только читал. Для e2k только инлайн ассемблер вставку написал небольшую, на VLIW языках вручную мало пишут, это слишком тяжело и долго написать на них код лучше чем это сделает компилятор, пишут для вещей что компилятор сделать не может, вроде трамплинов для FFI.

            Для Hexagon (тоже VLIW) лишь несколько строк написал, когда надо было функцию на ассемблере из библиотеки переделать под другой API, там была обработка непрерывного участка (1D), а мне надо было 2D (ширина, высота, страйд). Зато читал ассемблерные листинги, чтобы понять в каких местах регистр аллокатор не справляется и начинает сохранять один регистр на стек и загружать другой (spilling), тогда производительность сильно падает, надо код переписывать в более лёгкий для компилятора вид.


            1. PuerteMuerte
              01.12.2023 18:43

              Это вас направление сильно специфическое. Чувак-то был обычным десктопным разработчиком.


              1. jpegqs
                01.12.2023 18:43

                Просто намекаю что даже в своём специфическом направлении я не стал бы утверждать что выучил всё с чем сталкивался. Многое запомнил я только из x86, остальное смогу писать/читать только с открытой документацией или заглядывая в свой уже написанный код.


    1. PuerteMuerte
      01.12.2023 18:43
      +2

      Человек умудрился пропустить все ML подобные языки (SML, OCaml, Haskell, F#, Idris), все LISP подобные языки (Common LISP, Clojure, Racket) где он был эти 30 лет?

      Я их тоже за свои 25 лет полностью пропустил. Ну, названия знаю, но пробовать даже не любопытно было. Очень несложно пропустить то, что не интересно :)


      1. FreeNickname
        01.12.2023 18:43

        Кстати, а не знаете, что-нибудь LISP-подобное ещё живо вообще? Лет 10 назад была мысль покопаться с Clojure, но было не до того. И вот не знаю, он ещё жив (ну или что-нибудь LISP-подобное), или вообще забыто. А LISP в университете был любопытным :)


        1. gev
          01.12.2023 18:43

          Кложа, вроде, живее всех живых!


        1. orenty7
          01.12.2023 18:43

          Racket, вроде, тоже хорошо себя чувствует. Но лично мне из диалектов больше всего CL нравится, несмотря на меньшую популярность


      1. SquareRootOfZero
        01.12.2023 18:43
        +1

        Мне было интересно, я пытался ковыряться и с OCaml, и с Haskell, и с Common Lisp, но если

        под изучением я подразумеваю, что написал на них достаточное количество кода

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


  1. ef_end_y
    01.12.2023 18:43
    +1

    Приведу свой список самых забавных языков, на которых я делал реальные задачи:

    • Fort - стековый язык, прокачивает мозг дай боже

    • Pawn - на нем раньше писали модули для каунтер-страйк 1.6. очень кастрированный си. Чтобы на нем что-то серьезное написать, нужно предварительно сломать мозг

    • Basic - мой первый язык программирования, на котором я год писал программы на бумаге (компы тогда были редкость). Вредный язык из-за своих Goto, которыми мои программы были просто переполнены

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

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

    • Js - клевый тем, что имхо на нем много кто программирует никогда не изучая его, я, например

    • Стековый язык для старых микрокалькуляторов - я даже не знаю названия, но помню распечатки в журналах. Упс. Это единственный язык из списка, на котором я не програмил, ну раз написал так написал


    1. jpegqs
      01.12.2023 18:43

      на которых я делал реальные задачи

      Стековый язык для старых микрокалькуляторов

      единственный язык из списка, на котором я не програмил

      ПОЛИЗ (обратная польская запись) что-ли? Не знаю что в этом забавного или необычного. Хотя что делали задачи на этом, при этом только из старых журналов помните и не программировали - это очень забавно, да.


      1. ef_end_y
        01.12.2023 18:43

        Да, "обратная польская запись" хорошо помню это выражение. Ну, мне показалось забавным на фоне современных языков


        1. jpegqs
          01.12.2023 18:43

          Если у вас Fort первым в списке, то вы это должны были использовать. ПОЛИЗ не является чем-то устаревшим, а очень даже используется, просто под капотом, не явно. Например Java байткод - как стековый язык использует ПОЛИЗ.


          1. ef_end_y
            01.12.2023 18:43
            +1

            Ну ок. Кстати, помню, не было у меня интерпретатора форт, была только книжка, я написал на асме 86 интерпретатор, под дос, это были 90-е. И после чего написал пару графических программ. Поначалу было очень сложно, но мозг такая штука, быстро адаптируется. По итогу на форте я написал 3д программулину, которая проволочной графикой вращала в разных направлениях примитивные объекты. Для себя отметил, что потратив на написание интерпретатора 2 дня + один день на эту прогу это было было в несколько раз быстрее если б я прогу писал чисто на асме


          1. AlexNoo
            01.12.2023 18:43

            Только Forth пишется не так, как в Fort-ran-е... :-)


    1. Grey83
      01.12.2023 18:43

      Pawn - на нем раньше писали модули для каунтер-страйк 1.6. очень кастрированный си.

      Есть ещё SourcePawn, который служит для написания плагинов под SouceMod, который в свою очередь используется для игр на движке Source (CS:S, CS:GO, HLDM, NMRiH, Insurgency и многих других). Он вроде синтаксисом ближе к плюсам.


      1. ef_end_y
        01.12.2023 18:43

        Прикольно. Я думал, что этот pawn благополучно выкинули. Я, кстати, на нем чуть ли не проект написал. Однако ввиду КС го ок уже стал неактуальным. А идея была такая: играть в КС под деньги. Тебя убивают - ты платишь цент. Ты убиваешь - тебе платят. Тимкилы ничего не дают, но после второго кик. Статистика прямо во время игры. Данные в бд и все такое. В общем, этот pawn я в страшном сне вспоминаю как там всего от си не хватало


        1. Grey83
          01.12.2023 18:43

          Однако ввиду КС го ок уже стал неактуальным.

          Почему же? При желании можно запустить сервер CS:GO и клиент в стиме пока ещё доступен вроде.
          Разве что купленное барахло перекочевало в CS2.
          Ну и кроме CS:GO ещё много серверов разных игр всё ещё SM используют.

          Можно просто заглянуть на АМ или HLmod и посмотреть темы.


          1. ef_end_y
            01.12.2023 18:43

            Я набирал с мобилки и автоисправление зафейлило мысль. Кс 1.6 стал неактуальным. Ну настолько чтоб туда пошли денежные клиенты, мой мод был рассчитан как раз на них


            1. Grey83
              01.12.2023 18:43

              Сейчас возможно в AMXmod с этим получше (никогда на нём ничего не писал, но кое-какой код на глаза попадался).
              А на SourceMod такое написать не проблема.

              Я вон плагин запилил в 2018-м, чтобы чужой не допиливать постоянно (проще было с нуля написать и я написал). И все эти 5 лет периодически его изменял (обычно фичи какие-нибудь добавлял, которые просили или самому хотелось, пока играл в CS:S на сервере с моим плагином). На данный момент в плагине 2к строк и исходник 61кБ весит. В версии 1.0.0 было 610 строк и 20кБ. С 16 консольных переменных разрослось всё до 46 (и некоторые из них не создаются при запуске в CS:S v34).
              Хотя больше интересного в комментах на HLmod'е почитать можно, чем на AM, куда я ссылку дал.


              1. ef_end_y
                01.12.2023 18:43

                Забавный плагин. Правда смысла не понял, ну раз играют или играли, значит смысл был


                1. Grey83
                  01.12.2023 18:43

                  Там ещё многое от настроек зависит: можно выставить всякие ограничения на количество поднятых, на доступное время поднятия после смерти, сколько хп отдаёт игрок за поднятие или наоборот получает.
                  Обычно на картах de_* играл. При небольшом количестве игроков на сервере раунд может в разы длиннее сделать.


  1. 1Tiger1
    01.12.2023 18:43
    +1

    А где HTML, CSS, XML, JSON, EXCEL, WORD, и владение компьютером Windows на уровне уверенного пользователя?


  1. asatost
    01.12.2023 18:43
    +3

    Не современный C, а классический C без каких-либо строковых библиотек и других полезных вещей, присутствующих сегодня в C и C++

    Щито?! В начале 2000-ых С без строковых библиотек? Которые были уже в ANSI C аж 1983 года???


  1. jar_ohty
    01.12.2023 18:43

    Хм... На скольки ж я языках программировал?

    Ну бейсик, конечно. С этого все начиналось. Затем был ассемблер Z80 и ассемблер PDP-11. Считаем их разными языками, потому что реально разные. Потом к ним добавился ассемблер PIC-контроллеров и i51, но это уж потом.

    Далее -- МК-61, к которому вскоре добавился язык Д3-28 (у мамы на работе был). Пожалуй, это тоже к ассемблерам, хоть и довольно высокоуровневым. Ах да, был еще фокал. Вот язык "Искры-1256" прошел мимо меня)) Хотя эта самая "Искра" стояла у мамы на работе тоже. Но никогда не включалась при мне. Паскаль и Фортран были потроганы, но они так мучительно долго компилировались на УКНЦ, когда программа становилась хоть немного сложной, что я не продвинулся дальше простейших вещей, хотя что то, что то мне показалось совершенно прозрачным и понятным. Также пощупал FORTH и язык "решателя" Eureka. На форте даже пытался написать что-то полезное, но мозги заплелись раньше, чем удалось достичь чего-то.

    Дальше был универ. Там, конечно же, паскаль по программе и си вне программы. Паскаль казался деревянным и дубовым, а си нравился. Потом влез в линукс, а там, конечно, bash. На паскале писал в основном учебные программы, а на си -- написал программу для обработки порошковых дифрактограмм, синтезатор речи из текста, "самописец" для самодельного АЦП (работавшего по принципу "преобразователь напряжение-частота + частотомер), довольно навороченную программу для построения графиков из файлов с данными и много по мелочи. Потом приобщился к Delphi -- считаем его отдельным языком, как си и плюсы. Освоение плюсов, к слову, у меня отложилось до появления Arduino:)))

    Ну а потом программирование у меня стало постольку-поскольку. Что-то нужно слепить или переделать готовое -- берется и лепится. При этом языки были разные. Perl, Tcl/Tk, змеюка (в смысле, Python), Scheme, опять же бейсик (была такая машина HP-9000, почти ЭАЛ из "Одиссеи", у нее оперативная память была на ЦМД). Даже REXX пришлось однажды ковырять, потому как была к одному прибору в лаборатории машина PS/2 с полуосью. Конечно же, пришлось всерьез учить Matlab. Яваскрипт и PHP тоже не прошли мимо меня, так как нельзя ж было не слепить своего хомяка.

    Ну а дальше все свелось к трем языкам. Си, матлаб и питон. Си -- на микроконтроллерах, матлаб -- чтобы что-то посчитать или нарисовать, питон -- накодить какой-нибудь "бормотограф" -- скрипт, забирающий с какой-нибудь железяки то, что она выплевывает, и выводящий все это в удобоваримой форме, которую легко читать или скормить ориджину, серферу или тому же матлабу (вроде того, что писал вот прямо неделю назад -- на входе NMEA прямо из порта, на выходе -- красиво отформатированные в колонки время, широта и долгота в градусах, минутах и секундах).

    Итого: 24 языка. Это если ассемблеры и символьные языки считать каждый в отдельности. Что из этого помню, чтобы прямо вот взять и писать? Ну, кроме упомянутых трех языков -- пожалуй, "классический" (с номерами строк, GOTO и GOSUB) бейсик и "классический" же паскаль. Ну и баш-скрипт. Ну и калькуляторный язык МК-61 (а вот Д3-28 даже, возможно, не вспомню, как на нем посчитать два плюс два).

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


  1. Sykoku
    01.12.2023 18:43

    Ассемблеры бывают разные. В 1991-м еще люди помнили слова PDP, VAX. Некоторые даже писали на Алголе, и Фортране. Пролог забыт.

    И если ПауэрШелл - язык, то тогда и PC/MS - DOC`ы надо вспоминать. Как раз на 90-е было начало бума сошествия 86-х.


    1. bolk
      01.12.2023 18:43

      А что, PowerShell не язык что ли? А что тогда?


  1. geher
    01.12.2023 18:43

    Мой список языков (на которых написал по своему желанию или по необходимости не менее двух программ, естественно, с некоторыми допущениями на предмет того, что считать языком программирования, а потому всякие html и иже с ним не упоминаю).

    Калькуляторы: МК-61

    Ассемблеры: ЕС ЭВМ, PDP-11, x86

    Языки управления и командных оболочек: ЯУЗ, bat (язык командной оболочки dos и windows), bash.

    Языки запросов и все такое: пролог, SQL (пяток диалектов, наверное), qmake.

    Языки высокого уровня: fortran, basic, ЯМБ, pascal, c, delphi, visual basic из MS office, c++, Cache Object Scrypt (сильно расширенный MUMPS, баловался с бесплатной версией СУБД Caché), python.

    Приходилось сталкиваться и с другими языками: cobol, matlab, skylab, eureka, lisp, pl/1, forth, ада, dbase, cmake, lua (что-то точно упустил, ибо некоторых названий всякой экзотической ереси просто не помню), но то были либо точечные правки в чужих программах, либо только одна написанная проорамма, а потому незачет.

    В реальности могу сейчас свободно писать только на sql, delphi, c, c++, bat и bash. Остальное придется сначала хотя бы немного, но вспоминать.

    Так что утверждать, что подобно автору выучил 30 языков и могу (таки знал когда-то в разное время даже немного больше), и не могу (ибо одна программа или точечные правки чужих - это незачет, не говоря уже о том, что на большей части сходу и не вспомню, как писать, придется покопаться в памяти).


  1. pavelsc
    01.12.2023 18:43

    К счастью в реальной жизни будешь веслать где скажут и не будет времени терзать себя вопросами о лучшем в мире языке/фреймворке/IDE и прочем. То что в статье это зеленая молодость. А свои пет проекты и опенсорс пили хоть с малины в vim, никто тебе ничего не скажет. Не понятно к чему этот флёр романтизма в статьях о разработке, обычная работа, более всего сходная с работой на заводе, где наши родители повально сидели.


  1. tatyana_august
    01.12.2023 18:43

    "ощущение себя глупцом" - с того начинается мой рабочий день и заканчивается. Становится легче, когда осознаешь, что вокруг тебя такие же люди :)


  1. nichrom
    01.12.2023 18:43

    А Step5 считается ЯП? Учил лет 30 назад


  1. azamatk503
    01.12.2023 18:43
    -1

    Тот самый момент, когда на 30 ЯП написал Hello world.


  1. alexmuk
    01.12.2023 18:43

    Тоже за 20+ лет работы программистом. Делал коммерческие проекты C++, VB6, VB.NET. C# Java (android) PHP, Python. (SQL стор процедуры даже не в счет). И тут даже гордиться нечем. Обычное дело для программиста работающего над разными проектами, в разных фирмах.


  1. Arch86
    01.12.2023 18:43

    Я думаю лучше выучить 1 язык программирования и постоянно повышать свой скилл в этом направлении, чем забивать себе голову, всего все равно не запомнить. Я тут С# пытаюсь учить так я в программировании чайник


    1. alexmuk
      01.12.2023 18:43

      Не важно, что лучше. Что работа датель просит, то и учите. Вы начинающий, поэтому вам кажется все сложно.


    1. PuerteMuerte
      01.12.2023 18:43

      Я думаю лучше выучить 1 язык программирования и постоянно повышать свой скилл в этом направлении

      Это ещё надо постараться найти сферу, где вам будет достаточно какого-то одного языка.


  1. Throwable
    01.12.2023 18:43

    Лев Николаевич Толстой был известным полиглотом. Он владел 13 языками. В возрасте 80 лет он стал учить китайский. Но язык ему не дался. "То ли китайский язык слишком сложный, то ли я для него слишком стар" -- разочарованно промолвил Лев Толстой. (где хаскель?)

    P.S. Знать и владеть -- разные вещи.