diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 0000000..335000f --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,2 @@ +https://www.udemy.com/course/.* +https://archive.ph/.* diff --git a/src/guide/learn-async-rust/README.md b/src/guide/learn-async-rust/README.md index c39f52e..7041965 100644 --- a/src/guide/learn-async-rust/README.md +++ b/src/guide/learn-async-rust/README.md @@ -27,6 +27,8 @@ Extra Learning Resources: - - +At you can reat more toughts on Async rust, its history and its implementation. + As an extra, and perhaps slightly sidetracked, you may also want to read and develop alongside the following articles: - [The HTTP crash course nobody asked for](https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for) diff --git a/src/guide/learn-more-rust/extra.md b/src/guide/learn-more-rust/extra.md index cec99cc..ab93d04 100644 --- a/src/guide/learn-more-rust/extra.md +++ b/src/guide/learn-more-rust/extra.md @@ -7,7 +7,7 @@ Should you want some inspiration or a more guided approach, here are some resour - [Command-Line Rust](https://www.oreilly.com/library/view/command-line-rust/9781098109424/): build a cli tool such as grep in rust, using test driven development (TDD), all to learn Rust - [Rust Application Books - The Little Book of Rust Books](https://lborb.github.io/book/applications.html): lists a lot of different books, including ones that allow you to develop small projects using Rust, usually in a well guided fashion; - You might find an interesting companion article as it gives some (common) ideas that you can apply to the CLI tool you're building; - - [Introduction - PNGme: An Intermediate Rust Project](https://picklenerd.github.io/pngme_book/introduction.html) is an especially fun small project. It allows you to apply the knowledge that you learned above in a very narrow program, that is for once not network related. At the end you'll have a cli tool that allows you to encode and decode "hidden" messages in a PNG image; + - [Introduction - PNGme: An Intermediate Rust Project](https://jrdngr.github.io/pngme_book/) is an especially fun small project. It allows you to apply the knowledge that you learned above in a very narrow program, that is for once not network related. At the end you'll have a cli tool that allows you to encode and decode "hidden" messages in a PNG image; > Was it always your dream to make your own Game? And do you also want to learn Rust? > diff --git a/src/guide/learn-rust/README.md b/src/guide/learn-rust/README.md index 802f127..ec79b28 100644 --- a/src/guide/learn-rust/README.md +++ b/src/guide/learn-rust/README.md @@ -21,6 +21,30 @@ Sooner or later you might also need help for a project you work on or simply to > > If you've never done any Systems programming before, this will be an especially helpful book given it will explain a lot of the magic you've encountered in your very protected professional life so far. You're welcome. +### Tour of Rust + +> 🔗 + +This project is meant to give an experienced programmer a swift introduction to Rust as an alternative to reading lengthy book style documentation. + +* Chapter 1 - The Basics +* Chapter 2 - Basic Control Flow +* Chapter 3 - Basic Data Structure Types +* Chapter 4 - Generic Types +* Chapter 5 - Ownership & Borrowing Data +* Chapter 6 - Text +* Chapter 7 - Object Oriented Programming +* Chapter 8 - Smart Pointers +* Chapter 9 - Project Organization and Structure + +Content goals: +* Chapter 1-4 should give you a strong taste of Rust's aesthetic +* Chapter 1-6 should give a person from C a good idea how their ideas translate +* Chapter 1-8 should give a person from C++ a good idea how their ideas translate +* Chapter 9+ should talk about Rust specific concepts that doesn't fit well into the above + +This project also aims to provide this book in as many languages as possible. + ### Learn Rust in a Month of Lunches There's only one Rust book out there — that I'm aware of — which assumes no programming experience or knowledge at all. diff --git a/src/intro/learning-rust.md b/src/intro/learning-rust.md index 9c51135..9a97b8e 100644 --- a/src/intro/learning-rust.md +++ b/src/intro/learning-rust.md @@ -1,6 +1,18 @@ -## Rust 101 Course +## Why Learn Rust? -The origins of this guide can be found in the preparation of a semester long course I gave to a group of employees at [OTA Insight Ltd.](https://www.otainsight.com/). The recordings of this course are available on YouTube at: . The videos are however not of the highest quality, especially given the many better resources out there. +You might be wondering, why shall I learn Rust? +In the [About](/intro/about.html) chapter you'll find plenty of reason to. + +However, you might want to read [the "Can Rust prevent logic errors?" article] +at instead. + +In the article "Can Rust prevent logic errors?" Piotr Sarnacki explores the potential of Rust, a programming language, to reduce software bugs, specifically logic errors. He highlights Rust's features such as the absence of nulls, the necessity to handle function errors, prevention of data races, and explicit marking of mutable variables. + +Sarnacki contrasts Rust with Ruby, where runtime exceptions are common, suggesting that Rust allows for more stable applications. He discusses how Rust's expressiveness can help prevent some logic errors that might occur at runtime. + +He also discusses how Rust's tools for managing data ownership and access control can prevent logic errors caused by unwanted mutations. Additionally, he emphasizes the use of enums in Rust to handle multiple options, which can prevent errors when dealing with multiple possible states. + +In conclusion, Sarnacki believes that Rust offers many tools for writing correct software and its community's focus on correctness further enhances its value. Despite the potential for errors, he suggests that Rust has a relatively small amount of problematic features if misused. ## Learning Rust @@ -30,4 +42,8 @@ As you navigate this guide, you'll find alternative suggestions and varying leve If you don't anticipate working on a project requiring Async programming soon, feel free to bypass [that section](/guide/learn-async-rust.md) for now. Just remember that Rust supports Async and it plays a significant role in the Rust ecosystem. You can always return to it when you're ready to strengthen your knowledge in this area. -Should you ever feel stuck or in need of a mentor, don't hesitate to contact Glen at [glen@plabayo.tech](mailto:glen@plabayo.tech) to arrange a one-on-one session or a workshop for your organization. Whether it's a one-off or regular meetings, assistance is readily available. \ No newline at end of file +Should you ever feel stuck or in need of a mentor, don't hesitate to contact Glen at [glen@plabayo.tech](mailto:glen@plabayo.tech) to arrange a one-on-one session or a workshop for your organization. Whether it's a one-off or regular meetings, assistance is readily available. + +## Rust 101 Course + +The origins of this guide can be found in the preparation of a semester long course I gave to a group of employees at [OTA Insight Ltd.](https://www.otainsight.com/). The recordings of this course are available on YouTube at: . The videos are however not of the highest quality, especially given the many better resources out there.