100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Your First Elixir Program

Write, run, and understand your first Elixir program, from a standalone script to a proper Mix module with functions and a test.

FoundationsBeginner8 min readJul 10, 2026
Analogies

Your First Elixir Program

There are two ways to run Elixir code, and knowing when to use each is part of learning the language's workflow. A standalone .exs script is compiled in memory and executed immediately with the elixir command, ideal for quick experiments. A Mix project, created with mix new, organizes real application code into a compiled, testable structure under lib/ and test/. In this walkthrough you'll build the same small greeting module both ways, first as a throwaway script, then as a proper module inside a Mix project with an automated test.

🏏

Cricket analogy: Writing your first Elixir program is like a young cricketer's first outing, you can either play a quick backyard knock, a standalone script, just to feel the bat, or turn up for a proper nets session with the full academy setup, a Mix project, before playing a real match.

Writing a Standalone Script

Create a file named hello.exs containing a module definition and a call to it, then run it with elixir hello.exs from the terminal; Elixir compiles the module in memory, executes the script top to bottom, and exits, leaving no compiled artifact on disk. Note the file extension: .exs signals a script meant to be run directly, while .ex signals a source file meant to be compiled as part of a project. IO.puts/1 is used here to print output to the terminal, but it always returns the atom :ok, not the text it printed, a detail that matters once you start writing functions meant to be tested.

🏏

Cricket analogy: Running elixir hello.exs is like a quick throwdown session in the nets, the bowling machine processes your delivery immediately and you see the result on the spot, with nothing formally entered into the club's official records.

elixir
# hello.exs
defmodule Greeter do
  def greet(name) when is_binary(name) do
    "Hello, #{name}! Welcome to Elixir."
  end
end

IO.puts(Greeter.greet("Ada"))
bash
$ elixir hello.exs
Hello, Ada! Welcome to Elixir.

Building It as a Mix Module

Inside a Mix project generated with mix new hello_world, the same logic belongs in lib/hello_world.ex as a proper module, and this time greet/1 should return the greeting string rather than print it directly, keeping the function easy to test and reuse. Running iex -S mix from the project root compiles the whole project and drops you into an interactive shell with HelloWorld already loaded, so you can call HelloWorld.greet("Ada") immediately without manually requiring any files, the way you would have to in a plain script.

🏏

Cricket analogy: Adding your function to lib/hello_world.ex is like getting your name permanently entered into a franchise's official squad list, so every future training session, iex -S mix, has you already on the roster and ready to be called upon.

elixir
# lib/hello_world.ex
defmodule HelloWorld do
  @moduledoc "A tiny greeting module."

  def greet(name) when is_binary(name) do
    "Hello, #{name}! Welcome to Elixir."
  end
end
bash
$ iex -S mix
iex(1)> HelloWorld.greet("Ada")
"Hello, Ada! Welcome to Elixir."

.exs files are 'Elixir Script' files, compiled in memory and run immediately, ideal for quick experiments and one-off Mix task scripts. .ex files are compiled to .beam bytecode and cached as part of a project's real modules, such as lib/hello_world.ex, which is why only .ex files are picked up automatically when you run iex -S mix.

Writing Your First Test

ExUnit, Elixir's built-in testing framework, expects test files under test/ named with a _test.exs suffix; mix new already generated test/hello_world_test.exs alongside a test/test_helper.exs that calls ExUnit.start(). Inside the test module, use ExUnit.Case brings in the test/2 macro for defining individual test cases and the assert/1 macro for checking that an expression evaluates truthily, or that both sides of an == comparison are equal. Running mix test from the project root compiles the project and executes every test file, printing a dot for each passing test and a summary of how many tests ran and how many failed.

🏏

Cricket analogy: Writing an ExUnit test with assert is like a coach setting a specific fitness benchmark, say a 12-second sprint, that a player must hit, mix test is match day where every player's benchmark is checked automatically and a pass or fail report is issued.

elixir
# test/hello_world_test.exs
defmodule HelloWorldTest do
  use ExUnit.Case

  test "greet/1 returns a welcome message" do
    assert HelloWorld.greet("Ada") == "Hello, Ada! Welcome to Elixir."
  end
end
bash
$ mix test
.
Finished in 0.03 seconds
1 test, 0 failures

IO.puts/1 prints to standard output but always returns :ok, don't confuse a function whose job is printing with one whose job is returning a usable value. If you need the greeting string itself, to test it or send it elsewhere, write a function that returns the string, and let the caller decide whether to print it.

  • Elixir code can run as a standalone .exs script via elixir script.exs, with no compilation artifact left behind.
  • .ex files are meant for real project modules and are compiled to .beam bytecode.
  • defmodule defines a module; functions inside it are defined with def, public, or defp, private.
  • iex -S mix starts an interactive shell with your Mix project's modules already compiled and loaded.
  • ExUnit is Elixir's built-in testing framework; test files live in test/ and end in _test.exs.
  • assert is the primary macro used inside ExUnit tests to check that an expression evaluates as expected.
  • mix test compiles the project and runs the full ExUnit test suite, reporting pass and fail counts.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#ElixirStudyNotes#YourFirstElixirProgram#Elixir#Program#Writing#Standalone#StudyNotes#SkillVeris#ExamPrep

Frequently Asked Questions

21 categories · pick one to explore

Where can I get free study notes for programming and tech subjects?
SkillVeris offers completely free study notes covering programming and tech subjects, with no signup fees or paywalls. The notes are structured by course and topic, written for quick understanding, and enriched with the Learn Through Hobbies analogy method, so you can revise concepts through cricket, music, gaming, cooking and more.
Are SkillVeris study notes good for exam revision?
Yes, the study notes are designed for efficient revision: each topic answers its heading immediately, keeps explanations concise, and links to related glossary terms and cheat sheets. Students preparing for university exams or certification tests use them as quick revision notes because they distil concepts without the padding of full textbooks.
What subjects do the free study notes cover?
The study notes span the platform's main domains, including AI and machine learning, Python and programming, web development, DevOps, cloud, security and databases. Coverage mirrors the 37 live courses, so notes exist for the topics you are actually studying, and new note sets are added as courses launch.
How are SkillVeris study notes different from regular textbooks?
The notes are answer-first, concise and free, whereas textbooks are long and often expensive. Each section explains one concept directly, then reinforces it through selectable hobby analogies like cricket or cooking. Notes also cross-link to the glossary, blog and cheat sheets, letting you jump to related material instantly instead of flipping pages.
Can I use the developer study material without creating an account?
The study notes are free to access, and SkillVeris does not charge anything for its developer study material at any point. Browsing notes is straightforward from the Study Notes section, and if you want progress tracking, certificates and AI Mentor conversations tied to your learning, a free account unlocks those extras.
Do the study notes explain concepts with analogies?
Yes, this is a signature SkillVeris feature. Study notes use the Learn Through Hobbies method, explaining technical concepts through analogies from twelve domains including cricket, music, gaming, photography, travel, movies, fitness, chess, cooking, finance, business and sports. You can switch the analogy domain instantly to whichever hobby makes the concept click.
Are the revision notes suitable for last-minute exam preparation?
Yes, revision notes on SkillVeris work well for last-minute preparation because every section states the answer in its first sentences, so skimming is genuinely effective. Pair them with the relevant cheat sheet for formulas and syntax, and use the glossary for any unfamiliar term you meet while cramming.
Is there free study material for AI and machine learning?
Yes, SkillVeris provides free study notes across its AI and ML catalogue, covering Python for AI, deep learning frameworks like PyTorch and TensorFlow, Hugging Face Transformers, Large Language Models, RAG, AI agents and MLOps. All of it is free, making it a strong resource for Indian students and global learners alike.
Can beginners understand the study notes, or are they for experts?
Beginners can absolutely use them. The notes are written in plain language, define terms as they appear, and lean on hobby analogies to make abstract ideas concrete. Difficulty scales with the underlying course level, so beginner-course notes stay gentle while advanced-course notes go deeper, and the glossary supports you throughout.
How do study notes connect with SkillVeris courses?
Study notes are organised by course and topic, so they map directly to the structured courses and their 24–40-lesson curriculum. Many learners study a lesson first, then use the matching notes for revision before module assessments and the final exam, where 80 percent is required to pass and earn the certificate.
Are there study notes for Python specifically?
Yes, Python is well covered through notes tied to the Python-focused courses, including Python for AI and ML. Topics span fundamentals through applied machine learning usage. You can reinforce the notes with Python practice in Code Lab, which runs code in your browser with no installation required.
Do the study notes include code examples?
Yes, study notes include code examples wherever a concept is best shown in code, alongside explanations, key points and analogies. Reading a snippet in the notes and then reproducing it yourself in Code Lab is an effective loop, since Code Lab lets you run code in the browser across six languages.
How often is new study material added to SkillVeris?
Study material grows alongside the course catalogue. Whenever new courses join the platform's 37 live courses, matching study notes, glossary entries and cheat sheets are added so the resources stay in sync. Existing notes are also refined over time, so it is worth revisiting topics you studied earlier.
Can I use SkillVeris notes to prepare for technical interviews?
Yes, the notes make excellent interview revision because they compress each concept into direct, answer-first explanations, which mirrors how you should answer interview questions. Combine them with the SkillVeris interview questions feature, which includes readiness scoring, to test whether your revision has actually made you interview-ready.
Are the study notes mobile-friendly for studying on the go?
Yes, the study notes are built to load fast and read comfortably on mobile devices, so you can revise during a commute or between classes. Sections are short and answer-first, which suits small screens, and analogy switching works on mobile too, letting you study anywhere without carrying books.
What is the difference between study notes and cheat sheets?
Study notes explain concepts in depth with context, examples and analogies, making them ideal for learning and revision. Cheat sheets are compact quick-reference summaries of syntax, commands and key facts, ideal once you already understand a topic. Most learners study the notes first, then keep the cheat sheet handy while coding.
Do study notes help if I am stuck on a course lesson?
Yes, reading the matching study notes often clarifies a lesson because the same concept is explained from a different angle, frequently with a different analogy. If you are still stuck, ask the AI Mentor, which answers 24/7 at Quick, Detailed or Deep-dive depth until the idea genuinely makes sense.
Is there free study material for DevOps and cloud topics?
Yes, SkillVeris carries free study notes for DevOps and cloud topics as part of its coverage across 37 live courses. The material suits learners following the DevOps Engineer or Cloud Engineer paths, and it links to related glossary terms and cheat sheets so you can revise the whole toolchain in one place.
Can school or college students in India use these notes for projects?
Yes, students across India and worldwide use SkillVeris notes for coursework, projects and exam preparation, and everything is free, which matters for student budgets. The notes explain concepts clearly enough to cite in project reports, and Code Lab lets you prototype the project code directly in your browser.
How should I combine study notes with other SkillVeris resources?
A proven loop: learn from a course lesson, revise with the matching study notes, look up unfamiliar terms in the glossary, keep the cheat sheet open while practising in Code Lab, and quiz yourself with interview questions. The AI Mentor fills any remaining gaps 24/7, at whatever depth you need.

What Learners Say

Real journeys from the SkillVeris community — swipe for more.

SkillVeris taught me Python through Cricket. Now I’m building real projects and feeling confident!
Arjun S. · B.Tech Student
The best platform for hobby-based learning. Concepts finally stick.
Priya R. · Data Analyst
I went from zero coding to a portfolio of projects — all by learning through my love for gaming. Landed my first internship!
Kabir M. · CS Undergraduate
Trending Topics50 popular tags — tap to explore
Trending CoursesAll 37 free courses — tap to browse