> For the complete documentation index, see [llms.txt](https://montrealelixir.gitbook.io/playbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://montrealelixir.gitbook.io/playbook/trails/lang.md).

# Elixir Lang

## Getting started

* Get motivated: [Keynote: Think Different by Dave Thomas](https://www.youtube.com/watch?v=5hDVftaPQwY)
* Learn the basics: [Elixir Guides](http://elixir-lang.org/getting-started/introduction.html)
* Read the book: [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir)

## Beyond the basics

* [Elixir in Action](https://www.manning.com/books/elixir-in-action) (highly recommended)
* [Elixir Sips](http://elixirsips.com/)
* See [Elixir Lang website for more resources](http://elixir-lang.org/learning.html)

## Start with focusing on Elixir's conventional programming concepts:

* pattern matching
* non-scalar data types
* strings

## Learning about Strings

The string implementation in Elixir is more powerful than in other languages, but that comes with more of a learning curve.

* [Elixir for Rubyists: Charlists |> Binary’s |> Strings | IOLists](https://medium.com/@harry_dev/elixir-for-rubyists-charlists-binarys-strings-iolists-eeacf38db999#.epqpak41e)
* [String Theory - ElixirConf 2016](https://www.youtube.com/watch?v=zZxBL-lV9uA)

## Understand data structures

* [When to Use Structs, String-keyed Maps, and Atom-keyed Maps](https://engineering.appcues.com/2016/02/02/too-many-dicts.html)

## Development Resources

* [Hex.pm](https://hex.pm/)
* [Curated list of packages](https://github.com/h4cc/awesome-elixir)
