В 2024 году Rust остается одним из наиболее востребованных и перспективных языков программирования. Вот несколько причин, почему учить Rust может быть полезно:
Безопасность: Rust разработан с упором на безопасность, предотвращая многие типичные ошибки программирования, такие как доступ к памяти после ее освобождения или гонки данных. Это особенно важно для разработки критически важных систем, таких как операционные системы или встраиваемые приложения.
Производительность: Rust обеспечивает высокую производительность благодаря своей системе управления памятью и эффективной компиляции. Он позволяет писать быстрый и эффективный код, что делает его привлекательным для разработки высоконагруженных систем или игр.
Многопоточность: Rust предоставляет удобные инструменты для разработки многопоточных приложений. Он предлагает безопасные абстракции для работы с потоками и предотвращает гонки данных, что облегчает разработку параллельных программ.
Кроссплатформенность: Rust поддерживает различные платформы, включая Windows, Linux, macOS и другие. Это позволяет разрабатывать приложения, которые могут работать на разных операционных системах без необходимости переписывать код.
Растущее сообщество: Rust имеет активное и одно из самых быстрорастущих сообщество разработчиков. Это означает, что всегда есть доступ к обновленным библиотекам, учебным материалам и помощи от опытных разработчиков.
В моем телеграм канале о Rust вы найдете множество статей, гайдов и библиотек для разработчиков.
А здесь я собрал папку полезных обучающих каналов для разработчиков
В целом, учить Rust в 2024 году может быть полезным для разработчиков, которые хотят создавать безопасные, эффективные и многопоточные приложения на различных платформах.
Изучаем Rust в 2024
Список бесплатных ресурсов и курсов, чтобы выучить Rust.
Изучаем документацию Rust: Данная книга полностью раскрывает потенциал языка программирования Rust, позволяя пользователям расширить свои возможности. Материал, представленный в книге, является доступным и понятным, он может помочь вам не только получить базовые знания о Rust, но и повысить ваш уровень программирования в целом. Я рекомендую начать изучение Rust, прежде всего с этой замечательной книги на русском языке! The Rust Book – https://doc.rust-lang.ru/book/
Пишем код: Полезный репозитория Rustlings, здесь собраны небольшие упражнения, которые помогут вам освоить понимание и написание кода на Rust! – https://github.com/rust-lang/rustlings
Пошаговые уроки по языку программирования Rust: Данное пошаговое руководство предназначено для изучения основ языка Rust. Для эффективного усвоения материала курса достаточно базовых знаний в области программирования и математики, включая понимание различий между целыми и дробными числами, умение различать названия переменных и строковые константы, а также общее представление о компиляторе. После освоения основных концепций языка Rust вам будет проще разбираться в документации и изучать книги, написанные разработчиками Rust – simple-about-rust
Бесплатный курс от Google: comprehensive-rust: Это курс по Rust, используемый командой Android в Google. В нем вы найдете материал для быстрого обучения Rust –https://google.github.io/comprehensive-rust/ и https://github.com/google/comprehensive-rust
Телеграм канал Rust с гайдами и библиотеками и статьями с примером кода для всех Rust разработчиков – t.me/rust_code, чат для обсуждения и решения вопросов @rust_chats, Vk группа
Решение задач на Rust: Rust Track. Регистрируйся в программе Exercism’s Rust Track, чтобы получить доступ к 96 упражнениям с автоматической проверкой вашего кода и персональным наставничеством, все 100% бесплатно. – https://exercism.org/tracks/rust
Делайте проекты: Создайте несколько реальных приложений на codingchallenges– https://codingchallenges.fyi/challenges/intro
Youtube канал для Rust разработчиков: Letsgetrusty – один из самых крупных ютуб каналов по языку программирования Rust! Здесь вы найдете все от базовых уроков, до продвинутых веб-проектов, обзора полезных фреймворков и многое другое! https://youtube.com/@letsgetrusty
Бесплатный курс со Stepik: Rustlings. Данный курс рассчитан на тех, кто уже овладел теоретическими знаниями и стремится попрактиковаться в написании кода на Rust. Основные особенности курса: Учебный материал основан на оригинальном курсе по Rust от Кэрола Николса и книге «Язык программирования Rust» от Стива Клабника. Курс содержит 17 уроков и 78 задач – https://stepik.org/course/59778/promo
Официальный блог Rust: Команда разработчиков Rust используют этот блог для анонсирования важных событий в мире. – https://blog.rust-lang.org
Youtube курс: Программирование на Rust от Алексея Кладова –https://www.youtube.com/playlist?list=PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e
Четырнадцати-часовой youtube курс: Learn Rust Programming – Complete Course ???? – https://www.youtube.com/watch?v=BpPEoZW5IiY&t=1s
Курс по 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/
Бесплатный короткий курс от 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)
max-daniels
13.01.2024 12:29+3И в каком месте она востребованная? Не нашел ни одной вакансии на hh для джуниора.
Nurked
13.01.2024 12:29+9Востребованность на рынке труда: Rust становится все более популярным среди работодателей, особенно в области разработки системного и встраиваемого программного обеспечения.
В этой области джуниоров не бывает. На работу берут молодняк из универа с 40+ годами опыта на расте.
На самом деле, берут системщиков с 10+ годами С и плюсов, и несколькими годами раста в придачу. Тут либо надо быть Господом Боженькой, либо Бэтменом, либо дружить с Чаком Норрисом. Сцуко, я на Glassdoor видел ваканции по 500 тысяч. Долларов. В год. Писец. Да и в Тесле неплохо платят за подобное
SergeiMinaev
13.01.2024 12:29+9Про востребованность, конечно, забавно получилось. Но если искать на западе, то там с вакансиями получше.
От себя добавлю книгу Rust In Action - имхо, она должна стоять в одном ряду с The Rust Book. Грамотно повышается сложность по мере прочтения, слог у автора лёгкий. Мне подошла даже больше, чем The Rust Book.
leonidv
13.01.2024 12:29Rust In Action еще интересна своим подходом. Помимо самого языка, она еще дает основы работы компьютера в целом (CPU, сеть). Для многих молодых разработчиков этот аспект тоже будет полезен.
feelamee
13.01.2024 12:29+3за coding challenges спасибо.
Раз уж рекламировали свои каналы, то рассказали бы и про /rustlang_ru /rust_beginners_ru
ritorichesky_echpochmak
13.01.2024 12:29-11К автору вопрос: зачем изучать всякие расты и прочие паскали, если их нишу добьёт AI?
ivankudryavtsev
13.01.2024 12:29+9AI добьет нишу быдлокодинга в первую очередь. А люди, которые умеют писать хороший код и умеют его здорово ревьюить, получат бенефиты. Точно так же было с индустрией в конце 2000х, когда все подряд делали сайты. В итоге, куча компаний вылетела с рынка, но на нем остались те, которые по-прежнему лучше всех это делают.
ritorichesky_echpochmak
13.01.2024 12:29AI добьет нишу быдлокодинга в первую очередь
С одной стороны об этом и речь... с другой - а когда уже? А то вот тех шараг с говносайтами прям как никогда и с аишечкой их будет ещё больше, ведь именно они будут её наиболее активно использовать)
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 точно стоит присмотреться.
feelamee
13.01.2024 12:29+1а что, по вашему впечатлению, из себя представляет эта дурь?
ParaMara
13.01.2024 12:29-2Время жизни, например. Компилятор мог бы и сам догадаться всегда, а если вдруг известно что он это сделает неправильно - тогда и указывать. Да и саму идею группировать сущности присваивая им одинаковые символы в пределах мизерной области - как ещё назвать?
Но по сравнению с идеей начинать каждую переменную с доллара…
feelamee
13.01.2024 12:29+3Время жизни, например. Компилятор мог бы и сам догадаться всегда
Как сказал комментатор выше, он сам их ставит чаще всего.
а если вдруг известно что он это сделает неправильно - тогда и указывать
Другой вопрос, а как узнать, что он это сделает неправильно, чтобы поставить их руками? По моему, лучше чтобы он строго выбрасывал ошибку компиляции, если не знает как расставить.
группировать сущности присваивая им одинаковые символы в пределах мизерной области
Не совсем понял что вы имеете ввиду.
Но по сравнению с идеей начинать каждую переменную с доллара
Либо я чего-то не понял, либо вы перепутали rust с bash
ParaMara
13.01.2024 12:29-3он сам их ставит чаще всего.
Вот именно. А должен - всегда. Вдумайтесь в разницу. Должно быть просто - если ошибка, то назначить их так чтобы ошибки не было невозможно. Потому, что ошибка. А если возможно - компилятор обязан сделать это сам, и если у него был выбор - выдать предупреждение.
что вы имеете ввиду.
То, что устоявшимся способом группировки являются скобки, а в Rust - тэги.
вы перепутали rust с bash
Скорее с РНР. И не перепутал, а хотел сделать Rust комплимент - есть варианты того хуже.
ivankudryavtsev
13.01.2024 12:29+7Вы немного не понимаете. Время жизни задается программистом, потому что оно определяет контракт. Например, эта переменная, если на нее есть ссылка, то должна существовать вот столько-то. Часто компилятор может сам догадаться какой контракт, но бывают случаи, когда вы должны указать как хотите, чтобы эта функция использовалась (соответствие контракту). Именно благодаря этой фишке в Rust не требуется garbage collector и мануальное управление хипом.
feelamee
13.01.2024 12:29+5Типичная спорная ситуация -
fn oneof(lhs: &str, rhs: &str) -> &str;
Компилятор может и сможет понять исходя из реализации, но времена жизни тут нужны для программиста, который использует эту функцию. Это просто часть апи.
А более сложные ситуации это объявление типов например, там компилятор никак не угадает что вы хотите). В c++ это остаётся на совести разработчика, а rust строго заставляет написать времена жизни. Я думаю, rust тут прав)
Mingun
13.01.2024 12:29+6И что компилятор должен догадать в этом случае?:
fn func(first: &str, second: &str) -> &str;
На что должна ссылаться возвращаемая ссылка? И почему?
ParaMara
13.01.2024 12:29-6Перепишите способы какими жто может быть, научите компилятор выбирать один и вылавать предупреждение о существовании других.
А то, что делает Rust - провокация сделать первое попавшееся под руку чтобы компилятор зпткнулся.
Mingun
13.01.2024 12:29+7Казнить нельзя помиловать
Где Вовочке нужно поставить запятую и почему?
Перепишите способы, какими кто может быть, научите Вовочку выбирать один и выдавать предупреждение о существовании других.
А то, что делают правила русского языка о постановке запятых — провокация сделать первое попавшееся под руку решение, чтобы Вовочка заткнулся.
NekoiNemo
13.01.2024 12:29+6память имеет право утекать официально и есть unsafe
Память может "официально утекать", например, используя метод `Box::leak()`, и если название этого метода ни о чем не говорит разработчику и он с его помощью сделал утечку... Может быть ему не стоит быть разработчиком. И unsafe есть, да. Потому что как иначе вызвать, например, C-шную либу (включая любую системную библиотеку на любой ОС) у которой из гарантий безопасность только "ну, мамой клянусь там все ок" от разработчика, и это в лучшем случае.
Смысл Rust не в том чтобы сделать игрушечный язык на котором невозможно сделать ничего плохого (да и хорошего тоже, потому что все под запретом), а в том чтобы нельзя было выстрелить в ногу не подписав форму консента в трех экземплярах, в которой ты подтверждаешь что ты знаешь что выстрелить себе в ногу, осведомлен о том что будет больно, и тем не менее хочешь это сделать.
Поэтому в разделе Кроссплатформенность писать «и другие» - омерзительно.
Чем же? Можно пример чего-то реального и релевантного на чем Rust работать не будет?
ParaMara
13.01.2024 12:29-2Смысл Rust не в том чтобы
Речь не о Rust и его смысле. Речь о маркетинговом душке разговоров о Rust которые хотят продать отсутствующую безопасность.
Можно пример чего-то реального и релевантного на чем Rust работать не будет?
Нет, нельзя. Речь не о том, на скольких из приведённых платформ Rust будет или не будет работать. Речь о том, что если кросс-платформенность приводится как достоинство, то как минимум на уровне пяти платформ она должна быть представлена исчерпывающе.
Как видите, Вы отвечаете на утверждения которых нет. Для маркетингового воздействия это типичные последствия. Совпадение? Вот и комментатор ниже ощущает то же самое.
ivankudryavtsev
13.01.2024 12:29+41755
13.01.2024 12:29+2У wasm тоже неплохой уровень поддержки, так что и под браузеры писать можно :)
nameisBegemot
13.01.2024 12:29+2Скажите честно, автор, почему все разработчики на расте не просто о нем рассказывают, а прям пропагандируют его?
KanuTaH
13.01.2024 12:29+7Ну, во-первых, далеко не все, кто его использует, его пропагандируют, а во-вторых я сильно сомневаюсь что автор имеет какое-либо отношение к разработке чего-либо, судя по его статьям - в лучшем случае обычный хабровский инфоцыган от IT.
itmind
13.01.2024 12:29+3Наверное для расширения сообщества. Больше разработчиков на Rust - больше библиотек и фреймворков, появление вакансий и т.п.
NekoiNemo
13.01.2024 12:29+1А что за прикол с ссылкой в 8 которая ведет на Ютубовскую редирект страницу (??), ведущую на сайт буткампа на котором ничего кроме "оставьте ваше имя и email чтобы записаться в буткамп"?
Nail_S
13.01.2024 12:29Всех кому интересна компьютерная графика и кто устал просто решать задачи, предлагаю принять участие в одном из своих проектов. Например https://github.com/iShape-Rust/iShape-js
Уверен так гораздо интереснее чем просто решать задачи. Сам попробовал rust меньше года назад
igumnov
13.01.2024 12:29+3Странно что нет ссылки на лекции 2022 года с факультета ФПМИ.
Программирование на Rust (3 курс, весна 2022) - Становой А. - YouTubeleonidv
13.01.2024 12:29https://www.youtube.com/watch?v=Oy_VYovfWyo&list=PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e отличный курс от Computer Science Center
bynull
13.01.2024 12:29Rust клёвый, я на нем пишу свой проект уже больше года, очень нравится.
Rust одновременно в нескольких областях кодинга дает уникальные возожности, и более или менее успешно закрепляется в разных нишах:
- AI - huggingface это самый большой и главный проект в опен сорсе по ИИ, и они начали писать некоторые проекты на расте, что очень круто (см. candle, tokenizers). ТО есть, перспективы очень хорошие.
- WASM - это вообще крышесносная штука, позволяет творить чудеса в браузере (figma, adobe)
- Blockchain - раст закрепился как второй основной язык в крипте, после го.
- раст уже в ядре линукса и биг техи пишут на нем супер активно.
И вооще, у раста уникальное преимущество, одним языком можно заменить 5 языков. Я у себя написал один и тот же код для бакэнда, браузера(wasm), ios, android - а это чуть ли не десятикратное снижение сложности как если бы код был раскидан по разным платформам и языкам прогарммирования.
ivankudryavtsev
Насчет востребованности - это мягко говоря неправда.