101 Books, 2024. — 419 p.
Why Learn Programming?Programming is the foundation of modern technology, powering everything from smartphones to space exploration. It equips you with problem-solving skills, creativity, and the ability to build solutions that can impact millions. Whether you're automating tasks, developing software, or diving into cutting-edge fields like AI or blockchain, programming is your gateway to innovation.
Why Use Static Compiled Languages?Static-compiled languages like Rust, C++, and Go ensure high performance and reliability by catching errors during compilation rather than runtime. Unlike interpreted languages (e.g., Python, JavaScript), compiled languages convert code directly into machine instructions, leading to faster execution. C++ is often used for game development, while Go powers scalable back-end systems. Rust stands out for its emphasis on safety and concurrency, eliminating common bugs like null pointer dereferences and data races without compromising speed.
Why Learn Rust?Rust is the future of systems programming, combining low-level control with high-level safety guarantees. It excels in creating robust applications, from embedded systems to web servers like Actix. Its ownership model ensures memory safety without a garbage collector, making it a favorite for performance-critical industries like finance and gaming.
Attribution Recommendation:
Disclaimer:
Rust Basics.
Variables and Mutability.
Control Flow.
Operators.
Type Inference and Aliases.
Exercise: Fibonacci.
Functions.
Scopes and Ownership.
Data Types Overview.
Numeric Data Types.
Boolean and Character Types.
Strings.
Collections.
Type Conversion.
Advanced Data Types and Operators.
Advanced Operators.
Arithmetic Operations.
Type Aliases and Newtypes.
Exercise: Data Processing.
Comparison and Equality.
Logical Operators.
Bitwise Operations.
Compound Types.
Slices.
Strings in Detail.
Ownership in Strings.
Working with Collections.
Ownership and Lifetimes.
Ownership Basics.
Borrowing.
Lifetimes.
Slice Types.
Move Semantics.
Drop Trait.
Exercise: Memory Safety.
Advanced Lifetimes.
Collections and Iterators.
Vectors.
HashMaps.
Strings.
Iterators.
collect.
Exercise: Iterators.
Error Handling in Iterators.
Itertools.
Concurrency and Async Programming.
Threads.
Channels.
Shared State.
Send and Sync.
async/await.
Tokio.
Exercise: Multi-threaded Application.
Pitfalls.
Error Handling.
Understanding Errors.
Result and Option.
Custom Errors.
Panic Handling.
Error Propagation.
Third-Party Libraries.
Exercise: Error Scenarios.
Debugging.
Testing and Debugging.
Unit Tests.
Integration Tests.
Mocking.
Compiler Warnings.
Debugging Tools.
Performance Testing.
Exercise: Test-Driven Development.
Advanced Debugging.
Advanced Rust.
Unsafe Rust.
FFI.
Macros.
Custom Derive.
Memory Management.
Generics and Traits.
Exercise: Advanced Features.
Future of Rust.