В 2024 году Rust остается одним из наиболее востребованных и перспективных языков программирования. Вот несколько причин, почему учить Rust может быть полезно:

  1. Безопасность: Rust разработан с упором на безопасность, предотвращая многие типичные ошибки программирования, такие как доступ к памяти после ее освобождения или гонки данных. Это особенно важно для разработки критически важных систем, таких как операционные системы или встраиваемые приложения.

  2. Производительность: Rust обеспечивает высокую производительность благодаря своей системе управления памятью и эффективной компиляции. Он позволяет писать быстрый и эффективный код, что делает его привлекательным для разработки высоконагруженных систем или игр.

  3. Многопоточность: Rust предоставляет удобные инструменты для разработки многопоточных приложений. Он предлагает безопасные абстракции для работы с потоками и предотвращает гонки данных, что облегчает разработку параллельных программ.

  4. Кроссплатформенность: Rust поддерживает различные платформы, включая Windows, Linux, macOS и другие. Это позволяет разрабатывать приложения, которые могут работать на разных операционных системах без необходимости переписывать код.

  5. Растущее сообщество: Rust имеет активное и одно из самых быстрорастущих сообщество разработчиков. Это означает, что всегда есть доступ к обновленным библиотекам, учебным материалам и помощи от опытных разработчиков.

В моем телеграм канале о Rust вы найдете множество статей, гайдов и библиотек для разработчиков.

А здесь я собрал папку полезных обучающих каналов для разработчиков

В целом, учить Rust в 2024 году может быть полезным для разработчиков, которые хотят создавать безопасные, эффективные и многопоточные приложения на различных платформах.

Изучаем Rust в 2024

Список бесплатных ресурсов и курсов, чтобы выучить Rust.

  1. Изучаем документацию Rust: Данная книга полностью раскрывает потенциал языка программирования Rust, позволяя пользователям расширить свои возможности. Материал, представленный в книге, является доступным и понятным, он может помочь вам не только получить базовые знания о Rust, но и повысить ваш уровень программирования в целом. Я рекомендую начать изучение Rust, прежде всего с этой замечательной книги на русском языке! The Rust Book – https://doc.rust-lang.ru/book/

  2. Пишем код: Полезный репозитория Rustlings, здесь собраны небольшие упражнения, которые помогут вам освоить понимание и написание кода на Rust! – https://github.com/rust-lang/rustlings

  3. Пошаговые уроки по языку программирования Rust: Данное пошаговое руководство предназначено для изучения основ языка Rust. Для эффективного усвоения материала курса достаточно базовых знаний в области программирования и математики, включая понимание различий между целыми и дробными числами, умение различать названия переменных и строковые константы, а также общее представление о компиляторе. После освоения основных концепций языка Rust вам будет проще разбираться в документации и изучать книги, написанные разработчиками Rust – simple-about-rust

  4. Бесплатный курс от Google: comprehensive-rust: Это курс по Rust, используемый командой Android в Google. В нем вы найдете материал для быстрого обучения Rust –https://google.github.io/comprehensive-rust/ и https://github.com/google/comprehensive-rust

  5. Телеграм канал Rust с гайдами и библиотеками и статьями с примером кода для всех Rust разработчиков – t.me/rust_code, чат для обсуждения и решения вопросов @rust_chatsVk группа

  6. Решение задач на RustRust Track. Регистрируйся в программе Exercism’s Rust Track, чтобы получить доступ к 96 упражнениям с автоматической проверкой вашего кода и персональным наставничеством, все 100% бесплатно. – https://exercism.org/tracks/rust

  7. Делайте проекты: Создайте несколько реальных приложений на codingchallenges– https://codingchallenges.fyi/challenges/intro

  8. Youtube канал для Rust разработчиковLetsgetrusty – один из самых крупных ютуб каналов по языку программирования Rust! Здесь вы найдете все от базовых уроков, до продвинутых веб-проектов, обзора полезных фреймворков и многое другое! https://youtube.com/@letsgetrusty

  9. Бесплатный курс со StepikRustlings. Данный курс рассчитан на тех, кто уже овладел теоретическими знаниями и стремится попрактиковаться в написании кода на Rust. Основные особенности курса: Учебный материал основан на оригинальном курсе по Rust от Кэрола Николса и книге «Язык программирования Rust» от Стива Клабника. Курс содержит 17 уроков и 78 задач – https://stepik.org/course/59778/promo

  10. Официальный блог Rust: Команда разработчиков Rust используют этот блог для анонсирования важных событий в мире. – https://blog.rust-lang.org

  11. Youtube курсПрограммирование на Rust от Алексея Кладова –https://www.youtube.com/playlist?list=PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e

  12. Четырнадцати-часовой youtube курс: Learn Rust Programming – Complete Course ???? – https://www.youtube.com/watch?v=BpPEoZW5IiY&t=1s

  13. Курс по Rust для студентовDesigning a New Rust Class at Stanford: Safety in Systems Programming Описание курсаhttps://reberhardt.com/blog/2020/10/05/designing-a-new-class-at-stanford-safety-in-systems-programming.htmlМатериалы курса : описание, ютуб видео, заданияhttps://reberhardt.com/cs110l/spring-2020/

  14. Бесплатный короткий курс от Microsoft: Take your first steps with Rust, от установки Rust, до напсиния первой консольной программы – https://learn.microsoft.com/en-us/training/paths/rust-first-steps/

Куда идти, если хочется больше практиковатся? Для дополнительной практики советую обратить внимание на список сайтов ниже. На них можно потренироваться и порешать задачи с кодом.

Codeforces — платформа для алгоритмических соревнований. Проводит контесты и раунды с 5 задачами на 2 часа. Есть система рейтинга и два дивизиона. Задачи можно решать и проверять после соревнования. Также есть доступ к тренировкам с задачами с прошлых соревнований. 

HackerRank –  сайт будет больше интересен продвинутым программистам, которые уже многое умеют. На этом сайте собрано множество задач на самые разные разделы Computer Science: традиционная алгоритмика, ИИ, машинное обучение и т.д. Если вы решите много задач, то вами могут заинтересоваться работодатели, регуляторно мониторящие эту платформу.

Codewars —  популярный cборник задач на разные темы, от алгоритмов до шаблонов проектирования.

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

Timus Online Judge — русскоязычная (хотя английский язык также поддерживается) платформа, на которой более тысячи задач удачно отсортированы по темам и по сложности. 

TopCoder – популярная американская платформа. Она проводит алгоритмические контесты, а также соревнования по промышленному программированию и марафоны, где задачи требуют исследования и нет единого верного алгоритма. Участникам даются недели на решение таких задач.

informatics.mccme.ru – платформа с теоретическим материалом и задачами, удобно разделенными по категориям. Большая база задач с олимпиад школьников также доступна.

SPOJ – большой англоязычный сайт с 20000+ задачами на разные темы: DP, графы, структуры данных и др. Иногда проводят неинтересные контесты, если не из страны их проведения.

CodeChef — менее крупный аналог Codeforces и TopCoder, тоже с огромным архивом задач и регулярными контестами.

Project Euler – сборник 500 задач, проверяющих знание математических алгоритмов. Часто используется на собеседованиях, чтобы оценить алгоритмическую подготовку кандидата.

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

Al Zimmermann’s Programming Contests — платформа, на которой регулярно проводятся контесты с задачами на исследование и оптимизацию. Интересен тем, что писать программу необязательно — даются только тестовые данные. Ответы можно расчитывать вручную, или просто гадать их на кофейной гуще.

Programming Praxis — сайт, где можно найти много интересных задач.

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

Empire of Code — сайт для программистов, где необходимо писать код, реализующий стратегию и тактику виртуальных бойцов.

Заключение

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

Спасибо за прочтение, надеюсь новичкам этот список пригодится!

Пишите в комментариях какие ресурсы стоит добавить в этот список.

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


  1. ivankudryavtsev
    13.01.2024 12:29
    +7

    Насчет востребованности - это мягко говоря неправда.


  1. max-daniels
    13.01.2024 12:29
    +3

    И в каком месте она востребованная? Не нашел ни одной вакансии на hh для джуниора.


    1. Nurked
      13.01.2024 12:29
      +9

      1. Востребованность на рынке труда: Rust становится все более популярным среди работодателей, особенно в области разработки системного и встраиваемого программного обеспечения.

      В этой области джуниоров не бывает. На работу берут молодняк из универа с 40+ годами опыта на расте.

      На самом деле, берут системщиков с 10+ годами С и плюсов, и несколькими годами раста в придачу. Тут либо надо быть Господом Боженькой, либо Бэтменом, либо дружить с Чаком Норрисом. Сцуко, я на Glassdoor видел ваканции по 500 тысяч. Долларов. В год. Писец. Да и в Тесле неплохо платят за подобное


  1. SergeiMinaev
    13.01.2024 12:29
    +9

    Про востребованность, конечно, забавно получилось. Но если искать на западе, то там с вакансиями получше.

    От себя добавлю книгу Rust In Action - имхо, она должна стоять в одном ряду с The Rust Book. Грамотно повышается сложность по мере прочтения, слог у автора лёгкий. Мне подошла даже больше, чем The Rust Book.


    1. ivankudryavtsev
      13.01.2024 12:29
      +1

      Можно еще смотреть подкасты от Jon Gjengset - очень крутой.


    1. leonidv
      13.01.2024 12:29

      Rust In Action еще интересна своим подходом. Помимо самого языка, она еще дает основы работы компьютера в целом (CPU, сеть). Для многих молодых разработчиков этот аспект тоже будет полезен.


  1. feelamee
    13.01.2024 12:29
    +3

    за coding challenges спасибо.

    Раз уж рекламировали свои каналы, то рассказали бы и про /rustlang_ru /rust_beginners_ru


  1. ritorichesky_echpochmak
    13.01.2024 12:29
    -11

    К автору вопрос: зачем изучать всякие расты и прочие паскали, если их нишу добьёт AI?


    1. feelamee
      13.01.2024 12:29

      А что вы предложите изучать?


    1. ivankudryavtsev
      13.01.2024 12:29
      +9

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


      1. feelamee
        13.01.2024 12:29

        del


      1. ritorichesky_echpochmak
        13.01.2024 12:29

        AI добьет нишу быдлокодинга в первую очередь

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


        1. ivankudryavtsev
          13.01.2024 12:29
          +1

          Ну так и сейчас куча шараг с говносайтами на тильде.


  1. ParaMara
    13.01.2024 12:29

    Могу я предположить что пока клиент изучает Rust, положение с вакансиями улучшится?

    Ссылки из списка даже не протыканы, попробовал 4 и 10, обе ведут не совсем туда. И по 10 никто не анонсирует важные события в мире, кишка на 30+ градусов посвящения тонка.

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

    Самое интересное в статье - загадка почему про Rust пишут, если совсем честно, ерунду? Нету там никакой безопасности, память имеет право утекать официально и есть unsafe. Про востребованность уже писали. Моё впечатление - автор Rust решил посмотреть - а что будет если накидать компилятору всякой дополнительной дури? Оказалось, он сможет в быстрый код. И с тех пор основной видимый прогресс - больше не нужно писать очередную дурь, компилятор поумнел. И получился Каждая такая статья - и вопрос о задней мысли в оголтелом продвижении Rust крепчает.

    Зато есть хорошие шансы сунуть Rust всюду куда можно сунуть С. Модули для Python, скрипты для Godot, логика для тех мобилок что не один GUI к серверу… а системное программирование - это не для людей. И там, где у С 100500 диалектов и систем сборки, у Rust одна Cargo на всех и на все руки. Поэтому в разделе Кроссплатформенность писать «и другие» - омерзительно.

    Да, просили ресурсы для добавления…

    Книжки, тут я бы не пытался выбирать лучшие, кому какая зайдёт. Их много и если разбираться, то с каждой, но я бы упомянул типа Rust Web Development with Rocket, Smart Pointers in Rust, Rust for Network Programming and Automation, Rust Atomics and Locks, Game Development with Rust and WebAssembly, Practical GPU Graphics with wgpu and Rust, Speed Up Your Python with Rust… просто потому, что сразу видно - они узко специализированы и само их существование доказывает что к Rust точно стоит присмотреться.


    1. feelamee
      13.01.2024 12:29
      +1

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


      1. ParaMara
        13.01.2024 12:29
        -2

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

        Но по сравнению с идеей начинать каждую переменную с доллара…


        1. 1755
          13.01.2024 12:29
          +8

          Компилятор, кажется, и так сам проставлякт время жизни, там где он однозначно это понимает (эти места постепенно будут увеличиваться), а где не понимает, там нужно ему подсказать, разве не так?


          1. swelf
            13.01.2024 12:29

            .


        1. feelamee
          13.01.2024 12:29
          +3

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

          Как сказал комментатор выше, он сам их ставит чаще всего.

          а если вдруг известно что он это сделает неправильно - тогда и указывать

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

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

          Не совсем понял что вы имеете ввиду.

          Но по сравнению с идеей начинать каждую переменную с доллара

          Либо я чего-то не понял, либо вы перепутали rust с bash


          1. ParaMara
            13.01.2024 12:29
            -3

            он сам их ставит чаще всего.

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

            что вы имеете ввиду.

            То, что устоявшимся способом группировки являются скобки, а в Rust - тэги.

            вы перепутали rust с bash

            Скорее с РНР. И не перепутал, а хотел сделать Rust комплимент - есть варианты того хуже.


            1. ivankudryavtsev
              13.01.2024 12:29
              +7

              Вы немного не понимаете. Время жизни задается программистом, потому что оно определяет контракт. Например, эта переменная, если на нее есть ссылка, то должна существовать вот столько-то. Часто компилятор может сам догадаться какой контракт, но бывают случаи, когда вы должны указать как хотите, чтобы эта функция использовалась (соответствие контракту). Именно благодаря этой фишке в Rust не требуется garbage collector и мануальное управление хипом.


            1. feelamee
              13.01.2024 12:29
              +5

              Типичная спорная ситуация -

              fn oneof(lhs: &str, rhs: &str) -> &str;

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

              А более сложные ситуации это объявление типов например, там компилятор никак не угадает что вы хотите). В c++ это остаётся на совести разработчика, а rust строго заставляет написать времена жизни. Я думаю, rust тут прав)


            1. Mingun
              13.01.2024 12:29
              +6

              И что компилятор должен догадать в этом случае?:

              fn func(first: &str, second: &str) -> &str;
              

              На что должна ссылаться возвращаемая ссылка? И почему?


              1. ParaMara
                13.01.2024 12:29
                -6

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

                А то, что делает Rust - провокация сделать первое попавшееся под руку чтобы компилятор зпткнулся.


                1. Mingun
                  13.01.2024 12:29
                  +7

                  Казнить нельзя помиловать

                  Где Вовочке нужно поставить запятую и почему?

                  Перепишите способы, какими кто может быть, научите Вовочку выбирать один и выдавать предупреждение о существовании других.

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


    1. NekoiNemo
      13.01.2024 12:29
      +6

      память имеет право утекать официально и есть unsafe

      Память может "официально утекать", например, используя метод `Box::leak()`, и если название этого метода ни о чем не говорит разработчику и он с его помощью сделал утечку... Может быть ему не стоит быть разработчиком. И unsafe есть, да. Потому что как иначе вызвать, например, C-шную либу (включая любую системную библиотеку на любой ОС) у которой из гарантий безопасность только "ну, мамой клянусь там все ок" от разработчика, и это в лучшем случае.

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

      Поэтому в разделе Кроссплатформенность писать «и другие» - омерзительно.

      Чем же? Можно пример чего-то реального и релевантного на чем Rust работать не будет?


      1. ParaMara
        13.01.2024 12:29
        -2

        Смысл Rust не в том чтобы

        Речь не о Rust и его смысле. Речь о маркетинговом душке разговоров о Rust которые хотят продать отсутствующую безопасность.

        Можно пример чего-то реального и релевантного на чем Rust работать не будет?

        Нет, нельзя. Речь не о том, на скольких из приведённых платформ Rust будет или не будет работать. Речь о том, что если кросс-платформенность приводится как достоинство, то как минимум на уровне пяти платформ она должна быть представлена исчерпывающе.

        Как видите, Вы отвечаете на утверждения которых нет. Для маркетингового воздействия это типичные последствия. Совпадение? Вот и комментатор ниже ощущает то же самое.


        1. ivankudryavtsev
          13.01.2024 12:29
          +4

          Платформы с поддержкой высшего уровня Rust
          Платформы с поддержкой высшего уровня Rust


          1. 1755
            13.01.2024 12:29
            +2

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


  1. nameisBegemot
    13.01.2024 12:29
    +2

    Скажите честно, автор, почему все разработчики на расте не просто о нем рассказывают, а прям пропагандируют его?


    1. KanuTaH
      13.01.2024 12:29
      +7

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


    1. itmind
      13.01.2024 12:29
      +3

      Наверное для расширения сообщества. Больше разработчиков на Rust - больше библиотек и фреймворков, появление вакансий и т.п.


    1. Weselton
      13.01.2024 12:29
      +3

      Почему нет, если годная технология и хочется популяризировать?


  1. NekoiNemo
    13.01.2024 12:29
    +1

    А что за прикол с ссылкой в 8 которая ведет на Ютубовскую редирект страницу (??), ведущую на сайт буткампа на котором ничего кроме "оставьте ваше имя и email чтобы записаться в буткамп"?


  1. Nail_S
    13.01.2024 12:29

    Всех кому интересна компьютерная графика и кто устал просто решать задачи, предлагаю принять участие в одном из своих проектов. Например https://github.com/iShape-Rust/iShape-js

    Уверен так гораздо интереснее чем просто решать задачи. Сам попробовал rust меньше года назад


  1. igumnov
    13.01.2024 12:29
    +3

    Странно что нет ссылки на лекции 2022 года с факультета ФПМИ.
    Программирование на Rust (3 курс, весна 2022) - Становой А. - YouTube


    1. leonidv
      13.01.2024 12:29

  1. Mitai
    13.01.2024 12:29

    давай в таком же духе но про Zig?


    1. nameisBegemot
      13.01.2024 12:29
      +1

      А zig программисты шутят про "от сердца к солнцу"?


  1. bynull
    13.01.2024 12:29

    Rust клёвый, я на нем пишу свой проект уже больше года, очень нравится.
    Rust одновременно в нескольких областях кодинга дает уникальные возожности, и более или менее успешно закрепляется в разных нишах:
    - AI - huggingface это самый большой и главный проект в опен сорсе по ИИ, и они начали писать некоторые проекты на расте, что очень круто (см. candle, tokenizers). ТО есть, перспективы очень хорошие.
    - WASM - это вообще крышесносная штука, позволяет творить чудеса в браузере (figma, adobe)
    - Blockchain - раст закрепился как второй основной язык в крипте, после го.
    - раст уже в ядре линукса и биг техи пишут на нем супер активно.

    И вооще, у раста уникальное преимущество, одним языком можно заменить 5 языков. Я у себя написал один и тот же код для бакэнда, браузера(wasm), ios, android - а это чуть ли не десятикратное снижение сложности как если бы код был раскидан по разным платформам и языкам прогарммирования.