---
title: "Discussion on \"From High-Level to Systems Programming: A Practical Guide to Rust\" | Hashnode"
description: "Discussion on \"From High-Level to Systems Programming: A Practical Guide to Rust\". Part 1: Getting Started with Rust"
url: "https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [From High-Level to Systems Programming: A Practical Guide to Rust](https://hummusonrails.hashnode.dev/from-high-level-to-systems-programming-a-practical-guide-to-rust?utm_source=hashnode&utm_medium=feed)

Part 1: Getting Started with Rust

Jan 2, 2023 · 8 min read · hummusonrails.hashnode.dev  
Read the article

-   [#rust](https://hashnode.com/tag/rust)
-   [#learning](https://hashnode.com/tag/learning)

## Written by

[Ben Greenberg](https://hashnode.com/@hummusonrails)

@hummusonrails · Tel Aviv, Israel

  
[View profile](https://hashnode.com/@hummusonrails)

Senior Developer Advocate at Couchbase

I am a second career developer who previously spent a decade in the fields of adult education, community organizing, and non-profit management. I work as a senior developer advocate at Couchbase by day and experiment with open source projects at night. I write regularly on the intersection of community development and tech. Originally from Southern California and a long-time resident of New York City, I now reside near Tel Aviv.

## Responses 4

Markdown supported · ⌘↵ to post

[Brett Rowberry](https://hashnode.com/@brettrowberry)

[Jan 13, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63c1a6078bdf402592caae4c)

Hashnode prompted me to make this comment. Very accessible! It wasn't clear to me why `?` is needed here:

```
fn main() {
    let result = divide(10, 2)?;
    println!("The result is {}", result);
}
```

What happens without it?

[Ben Greenberg](https://hashnode.com/@hummusonrails)

[Jan 13, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63c1a6078bdf402592caae4c#reply-63c1ad4a8bdf402592caaf3a)

The `?` operator is used to unwrap a `Result` and either show the error, if there is one, or the value if it was successful. You can write the same thing out in long form, but since it was such a common operation this shorthand was introduced into the language.

You can read more about the operator in the docs, for example here: [doc.rust-lang.org/rust-by-example/std/result/ques…](https://doc.rust-lang.org/rust-by-example/std/result/question_mark.html#)

[Brett Rowberry](https://hashnode.com/@brettrowberry)

[Jan 13, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63c1a4bc74f4982355657001)

The implementations of `take_ownership` and `give_it_back` are the same. Is that intentional?

[Ben Greenberg](https://hashnode.com/@hummusonrails)

[Jan 13, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63c1a4bc74f4982355657001#reply-63c1acf88bdf402592caaf28)

Good catch! They are the same just to show explicitly what's happening to the value as it gets borrowed, returned, etc.

[Tanish Shrivastava](https://hashnode.com/@Tanish)

[Jan 6, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63b7f8d5624134a0c9b3094c)

Much better than me sharing my own notes, which you can barely follow. Thanks for this guide.

[ኦ ጦቢያ ሐገረ ቅዱሳን](https://hashnode.com/@Haniiiii)

[Jan 5, 2023](https://hashnode.com/posts/from-high-level-to-systems-programming-a-practical-guide-to-rust/63b2e6d2c6078e6529fcef31/comment/63b6d432f7b8ce96c16c6caf)

Hi I want to be learn high level programming how can i do?
