Я в IT уже 15 лет: 10 лет разрабатывал DevOps в 1C и 3 года руководил отделом разработчиков в Сбере и не писал код. Однажды я понял, что хочу кодить, а не руководить — и передо мной встал вопрос: какой выбрать язык?

Может быть, взять самый популярный? Или тот, по которому больше всего вакансий? А может, тот, где самые высокие зарплаты?..

Под катом я расскажу, почему сама постановка вопроса о выборе языка программирования порочна и какой метод я использовал, чтобы найти идеальный ЯП. Это обошлось мне в 26 000 рублей, но с Хабром поделюсь бесплатно.

Просто выбирать язык бесполезно — нужно искать направление

Если язык популярен — значит по нему много информации и общительное коммьюнити. Если по языку много вакансий, то, скорее всего, много соискателей. И не факт, что по популярным языкам программирования проще найти работу. Кроме того, поработав в какой-то сфере, можно полностью в ней разочароваться.

Потому я всегда отвечаю, что сначала нужно выбрать направление в IT. Когда выбрано направление — язык выбрать не проблема. А чаще даже и выбирать ничего не нужно. Во многих направлениях либо только один язык используется, либо есть один самый востребованный.

Когда я решил завязать с руководством, мне были интересны несколько направлений в IT. И я долго не мог выбрать. Пробовал написать универсальное резюме, которое бы подходило под всё. Но меня не звали на собеседования.

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

И тогда я начал искать способы, как выбрать направление. Сначала сходил на расстановки по Хеллингеру, но на них лишь определилось, что у меня появится девушка. С выбором направления лично мне расстановки не помогли, хотя, может, кому-то помогут. И тогда я пошёл к психологу.

Метод психолога сократил 9 направлений до 3

Консультация у психолога стоила мне 5000 и очень помогла в выборе направления. Итак, у меня было 9 направлений в IT, которые мне были интересны, и я не мог из них выбрать. Психолог попросила меня нарисовать в центре листа кружок, написать в нём «Я» и вокруг этого кружка написать направления, которые мне интересны. У меня получилось что-то вроде этого:

Дальше надо выбрать какое-то одно. Например, Startup. Закрыть глаза (или не закрывать, если так удобнее). Представить, что я уже давно работаю по этому направлению и достиг в нём всего, что хотел. Подумать об этом минимум минуту-две и обратить внимания на ощущения в теле, запоминая их. Например, напряглась спина, потяжелели веки, бурлит в животе, ноги не находят себе места и т. д. Ещё минуты три посидеть, запоминая все ощущения. Потом открыть глаза и рядом с направлением выписать все ощущения в теле, которые были эти 5 минут. 

Когда все ощущения выписаны, минимум на пару минут отвлечься, встряхнуться, чтобы отвлечься от предыдущего направления и «обнулить свои настройки». Затем снова сесть с закрытыми глазами на 5 минут, выбрав следующее направление, например Frontend. Выписать по нему свои ощущения. Потом снова минимум 2 минуты перерыв. И так продолжать, пока не выпишешь свои ощущения по каждому направлению. Получится что-то вроде:

По всем направлениям выписаны ощущения в теле. Теперь можно начинать интерпретировать эти ощущения. Пытаясь понять, как какое-либо ощущение скажется на работе по этому направлению.

Например, «напряглась спина» — видимо, будет очень много тяжёлой работы. «Потяжелели веки» — будет так много работы, что не буду высыпаться. «Бурлит в животе» — видимо, буду на нервах всё время. «Ноги не находят себе места» — видимо, придётся очень много бегать и что-то разруливать. Можно эти комментарии написать рядом с комментариями по ощущениям. У вас могут быть свои ассоциации, может, даже противоположные. Например, «напряглась спина» — чувствую в себе силу справиться с любой задачей, а «ноги не находят себе места» — буду прыгать от радости на такой работе. В общем, всё индивидуально. В итоге может получиться что-то вроде:

Итак, теперь выписано, как будет работаться во всех направлениях, и уже не сложно выбрать. В моём случае мне подходят игрофикация, Mobile и ИИ (искусственный интеллект). Остальное явно не для меня. Более того, я уже примерно понимаю, что меня ждёт на такой работе. Получилось так — после вычёркивания лишнего:

Таким необычным способом я сократил количество направлений с 9 до 3. Но нужно выбрать только одно направление. И тогда я пошёл к своему знакомому бизнес-коучу. Ведь мне нужно выбрать, как я дальше буду зарабатывать деньги, а бизнес-коуч как раз знает, как зарабатывать деньги. И да, я пошёл к бизнес-коучу, у которого реальный бизнес и который на своих бизнесах получает более миллиона в месяц, а бизнес-коучинг — это его хобби. Всё-таки есть разница между реальными бизнес-коучами и инфоцыганами.

4 вопроса, которые помогли мне выбрать одно направление

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

Это было 3 года назад, и я не понимал, как бизнес-коуч помог сделать выбор. Но год назад я узнал про "икигаи" (яп. 生き甲斐 икигаи, «смысл жизни»). Если ни разу не слышали его, то загуглите и получите картинки вроде этой:

И давайте на примере тех трёх направлений, которые я выбрал на прошлом шаге, пройдёмся по Икигай. Для простоты сделаю это в виде таблицы:

Игрофикация

Mobile

ИИ

Что вы любите

Да, мне нравится игрофикация

Да, я люблю делать мобильные приложения

Частично, интересно настраивать модели, но есть и не очень интересные мне методы

Что миру нужно

Частично, спрос на игрофикацию сейчас не высок

Да, сейчас у каждого уважающего себя сервиса должно быть мобильное

Частично, сейчас только крупные корпорации и некоторые средние готовы платить за разработку ИИ

Чем вы можете зарабатывать

Частично, не все понимают, что качественная игрофикация дорого стоит, и часто путают её с дешёвой PBL (Points, Badges, Leaderboards) 

Да, когда я на hh смотрел потребность в мобильных разработчиках, то там было по 5000 вакансий по iOS и по Android — а это высокий спрос

Да, заказчики понимают, что разработка ИИ стоит дорого и готовы за это платить

Что вы умеете

Да, я 1,5 года занимался игрофикацией, в том числе и на коммерческих проектах

Да, я около полугода изучал мобильную разработку и готов продолжать изучение

Да, я около полугода проходил разные курсы по ИИ

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

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

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

Когда направление выбрано, язык выбрать не сложно

Об этом много материалов, а если кратко, то ниже сферы, с которыми я связан. А в комментариях напишут почему я неправ или дополнят. Ведь известно, что комментарии на Хабре интереснее, чем сама статья). 

Во фронтенде сейчас единственный язык программирования — JavaScript, хотя последнее время активно развивается его надстройка TypeScript. Так что можно смело начать изучать JavaScript, а потом доучиться до знаний TypeScript, если это потребуется.

В мобильной разработке под iOS сейчас только Swift, хотя последнее время активно продвигается SwiftUI для интерфейсов. Так что начинающим iOS-разработчикам предстоит выбирать между стандартным Swift на UIKit (большинство вакансий пока на нём) или модным SwiftUI (который будет популярен через пару лет). Знатоки iOS-разработки могут спросить — а как же Objective C? Но этот язык не поддерживается даже Apple, так что можно его не изучать (если нет необходимости поддерживать какие-нибудь устаревшие legacy).

В мобильной разработке под Android сейчас только Kotlin, может, кроме старых проектов, которые написаны на Java. Но последних сейчас очень мало. Если года 2 назад я бы посоветовал сначала изучить Java, а потом за пару недель изучить отличия Kotlin от Java, то сейчас я советую сразу изучать Kotlin.

Если же в мобильной разработке хотите разрабатывать сразу и под Android, и под iOS — это называется кроссплатформой. Есть два основных языка — это язык Dart, который используется во фреймворке Flutter. Это самый перспективный фреймворк сейчас, и он с каждым годом набирает обороты. Либо на некоторых проектах требуется знание языка JavaScript — обычно на фреймворке React Native.

Бэкенд — это, наверное, одна из немногих сфер, где сейчас популярно несколько языков. Тут придётся определиться более точно со сферой.

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

Если любите работать с инфраструктурой от Microsoft — то ваш выбор C#.

Если вы хотите быстро делать бизнес-фичи в стартапе — тут ваш выбор язык Ruby.

Если хотите работать в банках и других корпорациях — начните изучать Java.

Если хотите универсальный язык, применимый почти везде — ваш выбор Python или JavaScript, или если вы не боитесь сложностей - С++.

Хотите быть фулл-стеком, при этом зная один язык, — изучайте JavaScript.

Хотите настраивать высокопроизводительные сервисы и облачные вычисления — для вас есть три языка: C++ (один из самых сложных языков, но при этом в нём есть всё), Go/Golang (язык попроще чем C/C++ от Google), Rust (язык от Mozilla).

Если хотите заниматься искусственным интеллектом — там почти всё на Python.

В анализе данных и BigData сейчас используют два языка: R и Python — они немного похожи друг на друга. Так что изучив один — изучить другой будет несложно.

В GameDev сейчас две основных платформы: Unity на языке C# и Unreal Engine на языке C++. Также есть платформы, основанные на HTML5 или JavaScript, а также скриптовые языки Lua и UnrealScript — но они, скорее, дополнение к основному языку. 

Блокчейн-проекты пишутся в основном на C++, при этом часть сервисов использует Go/Golang, Java, JavaScript и python. Сервера для блокчейн пишутся на Erlang, а смарт-контракты — на Solidity.

С остальными IT-сферами я мало знаком, но, думаю, если вы захотите, то сможете найти информацию по используемым в них языках самостоятельно.

Краткое содержание для тех, кому лень читать

Я смог найти себя в IT, использовав метод на стыке психологии и философии Икигай. Сначала составил карту своих интересов: получилось порядка 10 направлений. Затем, закрыв глаза, представил, что работаю в каждой сфере уже много лет — и записал свои ощущения в теле. 

Интерпретация этих ощущений помогла мне сократить количество направлений до 3–4. После по каждому направлению я ответил на четыре вопроса: то ли это направление, которое я люблю; востребовано ли оно в мире, смогу ли я на этом деле заработать и умею ли я этим заниматься.

Оставив направление, в котором чаще был ответ «да», я понял, чем хочу заниматься, — и осознал, какой язык программирования учить.

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


  1. Keeper9
    09.01.2023 16:36
    +20

    Консультация у психолога стоила мне 5000

    Идите лучше в психологи.


    1. Lavs Автор
      09.01.2023 16:36
      +1

      Это следующий этап, когда IT надоест)))


  1. Tahallus
    09.01.2023 17:12
    +20

    Rust (простой язык от Mozilla)

    Вот это поворот


    1. Lavs Автор
      09.01.2023 17:19

      Благодарю за комментарий. Не программировал на Rust. Убрал слово "простой"


    1. 0xd34df00d
      09.01.2023 17:50
      +4

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


      1. speshuric
        10.01.2023 02:26
        +3

        А кто в той же нише? Даже так: а как можно сформулировать именно нишу rust? Просто куда ни ткни, rust имеет слишком много особенностей при сравнении с другими языками той же ниши (по крайней мере если отбросить маргинальную экзотику). Где-то эти особенности "в минус", где-то "в плюс".

        Ну вот как язык уровня ОС он "конкурирует" с C. С явно проще как язык (это не значит, что проще писать). Но rust в обмен на свою дополнительную сложность даёт свои преимущества.
        Как язык для простых сервисов бэк-энда он может конкурировать с Go. Go в целом проще. Но в Go больше runtime и сборка мусора - что немного разделяет ниши.
        А в сложном бэкенде, где обитают jvm (Java, Kotlin), dotnet core (C#), Rust вроде особо конкурентом и не числится (пока?). Как, впрочем, сложно себе представить rust и в нишах PHP или Ruby. Ну и точно rust не про конкуренцию с Python по нише. Да и с JS/TS ниша не совпадает.
        С++ точно сложнее. Rust может и рад бы поконкурировать, но при всей вкусности Rust, ему до конкуренции за всю нишу C++ еще как до луны пешком.

        В итоге, как мне кажется, сейчас ниша rust - это либо более-менее прямая конкуренция с C и Go, либо компилируемый костыль производительности для разных толстяков (больше Python, JS, меньше Java, Kotlin, C#). Причём тут слово "костыль" не ругательное: просто на Rust можно подпереть какое-то локальное узкое место - но фактически это та же "безопасная замена C", даже ABI сишный придётся использовать.


        1. 0xd34df00d
          10.01.2023 02:45
          +1

          А кто в той же нише? Даже так: а как можно сформулировать именно нишу rust?

          Легко достижимые близость к железу и отсутствие оверхеда от рантайма, вместе с достаточно прогнозируемой производительностью. Соответственно, конкуренты — по факту C да C++.


          Я, конечно, напрочь испорчен, но не согласен с прочими нишами, особенно если игнорировать простоту (потому что мы максимизируем простоту при прочих равных).


          Как язык для простых сервисов бэк-энда он может конкурировать с Go. Go в целом проще.

          Простые сервисы любо-дорого писать на хаскеле. Бойлерплейт убирать в реюзабельные библиотеки для этого — вообще одно удовольствие.


          А в сложном бэкенде, где обитают jvm (Java, Kotlin), dotnet core (C#)

          Сложный бекенд тем более лучше писать на хаскеле.


          Как, впрочем, сложно себе представить rust и в нишах PHP или Ruby. Ну и точно rust не про конкуренцию с Python по нише.

          Я не очень представляю, чем живут PHP/Ruby/Python-вне-датасайенса, поэтому тут ничего не могу сказать.


          Rust может и рад бы поконкурировать, но при всей вкусности Rust, ему до конкуренции за всю нишу C++ еще как до луны пешком.

          Почему? Я именно её и имел в виду.


          1. speshuric
            10.01.2023 03:43
            +4

            не по порядку

            Почему? Я именно её и имел в виду.

            Потому что вся ниша C++ это огромный багаж существующего нагромождения кода. Либо учиться жить вместе и вытеснять помаленьку (так с C происходит), либо "переписать всё сразу" (что не кажется реальным). И тут становится непросто. Вот пример - попробуйте написать UI приложение под KDE и Qt. Проблема в том, что Qt сильно "засиплюсслюсенный" фреймворк и, хотя определённые продвижения в этой интеграции есть, но, чеснослово, до стадии "готово" там еще далеко-далеко.

            Простые сервисы любо-дорого писать на хаскеле. Бойлерплейт убирать в реюзабельные библиотеки для этого — вообще одно удовольствие.

            Я не смогу сравнить Rust с хаскелем. Уж слишком они разные. Как вы правильно заметили, Rust про тонкий слой до кишков и скорее про прогнозируемое исполнение. Функциональщины в нём почти нет (а та, что есть - не идиоматичная). С Go похожая история - он максимально "линеен" и императивен, рантайм относительно компактный и более-менее прозрачный по IO, а сборка мусора задумывалась, как предсказуемая.
            Тут я, наверное, неточно выразился, я не имел в виду "простые сервисы" в смысле "сервисы из сотни строк", а скорее "примитивные с точки зрения бизнес-домена". Например, MinIO (написан на Go) ни фига не маленький и не простой, но с точки зрения предметной модели бизнеса он примитивная хранилка блобов.

            Сложный бекенд тем более лучше писать на хаскеле.

            Хаскель во многом прекрасен, но в этой части ни фига не мейнстримен.

            Python-вне-датасайенса

            Python в DS оказался отчасти случайно. Сам-то язык медленный (плюс-минус как 1C и VBA), но благодаря низкому порогу входа и нескольким хорошо написанным внешним библиотекам стал использоваться у "не совсем труъ программистов", т.е., например DS.


  1. zeblong
    09.01.2023 17:27
    +4

    у меня видимо проблемы с сарказмом - я же верно понял что это юмористический текст?


    1. Lavs Автор
      09.01.2023 17:36
      +1

      Пусть для тебя этот текст будет стендап-выступлением :)


    1. yuriihlushko
      09.01.2023 17:36

      почему вы так считаете?


  1. Markscheider
    09.01.2023 17:39

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

    Сразу возникла мысль - а описанным методом можно выбирать из всех своих пассий ту, с которой завязать серьезные длительные отношения?

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

    Появилась? А то мы волнуемся :)


    1. Lavs Автор
      09.01.2023 17:40
      +1

      Про метод - наверно да.
      Про девушку - уже 5 лет вместе живём.


  1. urticazoku1
    09.01.2023 18:01
    +10

    Икигай говорите?

    Hidden text


    1. Lavs Автор
      09.01.2023 18:12

      Если что, такое представление называется Круги Эйлера или Диаграмма Венна
      https://ru.wikipedia.org/wiki/Диаграмма_Венна

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


  1. starik-2005
    09.01.2023 18:02
    +1

    Хорошая статья, полезная, интересная, оригинальная... 26к - дешево отделался )))


  1. stumyp
    09.01.2023 18:36

    По поводу кроссплатформенности и Rust: вы не поверите, но на Rust можно писать ядро под кучу платформ и дополнять оформление нативными тулкитами.


    1. Lavs Автор
      09.01.2023 18:53
      +1

      Так кроссплатформенность на многих языках существует. Например на Kotlin помимо мобилки под Android - пишут мобилку под iOS, сервера (вместо Java), средства автоматизации (вместо Gradle). Но этих применений гораздо меньше, чем основного применения языка. Я писал именно про основные направления в каждом языке.


  1. Mephi1984
    09.01.2023 18:56

    Жаль нельзя как в ВК или Фейсбуке, поставить на статью эмодзи ????


    1. Lavs Автор
      09.01.2023 18:59

      Зато можно поставить её в комментариях ????


  1. johnfound
    09.01.2023 19:04
    +7

    Здесь прочитали как поступает гуманитарий, которому очень хочется в ИТ, ибо сытно.


    Не критикую, нет, но человек с рациональным инженерном мышлением так никогда не поступил бы...


    1. Lavs Автор
      09.01.2023 19:36

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

      У человека с рациональным левополушарным мышлением скорее всего не возникло бы вопросов с выбором направления и языка. Соответственно и моя статья такому человеку не нужна.


    1. biokin
      09.01.2023 20:00
      +5

      Зарабатывать можно множеством способов. Задача -- договориться с иррациональной частью личности, чтобы сей процесс радовал, а не истощал в долгосрочной перспективе.


    1. un1t
      09.01.2023 21:27
      +3

      А как бы поступил человек с рациональным инженерном мышлением?


      1. johnfound
        09.01.2023 23:51
        -1

        Он вообще не задумывался бы над такими вопросами, а делал бы то что ему интересно. А когда уже не интересно, начинал бы заниматься чем то другим.


        1. minzhi
          10.01.2023 10:03
          +2

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


          1. johnfound
            10.01.2023 15:19
            -3

            Дело в том, что деньги это вторично – если человек делает то что ему нравится, то деньги придут. В итоге, человек будет работать то что эму нравится и одновременно будет получать много денег.


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


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


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


            В этом, конечно нет ничего плохого. Работа должна быть в радость. Тем или иным путем.


            1. Lavs Автор
              10.01.2023 15:24
              +1

              Это как раз и есть икигай - там именно про это. Что деньги это одно, что нравится - это другое, нужно людям - это третье, что знаешь - это четвёртое. И только если всё это сходится в одном - то это идеально.


            1. danSamara
              12.01.2023 04:52

              Это ни разу ни так. Делать что нравится не значит "зарабатывать много денег".

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


              1. johnfound
                12.01.2023 11:43

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


    1. Refridgerator
      10.01.2023 06:18
      +1

      Так основной контингент в современном айти — это и есть гуманитарии.


  1. andreyds95
    09.01.2023 19:36
    +1

    А разве не DS занимаются ИИ? Просто я сам Data Scientist, мы стараемся избегать громкого выражения «искусственный интеллект», но я не знаю никакой другой профессии, которая была бы ближе к теме ????


    1. Lavs Автор
      09.01.2023 19:53
      +1

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

      Для меня Data Science - это в первую очередь анализ и обработка больших объемов существующей информации (обычно текстовой), при этом для обработки и анализа может использоваться ИИ.
      https://ru.wikipedia.org/wiki/Наука_о_данных

      Исскуственый интеллект - для меня это больше алгоритмы и методы, которые могут выполнять творческие функции и часто работают мультимедиа-данными
      https://ru.wikipedia.org/wiki/Искусственный_интеллект

      Кстати, неплохая картинка про Data Science и AI:


  1. Fen1kz
    09.01.2023 20:31
    +9

    Я правильно понял что ответ на вопрос в заголовке это по сути "у меня чот побурлило в животе и поэтому я пошел в мобильную разработку"?


    1. Lavs Автор
      09.01.2023 21:01

      Не совсем, "мне комфортно сидеть в кресле, расслабился, пальцы хотят что-то печатать - потому пошёл в мобильную разработку" )))

      А если серьёзно я тут описал лишь вершину айсберга и то, что лично мне помогло буквально за пару месяцев найти своё призвание. У многих на поиск своего призвания уходят годы, а многие на столько боятся что-либо менять, что годами ходят на нелюбимую работу. Я тоже 10 лет работал в 1С и ходил на нелюбимую работу. Пока не решил что-то поменять в своей жизни - попав сначала в Сбер, а потом в мобильную разработку.


      1. Fen1kz
        09.01.2023 22:25
        +4

        А если серьёзно, то вот момент вашего выбора:

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

        Вся муть про икигай и прочее потом - это вода.

        Про психолога просто какой-то бред, лучше бы гороскоп составили или на гуще погадали.

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

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


    1. acsent1
      10.01.2023 13:05
      +2

      Можно еще было использовать метод чайного пакетика.
      1. Пишутся варианты по кругу
      2. Берется пакетик на длинной ниточке и держится над кругом
      3. В какую сторону пакетик отклонится (а он рано или поздно отклонится) - тот вариант и выбирать


      1. Lavs Автор
        10.01.2023 15:16
        +3

        Есть ещё метод монетки:
        1. Загадываешь на каждую сторону монетки что-нибудь (например подходит мне это направление или нет)
        2. Подкидываешь монетку и понимаешь что из загаданного выпало.
        3. Если радуешься или нет эмоций - то так тому и быть.
        4. Если опечален или напрягся - то нужно поступить наоборот.


  1. optimizator
    09.01.2023 21:09
    +7

    Какой-то пост для тех, кто умеет чувствовать измененияв своём теле, расходимся


    1. Lavs Автор
      09.01.2023 21:09
      -1

      Да, это не про hard-skills, это про soft-skills


  1. un1t
    09.01.2023 21:35
    +1

    Очень странные направления, как это вы противопоставляете бэк, фронт и стартап? Т.е. в стартапах нет ни бэка, ни фронта и мобилок не бывает?

    Стартапы тоже разные бывают бывают где 1000 человек а бывает где 2. И темпы работы могут быть разные, в стартапах тоже не всегда все работают по 80 часов в неделю, бывает и расслабленно работают.

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


    1. Lavs Автор
      10.01.2023 14:34
      +1

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

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

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


      1. un1t
        10.01.2023 14:39

        Если владельцем, то тогда понятно.


  1. Maxmyd
    09.01.2023 22:07
    +2

    Если любите работать с Windows и инфраструктурой от Microsoft — то ваш выбор C#

    Вы точно эту статью недавно писали?


    1. Lavs Автор
      10.01.2023 14:40

      Да, я в курсе, что C# давно используется на linux/unix-системах и код вполне может писаться на macOS. Тут имелось ввиду, что для бекенда на C# есть развитая инфраструктура от Microsoft. Пользоваться ей или нет - выбор за C#-разрабом и компании в которой он работает.

      А про Windows - удалю, чтобы не путать. Но кому, то кто кроме Windows не видел других ОС будет проще начать именно с C#.


  1. Shatun
    09.01.2023 22:29
    +2

    Мое видение, по популярности/используемости

    Бэкенд — это, наверное, одна из немногих сфер, где сейчас популярно несколько языков

    В среднем больше всего java, также широко используется С#, nodeJS для BFF/интеграций, go активно занимает нишу, PHP потихоньку умирает но все еще очень популярен.

    Если любите работать с Windows и инфраструктурой от Microsoft — то ваш выбор C#.

    Очень широко но прямо сложно назвать C# доминирующим. Приложения-чаще electron(js/ts), потом .net, дальше с отрывом java и С++ с qt, скрипты - ps/python или кто во что горазд.

    Если вы хотите быстро делать бизнес-фичи в стартапе — тут ваш выбор язык Ruby.

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

    Если хотите работать в банках и других корпорациях — начните изучать Java.

    Тут прямо JAVA рулит и бибикает в плане бэка. Также С#, раньше скала. А если в целом то тот же python актуален(аналитика), js для фронта и т.д.

    Если хотите универсальный язык, применимый почти везде — ваш выбор Python.

    Хз, сейчас в разных сферах сложно назвать один язык что был везде. Под мобилки на python не пишут(массово), десктоп относительно непопулярен, фронт-только JS, какие-нибудь БД - С, C++, Java, go, rust. По мне наиболее "широкие" языки java, js, python, мб С++

    Хотите быть фулл-стеком, при этом зная один язык, — изучайте JavaScript.

    Только если как фулстэк понимать типичный CRUD back + fronend, иначе см выше

    Хотите настраивать высокопроизводительные сервисы и облачные вычисления — для вас есть три языка: C++ (один из самых сложных языков, но при этом в нём есть всё), Go/Golang (язык попроще чем C/C++ от Google), Rust (язык от Mozilla).

    Я бы добавил java в этот список. Примеры-hadoop, spark, dynamodb, cassandra

    Если хотите заниматься искусственным интеллектом — там почти всё на Python.

    Согласен


    1. Lavs Автор
      10.01.2023 15:00

      Про бекенд согласен.

      Про Windows - имел ввиду не написание приложений под Windows, а ведение разработки на Windows. Про написание приложений под Windows согласен. Наверно подправлю этот пункт, т.к. похоже многие меня не так поняли.

      Я Ruby трогал несколько лет назад, да возможно сейчас он уже не так популярен.

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

      Про python - соглашусь, что он не полностью универсальный, но используется во многих областях. По универсальности да, пожалуй JS его догнал. Java - не такой универсальный, более того постепенно его вытесняет Kotlin (в мобилке уже вытеснил, на бекенде некоторые проекты тоже переходят на него). C++ - да, он универсальный, но он слишком сложен для начинающих - я бы выделил его в отдельную категорию. В общем подумаю и наверно подредактирую этот пункт в статье.

      Про фуллстек - а что бывают другие фуллстеки? Сейчас специально загруглил и первое, что вывелось: "Full-stack разработчик (произносится “фулл стек”) — это некий мастер на все руки в мире веб-разработки. Ему под силу реализовать как клиентскую, так и серверную сторону приложения, которыми, обычно, занимаются FrontEnd и BackEnd разработчики раздельно друг от друга."

      Про Java - я уже писал выше про банковский/корпоративный сектор. Вряд ли hadoop, spark, dynamodb, cassandra - используются где-то помимо банков и корпораций.

      Внёс небольшие корректировки в текст статьи.


  1. JekaMas
    10.01.2023 07:18
    +1

    Есть ещё такое понятие "garbage in - garbage out": если у вас исходные данные с ошибками, то и выводы будут соответствующего качества.

    "Блокчейн-проекты пишутся в основном на C++, при этом часть сервисов использует Go/Golang, Java, JavaScript и python. Сервера для блокчейн пишутся на Erlang"

    Нет, c++ мало ичпользуется. Erlang тоже. 90% рынка покрывают rust с golang. Ключевое слово "рынка", а вы гуглили "на чем пишут биткоин".


    1. Keeper9
      10.01.2023 10:38
      +1

      90% рынка покрывают rust с golang

      Вы сами проводили такое исследование рынка?


      1. JekaMas
        10.01.2023 11:30
        +1

        Ежедневно в течение последних 7и лет на рынке.


        1. Interreto
          10.01.2023 13:36

          И по чем там сейчас мешок кортошки?


          1. JekaMas
            10.01.2023 13:45

            350-450k usd для опытного core разработчика.


    1. Lavs Автор
      10.01.2023 15:05

      У меня несколько знакомых работают на блокчейн-проектах и все они пишут на C++

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

      Да, сейчас многие проекты переходят с C++ на Rusn/Golang, но про них я выше писал


  1. Mimizavr
    10.01.2023 10:14
    +1

    Просто выбирать язык бесполезно — нужно искать направление

    Кстати, интересный момент, что определившись с направлением, можно "заходить в ИТ" в 2 этапа. Сначала войти в нужное направление, а затем уже в нем перейти в разработку.

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


    1. Lavs Автор
      10.01.2023 15:11

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

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

      Хотелось поделиться не стандартными методами, которые мне помогли.


  1. polygaloff
    11.01.2023 09:17

    Спасибо за статью, но всё-таки не понял на каком языке для мобильной разработки сейчас пишите?


    1. Lavs Автор
      11.01.2023 18:03

      Сейчас пишу на Swift, Java и Kotlin.
      Последнее время больше Java, т.к. делаю банковское приложение под Android.


      1. polygaloff
        11.01.2023 21:23

        Интересно Ваше мнение про Flutter!


        1. Lavs Автор
          12.01.2023 16:00

          Мне Flutter очень понравился. Он позволяет просто разбивать всё на компоненты (хотя SwiftUI и Kotlin Compose тоже умеют это делать) и при разработке под 2 платформы позволяет экономить время на разработке. А то, что появилась поддержка разработки под Windows (и возможно появится разработка приложений под другие ОС) - вообще может сделать лучшим кросплатформенным фреймворком.

          У Flutter пока вижу 4 минуса:
          - дополнительные танцы с бубном при сборке приложений под iOS (но это ожидаемо, из-за политики Apple)
          - новые фичи iOS/Android далеко не сразу заезжают на Flutter, и если нужно что-то специфическое, то придётся поизвращаться или вообще делать нативным
          - заказчиков, готовых к Flutter пока не много и обычно они платят меньше, чем за нативные приложения
          - для разработки под Flutter нужно учить новый язык Dart


  1. Vanirn
    11.01.2023 11:46

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

    Я бы добавил "...написаны на php и WordPress, так что если хочется писать бэкенд WordPress странички для сайтов за границей...", и писать нужно будет именно WordPress, а не бекенд в стиле Java/C#.


    1. Lavs Автор
      11.01.2023 18:13

      Кроме WordPress ещё полно других CMS (например Joomla или Drupal) и ещё больше самописных бекендов. Кроме того несколько лет назад появились такие фреймворки как Laravel, Simphony, Yii и другие - с ними уже бекенд-разработка ближе к Java/C#, да и начиная с PHP 7.0 - он стал вполне рабочим языком, а не только "Personal Home Page"


      1. Vanirn
        12.01.2023 12:11

        Я же не говорю какой PHP плохой/хорошой, (не)пригодный для более интересный web сервисов. Я про распространнёность решений на базе PHP.
        В любом случае, большинство сайтов написанных на PHP в мире это WordPress, причём настолько сильно больше чем других CMS и фремворков, что всё остальное просто меркнет с обилием WordPress сайтов.
        PS: по статистике Wappalyzer.


        1. Lavs Автор
          12.01.2023 16:01

          Возможно, я не смотрел статистику. Я когда-то сам просмотривал зарубежные сайты с вакансиями - там было много php


  1. Affdey
    11.01.2023 16:21

    А как же мой любимый Basic ? (VB.Net конечно же)


    1. Lavs Автор
      11.01.2023 18:14

      Можно считать его умершим. Я давно не слышал о нём кроме возможности автоматизации на нём продуктов MS Office


      1. Affdey
        11.01.2023 19:07

        Нет, просто давно не слышали ;-)


        1. Lavs Автор
          11.01.2023 19:09

          Не исключаю этого. Например думал что pascal и Delphi давно умерли, ан нет ещё есть проекты даже под мобилки на них. Хотя таких проектов по пальцам одной руки можно пересчитать. Возможно с VB.Net так же.