Skip to product information
Learn Rust Programming by Building
Learn Rust Programming by Building
Description
Book Introduction
The definitive guide to Rust, the highly efficient, modern programming language!

Rust is an efficient, reliable, and productive language, making it one of the most sought-after languages ​​for programmers to learn.
It's a language worth learning, but it can be difficult for beginner programmers.
Therefore, it is effective to learn it after building a foundation in programming in Python or another language.
"Learn Rust Programming by Creating" was created with the concept of allowing you to learn Rust efficiently by comparing Rust code with Python code.
We've included a variety of source code to make learning Rust a little easier, and since we assume readers know Python, we've omitted redundant explanations and unnecessary examples to focus more on Rust's appeal.
Learning Rust will also help you rediscover the power of Python and understand how Python works behind the scenes.
  • You can preview some of the book's contents.
    Preview
","
index
Chapter 1: Basic Preparation for Moving from Python to Rust

01 Why Rust?
__What kind of language is Rust?
__Rust Features
__[Column] Difficulties in memory management
__[Column] The meaning of Rust is 'rust'
__Is Rust difficult?
02 Differences between Python and Rust
__Python is an interpreted language.
What about Rust?
__both modern languages
__Dynamic-typed languages ​​and statically-typed languages
__Memory Management in Python and Rust
03 Installing Rust and the Rust Development Environment
__Installation method by OS
__Install on Windows
Install on __macOS / Linux
__How to update your installed Rust to the latest version
__Development environment for Rust development
__Install Visual Studio Code
__Installing Python
__Hello, World!
04 Getting Started with Rust
__Display text on the screen
__Display variable values ​​by including them in a string
__Try the four basic arithmetic operations
05 Solving FizzBuzz Problems with Rust and Python
__Getting a Little Closer to Rust
__Solving FizzBuzz Problems with Python
Solving FizzBuzz Problems with Rust
Using the __for and if statements to display multiples of 3 and numbers containing 3 as A
06 Creating a Multiplication Table with Rust and Python
__Multiplication table composition
__Creating a multiplication table with Python
__Making a multiplication table with Rust
__Increase the level of completion
Convert the Western calendar to the Joseon era name
07 Variable Definition and Fibonacci Sequence
__What is the Fibonacci sequence?
__How to define variables in Rust
__Advantages of immutable variables
__[Translator's Note] Variable for temporarily assigning values
__Compare product prices
08 Calculating variable types and change combinations
__Calculating change combinations
__Rust's variable types
__How to find out the available integer range
Calculating change combinations without using type inference
09 Function Definition and Caesar Cipher
__What is the Caesar cipher?
__Function definition and call
__Making the Caesar Cipher a Little More Elegant
10 Arrays and 100 Prime Numbers Calculation
__Getting more familiar with Rust with decimal calculations
What is __reference?
__for statement syntax
__[Column] Variable Array - About Vectors
Declare a value using if in the __[Column] variable

Chapter 2: Creating Simple Tools with Rust

01 How to use Cargo and calculate large numbers
__What is Rust's build system 'Cargo'?
Starting a project with __Cargo
__Try using the public crate
__[Translator's Note] Cargo Run and Cargo Build
__[Column] 'extern crate ***' notation
__[Column] 'use' to load modules from a crate
02 Rolling the dice and automatically generating the maze
Let's make a __dice roll
__Automatic maze generation using random numbers
03 Vector Type, Bingo Card Creation
__Creating a tool that automatically creates bingo cards
__Making Bingo Cards with Python
__Making Bingo Cards with Rust
__Resizable array and vector types
Creating Bingo Cards Using Vectors
04 Standard Input and Obesity Measurement
Diagnosing obesity using BMI
__[Translator's Note] Handling Result Types
__Handling Standard Input in Rust
__[Column] numeric literal
05 Survey Aggregation
__Popularity Vote Counting Structure
__Check how to use HashMap
06 Creating a tool that can be used from the command line
__Tool to add command line arguments
__Reads and displays the contents of the specified text file
__[Translator's Note] Added handling when a non-existent file is specified
__Create a tool to add numeric values ​​stored in a text file
07 Reading files and creating an English-Korean dictionary
__Creating a dictionary for use on the command line
__Save the execution results of FizzBuzz to a file and compare them.
__[Translator's Note] unwrap method
__Making an English-Korean dictionary
Write content to __file
Handling errors that occur when handling __files
08 Creating a File Recursive Search Tool
__What is recursion?
__Creating a recursive file search program
__Rust's file path representation
__[Column] File path expressions vary depending on the OS.
Creating your own __tree command

Chapter 3: Grammar - Ownership System and Data Types

01 The First Challenge: The Ownership System
__What is an ownership system?
__[Column] Is the ownership system unique to Rust?
__Thinking of memory management as 'ownership'
__The Three Basic Principles of Ownership
__[Column] Difficulties in memory allocation and release
__Types that are not subject to the ownership system
__[Column] Ownership when duplicating
02 Borrowing and Reference
__'Borrowing'
__Ownership moves to function call
__A function that returns a reference
__Using mutable references as arguments
__[Column] println! How to use the macro
03 Rust's Tuples, Arrays, and Slices
__What is a tuple?
__Arrays in Rust
__What is slice type?
04 Rust's Structures
__What is a structure?
Calculating BMI using __structure
__Establish criteria for determining obesity
__Naming conventions for structures and variables
05 Strings in Rust
__Strings in Rust
__Rust's strings are UTF-8
Using slices in __&str
__&str and String mutual conversion
__Lifetime
06 Getting familiar with string handling in Rust
__Outputting a string in binary editor format
Get a substring of __
__String search
__Shadowing - Redeclaring variables within a scope
__String Split
Reading and writing files encoded in __EUC-KR
07 Global variables and unsafe
__A language that pursues ideals and faces reality
__Pseudo-random number generation
__Prepare the random number generator
__'Good Random Number Generation' structure
__Using global variables in Rust
Generating pseudo-random numbers without using __unsafe
__[Translator's Note] Xorshift
08 Test Framework
Easy testing with __Cargo
__Create test code and check the results
__Testing array and vector values
__struct test

Chapter 4: Grammar - Methods, Generics, and Traits

01 Structures and Methods
Defining a method in a __struct
Calculating BMI using __structures and methods
__Update structure
Copy __[Column] structure
__[Translator's Note] Structure copy properties
02 Traits that define common behavior
What is __trait?
__Trait's default method
03 Generic
__Review generics
__Generic function definition
__Specifying generics in structures
04 Iterator
__Check the basic contents of the iterator
__iterator trait
05 Enumerations and Pattern Matching
__'null-safe' language Rust
__Defining an enumeration
__pattern matching
06 Rust's Modules, Crates, and Packages
__Why should we separate by function?
__[Column] How to ignore operation overflow
__How to separate modules into files
__[Column] 'edition' in the Cargo.toml file
__[Translator's Note] Submodules with 2 or more layers
__Specifying modules with relative paths
__package
__[Translator's Note] Workspace
07 Revealing your own crate
Register your crate on __crates.io
__RPN (Reverse Polish Notation)
Publish your crate on __crates.io

Chapter 5: Applications - Photos / Music / Networks

01 Creating an Image Processing Tool
__Handling image files
__Creating a Color Inversion Tool
__[Column] thumbnail method
02 Playing music with wave synthesis
__Wave synthesis and playback
Create a __sinewave project
__Music making
__Creating an MML player
03 Creating 80s Game Sound Sources
__Creating a synthesizer with various waveforms
__sawtooth wave
__Displaying waveforms in Python
__square wave
__triangular wave
__white noise
__pulse wave
__FM sound source
04 Networks and Parallel Processing
__Thread
__Parallel calculation processing with threads
05 Creating a Simple Chat Program
__Simple chat service
__Use threads
__Chat Server
__Chat client
06 Creating a Web Program
__The meaning of creating web programs with Rust
__Rust web framework
__Actix Web
Tide, a web framework for rapid development
__[Translator's Note] Sending with POST method 1
__Enter your name to greet
__[Translator's Note] Sending with POST method 2
__Rust and Python Web Development Comparison

Chapter 6: Applications - Memory Management and Integration with Other Languages

01 Creating a Macro
__Rust's macros
__Defining a macro
Creating a macro to easily initialize a __HashMap
__Macro recursive call
__View the code generated by the actual macro - Macro Expansion
__[Column] Procedural Macro
02 Understanding Memory Management with Unidirectional Lists
__Implementing a one-way linked list
__Implementing a method in a singly linked list
03 Memory Reference Counter
Disadvantages of a singly linked list using __Box〈T〉
__Rc〈T〉 type allows reference counting memory management
Using the __RefCell〈T〉 type
__Weak types to avoid circular references
Creating a doubly linked list with __Rc〈T〉 and Weak〈T〉
__Arc〈T〉 and Mutex〈T〉 for thread safety
04 Creating a Mini-Language with a Parser Generator
__Why create your own language?
__Making a Simple Addition Calculator
__Creating a calculator capable of arithmetic operations
__Creating a Mini Language
05 C Language, Integration with Python
__FFI
__Calling C language libraries from Rust
__Calling a library created in Rust from C language
__Handling C Language Data Types in Rust
__Create a dynamic library and use it in Python
06 Web Assembly
__What is WebAssembly
__Using WebAssembly with Rust
__Creating a Tomato Language Playground
07 Asynchronous Communication and Scraping
__Making frequently used tools with Rust
__Asynchronous processing
__Asynchronous processing in Rust
__Asynchronous processing basics
__Continuously download images from a web page
08 Creating an Encryption Tool
__Creating an encryption tool
__Command-line encryption tool
__Build with WebAssembly and run in browser

Appendix A _ Error Messages and Resolution Tips

Appendix B _ Rust Glossary

Appendix C _ Summary of Rust's Basic Syntax
","
Detailed image
Detailed Image 1
","
Publisher's Review
★ What this book covers ★

◎ Comparison of Python and Rust
◎ Rust's grammar and various functions
◎ Creating a synthesizer and chat function using Rust
◎ Memory management
◎ Utilizing image processing libraries
◎ How to link with C language, Python, etc.
◎ Web Assembly Creation
"]
GOODS SPECIFICS
- Date of issue: January 3, 2023
- Page count, weight, size: 580 pages | 180*240*24mm
- ISBN13: 9791158393908
- ISBN10: 1158393903

You may also like

카테고리