It's almost time to dive into learning Elixir, but first I'm going to cover the learning resources I'm using and the tools I'm using, including what you need to follow along.

Learning Resources

I'm using the following resources for teaching myself Elixir. I've read some other websites and articles to get an overview of Elixir, but these are the resources I'll be using regularly as I go along. Some may prove more useful to me than others.

Basic Information

These are the resources I'm using for teaching myself the basics of Elixir

Advanced Information

When I eventually get there, I have identified some resources I'll be using to learn about the more advanced aspects of Elixir, and eventually the Phoenix framework

The Process of Learning and Writing

I truly intend to write these posts as I'm in the process of learning Elixir and explain as I go. That will certainly mean that my later posts will be better informed than the earlier ones.

My method of learning is to read the early topics from multiple sources (one source often contains interesting information that the other one doesn't), make an outline of possible topics, and then choose the next one to write about. As I write about each topic, I will tend to drill down deeply into them, research the answers to questions I have, and play around with the language to observe its behavior.

In my research so far, I've often encountered topics and interesting features I haven't investigated yet, so I'm often aware of features of Elixir that I haven't covered yet. Those get added to my outline and that outline section gets expanded as I learn more. I typically only have some superficial information about a feature until I start writing about it, and that's when I start researching it and looking into the details.

So if it sometimes seems like I know more than I've written about so far, that's probably true, but I probably also don't know a lot about those subjects at that point. Also, writing tends to be linear (unless you're James Joyce, I suppose), but learning not so much, especially when learning from a variety of sources. That means what I've written down at any particular point won't always cover all of what what I've learned so far, although I'll try to keep it as close as I can.

Tools

If you want to follow along, you may be interested in learning about the tools that I am using. I may end up using different tools later on, but this is what I'll be using in the near future.

I'm going to be using the following:

  • The Elixir platform and associated tools: You can't run Elixir without them, and they're all included in one convenient package.
  • Visual Studio Code: there's actually nothing that requires this particular text editor for Elixir development. I'm just using it because it's cross-platform, has some useful Elixir plugins for autocomplete and syntax highlighting, and has a healthy plugin ecosystem which can serve as a source of other useful plugins in the future.
  • Command Line: Any command line environment should do. On Windows, I recommend Cmder, just because it's so much nicer than the default command line console. On a Mac, I use the standard Terminal app. On Linux, any Bash shell will do just fine.

That's it for now. At this point, that's pretty much all I need.

For the most part, other than the Elixir platform and associated tools, there actually aren't any specific tools you'll need. Your preferred text editor will be sufficient, although I recommend installing any plugins that will give you autocomplete or syntax highlighting.

Installing Elixir

Go to the Elixir website and click on the Install link. Follow the instructions to install on your platform of choice. They even have a package for Raspberry Pi and a Docker container you can run.