# What I learned from learning Rust
{id: what-i-learned-from-learning-rust}

## What I learned from learning Rust
{id: gabor-szabo}

* Gabor Szabo
* https://szabgab.com/
* https://github.com/szabgab

* https://rustatic.code-maven.com/
* https://rust-digger.code-maven.com/
* https://rust.code-maven.com/

## Why?
{id: why}

* Why are you here?  Why did you come here?

* Pizza and Beer?

{aside}
* There might be some people who came for the Pizza and the beer, but I guess most of you had other motives as well.
{/aside}



## Beginners?
{id: beginners}

* New to Rust
* Beginners in Rust

* The number of people learning Rust is growing a lot.

{aside}
* Are you new to Rust? Are you here because you hope to learn Rust? How many of you have never written any Rust or feels like a total beginner?
* The number of people using Rust is growing. Growing a lot.
{/aside}

## Professionals?
{id: professionals}

* Already working in Rust and earning money for it.

* There are more and more jobs in Rust.

{aside}
* Do you get paid to write Rust or to use Rust? Were you forced to come here by your employer?
* The number of jobs using Rust is growing.
{/aside}


## Salaries?
{id: salaries}


{aside}
Supply and demand?
{/aside}

## Who am I
{id: who-am-i}

{aside}
* I am self-employed and a large chunck of my work is teaching people how to improve their programming life. This included teaching them how to use git and how to use it properly. How to write automated tests, how to setup a CI system. It includs also teaching programming langiages. Perl when that was the popular language. Then I Python, and now it might be Rust. Is it?
{/aside}


## Why learn a programming language?
{id: why-learn-a-programming-language}

* It is fun to learn a new language.
* It is fun to solve problems. A programming language is like a maze. You need to find out the rules and you need to find your way through the maze.

* Learning a programming takes time
* It is a maze.
* It is fun to be able to make the computer do what you want.


{aside}
{/aside}

## Ladino vs. Rust
{id: ladino-vs-rust}

* Learning a human language vs learning a programming language.

## People love Rust
{id: people-love-rust}

* People love Rust - According to the StackOverflow survey Rust is the most loved programming language by its users



## How do people learn a programming language?
{id: how-do-people-learn-a-programming-language}

Some peole go deep and only then start to write. Some people try fail and improve.



## Learn by reading
{id: learn-by-reading}

* Reading the documentation is borimg
* Even reading tutorials is frustrating.
* I'd like to get my hands dirty
* F around and find out


## Learning programming
{id: learning-programming}

* Install from [Rustup](https://rustup.rs/)

* Reading a tutorial
* Reading the official documentation
* Watching videos
* Writing small examples
* Writing a translation guide from another programming language you already know.
* Course
* Writing a project
* Reading the source code of open source projects
* Contributing to open source projects

* Learn concepts in context
* Use real-world examples (try to implement them)

## Web based runner or local environment?
{id: web-based-runner-or-local-environment}

* The [Playground](https://play.rust-lang.org/)
* The [Google course](https://google.github.io/comprehensive-rust/) has the online editor and runner.
* I prefer working on my own computer.

## Getting feedback
{id: getting-feedback}

One of the most important thing in learning is getting feedback


* The compiler - errors
* You get the results
* Writing and running tests

## Platforms to get feedback
{id: platforms-to-get-feedback}

* Rustlings
* Exercism
* Asking on forums

## Rust Toolchain
{id: rust-toolchain}

Rust has a really nice tool chain with built in code formatter and linter.

* [Clippy](https://github.com/rust-lang/rust-clippy)


## My projects
{id: my-projects}

* https://rustatic.code-maven.com/
* https://rust-digger.code-maven.com/

## Community
{id: community}


## Example
{id: examples}

* Some crates, such as [Serde](https://serde.rs/examples.html) have examples listed on their pages.
* Other crates have examples in their git repository.

## Thank You
{id: thank-you}


