
# Learning new languages and documenting my journey

Repository which documents my journey in learning new languages.

Currently learning:
<style>
    #rust {
        filter: invert(1);
    }
</style>
<p align="center">
  <span id="rust">
  <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/rust/rust-original.svg" alt="Rust" width="50" height="50"/>
  </span>
  <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/haskell/haskell-original.svg" alt="Haskell" width="50" height="50"/>
  <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/swift/swift-original.svg" alt="Swift" width="50" height="50"/>
  <img src="https://dashboard.snapcraft.io/site_media/appmedia/2021/01/coq.png" alt="Coq" width="50" height="50"/>
  <img src="https://hackage.haskell.org/package/futhark-0.25.28/docs/assets/ohyes.png" alt="Futhark" width="50" height="50"/>
  <img>
</p>

(and C++, but that is gonna happen in embedded systems, so I won't document it here)

## Idea
I will spend about 5 hours a week learning each language. This is **NOT** a priority, but rather a side project to keep me entertained and to learn new things.

The main idea is to use these new languages to solve relevant problems!

## Structure
```
.
├── language
│   ├── sessions -- if I am doing a course or something
│   │   ├── 13_03 -- date (dd_mm)
│   │   │   ├── notes.md
│   │   │   └── exercises/ -- if I have any
│   |-- algorithmic -- if I am doing algorithmic problems
|   |-- practical -- if I decide to do something practical (usually documentation and a submodule of the main repo)
│   |-- README.md -- main README
```

## Current language goals

<!-- html table of the above -->
<style>
  /* center */
  table {
    margin-left: auto;
    margin-right: auto;
  }
</style>
<table>
  <tr>
    <th>Language</th>
    <th>Idea</th>
    <th>Category</th>
    <th>Algorithmics?</th>
    <th>Practical?</th>
    <th>Course?</th>
  </tr>
  <tr>
    <td><a href="https://www.rust-lang.org/">
    <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/Rustacean-orig-noshadow.svg/220px-Rustacean-orig-noshadow.svg.png" alt="Rust"  height="50"/>
    </a></td>
    <td>Daily drive</td>
    <td>General</td>
    <td>✅</td>
    <td>✅</td>
    <td>❌</td>
  </tr>

  <tr>
    <td><a href="https://www.swift.org/">
    <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/swift/swift-original.svg" alt="Swift"  height="50"/>
    </a></td>
    <td>Daily drive</td>
    <td>General</td>
    <td>✅</td>
    <td>✅</td>
    <td>❌</td>
  </tr>

  <tr>
    <td><a href="https://www.haskell.org/">
    <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/haskell/haskell-original.svg" alt="Haskell"  height="50"/>
    </a></td>
    <td>Understand functional programming</td>
    <td>Theory</td>
    <td>✅</td>
    <td>❌</td>
    <td>✅</td>
  </tr>

  <tr>
    <td><a href="https://coq.inria.fr/">
    <img src="https://dashboard.snapcraft.io/site_media/appmedia/2021/01/coq.png" alt="Coq"  height="50"/>
    </a></td>
    <td>Understand formal verification</td>
    <td>Theory</td>
    <td>❌</td>
    <td>❌</td>
    <td>🤷</td>
  </tr>

  <tr>
    <td><a href="https://futhark-lang.org/">
    <img src="https://hackage.haskell.org/package/futhark-0.25.28/docs/assets/ohyes.png" alt="Futhark"  height="50"/>
    </a></td>
    <td>Understand data parallelism</td>
    <td>Theory/Fun</td>
    <td>❌</td>
    <td>❌</td>
    <td>❌</td>
  </tr>

</table>


