Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chinmayvivek/rust-practice

This repository provides a structured approach to learning Rust, with 100 practical programs organized into ten key categories. Whether you're a beginner or looking to deepen your understanding, these exercises will help you build a solid foundation and advance your skills.
https://github.com/chinmayvivek/rust-practice

rust rust-lang rust-practice rust-programming rust-programming-language

Last synced: about 9 hours ago
JSON representation

This repository provides a structured approach to learning Rust, with 100 practical programs organized into ten key categories. Whether you're a beginner or looking to deepen your understanding, these exercises will help you build a solid foundation and advance your skills.

Awesome Lists containing this project

README

        

# Rust Practice

## 10 Steps to Mastering Rust

This repository provides a structured approach to learning Rust, with 100 practical programs organized into ten key categories. Whether you're a beginner or looking to deepen your understanding, these exercises will help you build a solid foundation and advance your skills.

### 1. Basic Programs
1. **Hello World**: Print "Hello, World!" to the console.
2. **Basic Arithmetic**: Perform addition, subtraction, multiplication, and division.
3. **Swap Variables**: Swap the values of two variables.
4. **Area of a Circle**: Calculate the area of a circle given its radius.
5. **Simple Interest**: Calculate simple interest based on principal, rate, and time.
6. **Temperature Converter**: Convert temperatures between Celsius, Fahrenheit, and Kelvin.
7. **Even or Odd**: Check if a number is even or odd.
8. **Leap Year**: Determine if a given year is a leap year.
9. **Factorial**: Calculate the factorial of a number.
10. **Fibonacci Sequence**: Generate the first `n` numbers in the Fibonacci sequence.

### 2. Control Flow
11. **Prime Number Check**: Check if a number is prime.
12. **Palindrome**: Check if a string is a palindrome.
13. **Armstrong Number**: Check if a number is an Armstrong number.
14. **Sum of Digits**: Calculate the sum of the digits of a number.
15. **Reverse a Number**: Reverse the digits of a number.
16. **Greatest Common Divisor (GCD)**: Find the GCD of two numbers.
17. **Least Common Multiple (LCM)**: Find the LCM of two numbers.
18. **Quadratic Equation Solver**: Solve a quadratic equation.
19. **Pattern Printing**: Print various patterns like pyramids and diamonds.
20. **Binary to Decimal**: Convert a binary number to decimal.

### 3. Data Structures
21. **Array Rotation**: Rotate an array by `n` positions.
22. **Matrix Addition**: Perform addition of two matrices.
23. **Matrix Multiplication**: Perform multiplication of two matrices.
24. **Transpose of a Matrix**: Find the transpose of a matrix.
25. **Linked List Implementation**: Implement a singly linked list.
26. **Doubly Linked List**: Implement a doubly linked list.
27. **Stack Implementation**: Implement a stack using arrays or linked lists.
28. **Queue Implementation**: Implement a queue using arrays or linked lists.
29. **Circular Queue**: Implement a circular queue.
30. **Binary Search Tree (BST)**: Implement a binary search tree.

### 4. Algorithms
31. **Bubble Sort**: Implement the bubble sort algorithm.
32. **Selection Sort**: Implement the selection sort algorithm.
33. **Insertion Sort**: Implement the insertion sort algorithm.
34. **Merge Sort**: Implement the merge sort algorithm.
35. **Quick Sort**: Implement the quick sort algorithm.
36. **Binary Search**: Implement the binary search algorithm.
37. **Linear Search**: Implement the linear search algorithm.
38. **Depth First Search (DFS)**: Implement DFS for graph traversal.
39. **Breadth First Search (BFS)**: Implement BFS for graph traversal.
40. **Dijkstra's Algorithm**: Implement Dijkstra's algorithm for the shortest path.

### 5. String Manipulation
41. **String Reversal**: Reverse a string.
42. **Count Vowels and Consonants**: Count the number of vowels and consonants in a string.
43. **Anagram Check**: Check if two strings are anagrams.
44. **Substring Search**: Find a substring within a string.
45. **String Palindrome**: Check if a string is a palindrome.
46. **Remove Duplicates**: Remove duplicate characters from a string.
47. **Character Frequency**: Find the frequency of each character in a string.
48. **Longest Substring Without Repeating Characters**: Find the longest substring without repeating characters.
49. **String Permutations**: Generate all permutations of a string.
50. **String Compression**: Implement string compression based on character counts.

### 6. Advanced Data Structures
51. **Heap Implementation**: Implement a min-heap and max-heap.
52. **Graph Representation**: Represent a graph using an adjacency matrix and list.
53. **Trie Implementation**: Implement a trie for prefix-based search.
54. **Hash Map Implementation**: Implement a hash map using open addressing or chaining.
55. **AVL Tree**: Implement an AVL tree for balanced binary search.
56. **Red-Black Tree**: Implement a red-black tree.
57. **Segment Tree**: Implement a segment tree for range queries.
58. **Fenwick Tree**: Implement a Fenwick tree for range queries.
59. **Disjoint Set**: Implement a disjoint set (union-find).
60. **LRU Cache**: Implement an LRU cache using a doubly linked list and hash map.

### 7. System Design
61. **Design a URL Shortener**: Implement a URL shortening service.
62. **Design a Library Management System**: Design and implement a library management system.
63. **Design an Online Marketplace**: Design an online marketplace system.
64. **Design a Chat Application**: Implement a simple chat application.
65. **Design a File System**: Design and implement a basic file system.
66. **Design a Rate Limiter**: Implement a rate limiting system.
67. **Design a Key-Value Store**: Implement a key-value store.
68. **Design a Parking Lot System**: Design and implement a parking lot system.
69. **Design a Voting System**: Implement a voting system.
70. **Design a Search Autocomplete System**: Implement search autocomplete functionality.

### 8. Databases
71. **SQL Queries**: Write basic SQL queries to interact with a database.
72. **CRUD Operations**: Implement Create, Read, Update, Delete operations.
73. **Database Indexing**: Implement indexing for a database.
74. **Transaction Management**: Implement transaction management in a database.
75. **Stored Procedures**: Write and execute stored procedures.
76. **Database Backup and Restore**: Implement backup and restore functionality.
77. **Normalization**: Normalize a database to remove redundancy.
78. **Denormalization**: Denormalize a database for performance.
79. **Database Sharding**: Implement database sharding for scalability.
80. **Database Replication**: Implement database replication for fault tolerance.

### 9. Web Development
81. **Basic HTML Page**: Create a simple HTML page.
82. **CSS Styling**: Style a webpage using CSS.
83. **JavaScript Interactivity**: Add interactivity to a webpage using JavaScript.
84. **Form Handling**: Implement form handling in a web application.
85. **Session Management**: Implement session management for user authentication.
86. **REST API**: Design and implement a RESTful API.
87. **GraphQL API**: Design and implement a GraphQL API.
88. **Authentication**: Implement user authentication using JWT or OAuth.
89. **File Upload**: Implement file upload functionality.
90. **WebSockets**: Implement real-time communication using WebSockets.

### 10. Miscellaneous
91. **Unit Testing**: Write unit tests for your code using Rust's `cargo test`.
92. **Integration Testing**: Implement integration tests.
93. **Code Documentation**: Document your code using Rust's doc comments.
94. **Version Control**: Use Git for version control.
95. **Debugging**: Practice debugging techniques using Rust's debugging tools.
96. **Concurrency**: Implement concurrency using Rust's async/await and threads.
97. **Memory Management**: Understand and implement Rust's ownership and borrowing system.
98. **Error Handling**: Implement robust error handling using Rust's `Result` and `Option` types.
99. **Performance Optimization**: Optimize your code for performance.
100. **Deploy an Application**: Deploy your Rust application to a cloud service like AWS or Heroku.