Як стати Rust-розробником. План дій для початківців

Rust — не дуже поширена технологія, проте вона посідає високі сходинки в різноманітних рейтингах мов програмування. Зокрема, це улюблена мова розробників у рейтингу StackOverflow вже сьомий рік поспіль. Крім того, у Rust-розробників одні з найвищих зарплат серед українських фахівців, опитаних DOU.

Ми розібрались, у чому особливість мови Rust та як її вивчити, звернувшись по допомогу до української гілки Rust-спільноти «Вивчаємо Rust Разом» та її лідера Костянтина В.

Що таке Rust

Rust — мультипарадигмальна компільована мова програмування загального призначення, що поєднує парадигми функціонального та процедурного програмування з об’єктною системою, що базується на типажах. Управління пам’яттю здійснюється через механізм «володіння» з використанням афінних типів, що дає змогу обходитися без системи збирання сміття під час виконання програми.

Вивчати Rust варто, якщо ви належите до людей із системним мисленням, оскільки ця мова дає багато інструментів для систематизації та самокорекції.

Як і C++, Rust дає можливість розробляти низькорівневі речі, як-от драйвери, але при цьому не має багатьох хронічних проблем C++, що накопичилися за майже пів сотні років і через вимогу зворотної сумісності їх не можна прибрати.

Rust існує трохи більше за 10 років і успадкував найкраще і від C++, і від інших мов програмування, зокрема від OCaml-подібних та функціональних мов.

Rust підійде людям, які прагнуть швидкості та стабільності у мові. Перевірки компілятора забезпечують стабільність. Ця мова прагне до швидкого коду та абстракцій з нульовою вартістю і компілює високорівневі функції в код нижчого рівня так само швидко, як і написаний вручну.

Виразною особливістю Rust є система володіння даними, забезпечена частиною компілятора, що називається контролером позичань (borrow checker). Rust дозволяє контролювати, де і як виділяється та вивільняється пам’ять. Коли ви просите пам’ять для змінної, можна оголосити розумний покажчик. Однак скасування виділення виконується, коли цей розумний покажчик виходить за межі сфери дії.

Можна застосувати кілька розумних покажчиків, які разом використовують одні й ті самі дані й видаляються збирачем сміття. А ще — отримати доступ до пам’яті за посиланням, яке не звільняє пам’ять, коли вона виходить за межі.

Rust запустила Mozilla у 2015 році після десяти років розробки, а зараз мова перебуває під егідою організації Rust Foundation, до якої входять такі компанії, як Amazon, Google, Huawei, Microsoft, Meta, Arm, Dropbox, Toyota та інші. Тобто добре знаючи цю технологію, можна розраховувати на місце у великій компанії — там вона буде актуальною.

У Rust-розробників досить високі зарплати. Згідно з останнім зарплатним опитуванням DOU, медіанна зарплата такого фахівця рівня Middle — $4700, а рівня Senior — $6350. Хоча варто зауважити, що технологія не є поширеною серед українських розробників, тому анкет маємо досить мало. Rust-розробників рівнів Trainee та Junior взагалі не виявилося серед опитаних спеціалістів.

Згідно з нашим рейтингом мов, Rust — у першій пʼятірці серед мов, які українські розробники планують вивчити найближчим часом.

Rust має високий «індекс вподобання» — це відносна кількість розробників, що пишуть мовою X і які для наступного проєкту у своїй сфері теж оберуть X.

В яких сферах застосовують Rust

Rust може бути застосований як у низькорівневому програмуванні, так і в розробці сайтів.

ML, обробка даних, системне програмування, embedded, веб, розподілені системи, програмування GPU, gamedev — Rust може бути ефективним у всіх цих напрямах.

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

Rust і блокчейн

Одна з найважливіших вимог блокчейн-мереж — висока швидкість роботи всередині мережі за низького рівня навантаження серверів. Багато блокчейнів (наприклад, Ethereum або Bitcoin) використовують для реалізації таких умов функціонал C++. Створення інфраструктури на Rust буде більш результативним.

Ось приклади використання у блокчейні:

  • сервіс для розробки блокчейн-проєкт Solana;
  • фреймворк для тих самих цілей Exonum;
  • неофіційний клієнт для Ethereum та Bitcoin — Parity.io;
  • децентралізована платформа зберігання та роботи з інформацією MaidSafe;
  • гетерогенні blockchain-мережі polkadot.network.

Rust та вебзастосунки

У Rust є все необхідне для розробки вебзастосунків. Його функціонал підходить і для front-end, і для back-end. Для створення фронтенду можна використовувати Yew, аналог React для Rust. Зручна і функціональна розробка серверів доступна в actix-web, вкрай ефективному фреймворку, що охоплює роботу з HTTP/2.0, WebSockets і TLS. Але, зрозуміло, тільки цим Rust не обмежується, технологій багато: axum, rocket, hyper. Ось приклади проєктів:

— сервіс онлайн-навчання Coursera, створений викладачами Стенфорду;

— файловий та хмарний хостинг Dropbox;

— проєкт OpenDNS, який допомагає знаходити доступні DNS-сервери.

Rust та ПЗ і операційні системи

Ключові пріоритети мови: безпека, швидкість і паралелізм. Rust придатна для системного програмування, зокрема її розглядають як перспективну мову для розробки ядер операційних систем. Rust дає безпеку при роботі з пам’яттю, що забезпечується вбудованими в мову механізмами контролю посилань. Продуктивність програм на Rust сприяє використанню «абстракцій з нульовою вартістю».

Як вивчити Rust

Радимо почати вивчення мови зі знайомства з Rust-спільнотою. Долучайтеся до чату і беріть участь у заходах, які проводить спільнота. У чаті ви завжди можете поставити запитання й отримати компетентну відповідь.

Ознайомтеся з офіційною документацією та відвідайте офіційний ресурс.

Практикуйтесь

Rustling — це проєкт з невеликими вправами. Він допоможе вам у встановленні та налаштуванні інструментів Rust, навчить основ читання та написання коду на Rust. Це альтернатива книжці «Rust на прикладах», яка працює з вашим власним оточенням. Вам потрібно буде розвʼязувати помилки, про які повідомляє компілятор, змінюючи код. Це допоможе зрозуміти, як працює компілятор і які найпоширеніші проблеми з кодом.

Exercism — платформа вільного кодування з відкритим вихідним кодом, яка пропонує не лише практику програмування, а й наставництво. Тут ви можете знайти понад 100 вправ з програмування, які підвищать розуміння концепцій Rust.

Rust Gym — проєкт, який покаже, як створювати структури даних і реалізовувати алгоритми за допомогою мови Rust.

Читайте

Почніть із загальних книжок і гайдів:

Потім ви можете перейти до офіційної книги RustBook, де знайдете всю необхідну інформацію про Rust, або прочитати Programming Rust. Обидва видання є одними з найпоширеніших.

Переглядайте відео

Спершу подивіться Rust in 100 seconds. Щоб зануритися в основи Rust, пройдіть Crash Course.

Щоб глибше вивчити синтаксис Rust і ознайомитися з кодом Rust, зверніть увагу на такі туторіали:

Використовуйте шпаргалки

Ще один спосіб вивчити Rust, але через схеми, таблиці та зображення — Rust Cheat Sheet. Усі поради, зібрані на одній великій сторінці, завжди знадобляться під час написання коду. Перегляньте цю колекцію шпаргалок.

Добірка матеріалів на DOU

Rust, Clojure, Elixir та Objective-C. Українські розробники — про те, чому обрали непопулярні мови програмування.

Google, Facebook та Amazon вже пишуть на Rust. Що це за мова і які її

перспективи?

Чому я перейшов з Node.js на Rust.

Особливості Rust: сфера застосування, відмінності від інших мов, вакансії.

Пошук в глибину на прикладі задачі Ханойської вежі, використовуючи Rust.

Підсумок

Rust більше підходить тим, хто вже знає якусь мову програмування та займається розробкою і хоче розвиватися. Ця технологія — відносно нова та перспективна, її використовують у світових технологічних гігантах, роботу Rust-розробників добре оплачують.

Проте і початківцям є сенс вивчати Rust. Вакансій в Україні небагато, але ви знайдете своє місце, якщо будете наполегливими та терпеливими. Вам буде легше знайти роботу, якщо ви націлені на те, що в тренді. Орієнтуйтесь на ті сфери, в яких Rust є популярним. Наприклад, у блокчейн-індустрії досвідчених Rust-розробників цінують дуже високо, і їх там не вистачає.

«За своїми службовими обов’язками я й сам полюю за розробниками для компаній, які консультую. Я відбираю найкращих з найкращих, беручи до уваги софт-скіли та ґрунтовність підготовки кандидата. Найкращі молоді кандидати освоїли основи комп’ютерних наук, формальної логіки, володіють математичним мисленням та горять пристрастю до системної розробки», — зазначає лідер української гілки Rust спільноти «Вивчаємо Rust Разом» Костянтин В.


Отже, ви знаєте, що робити. Бажаємо успіхів у вивченні нової технології та пошуку роботи!

Похожие статьи:
Сидячий спосіб життя і гіподинамія, властиві більшості IT-фахівців, призводять до цілої низки проблем, серед яких метаболічний синдром,...
Brain Academy приглашает работающих ІТ-специалистов на встречу, посвященную теме “Trainer — sprint Ø!”. Что мотивирует стать инструктором?...
П’ять стартапів із України взяли участь у міжнародній конференції SXSW (South by Southwest), яка відбулася 10-19 березня в Остіні, штат...
Литва опублікувала роз’яснення щодо оподаткування українських підприємців, які перемістилися до країни у зв’язку...
Бойовий медик й інструктор Даніїл Жмуйдов (позивний — «Тиква») помер у Харкові. Він викладав тактичну медицину для...
Яндекс.Метрика