Before you start programming, you need to make sure you have the tools you need. I’m not good at planning far ahead into the future, so we are only going to install what we need to get started. Later, when we figure out that we need something else, we’ll install it at that time.

To get started, you will need:

  1. the Odin compiler
  2. a text editor or and IDE
  3. a terminal application

Getting Odin

The first thing to do is install Odin. How to do this will vary a bit depending on which operating system you are using. I mostly use Linux and BSD systems, and my primary work machine has Fedora on it. The Getting Started page on the Odin website shows you how to install Odin for your programming language.

This is what I did on my Fedora machine. I downloaded the official release for Linux amd64. I extracted the files and moved them into /opt/odin, which seemed the appropriate place. Finally I added this to .bash_profile so that the Odin directory is in my PATH:

[[ -d /opt/odin ]] && PATH=$PATH:/opt/odin

Over time, I’ll try to write instructions for other operating systems as well. I don’t have a single Windows machine currently, so if anybody wants to contribute instructions on how to install on Windows, feel free to contact me.

Choosing a text editor

A text editor is one of a programmer’s primary tools and you will probably want to take some time to find one that you enjoy working with. Personally, I really like Emacs, but I find myself using neovim quite a bit these days. A few other alternatives you could try out include:

  1. Sublime: I’ve never used this editor, but I know is very popular. I believe the creator Odin, GingerBill, prefers this editor.
  2. vim: It wouldn’t be fair to mention neovim without also listing vim.
  3. Zed: This might be of interest to somebody. Odin support seems to be available by default?
  4. VSCode: It gets the job done and is popular. You can install Odin support.

I would be ready to invest quite a bit of time to learn how to use my editor well. If I were a beginner and looking for an editor to use, I would probably go with neovim with some reasonable base config, such as kickstart. (Don’t tell anybody that an Emacs user recommended neovim.)

A terminal

A terminal is a command-driven application that allows you to type in commands that your computer will perform. It is something you already have on your system. You might called it something like “the command line” and that’s fine, you will need to use it, so make sure you know how to launch it. (Some text editors or IDEs have integrated terminals that you can use.)

Pen and Paper

You may be wondering, but I actually still like using good old pen and paper. If I need to try to understand a particular piece of code, there is no better way than to to take out that notebook and start working through the algorithm manually, step by step. If this doens’t work for you, of course, there is nothing forcing you to do it.

Final words

Once you have everything set up, you are ready to start learning some Odin.