Nopp

Nopp

Completely new to programming and Elixir

Hey guys and girls,

i am completely “new” to programming, recently played a bit with Python, Ruby and PureBasic, but i want to try something different (PureBasic was a lot different too, though…), so i came across different slant suggestions for Elixir and i want to give it a try.

I am a system administrator and have a small startup myself located in germany, so please beware that my english will have some errors :slight_smile:
In the future i want to be able to offer more than just System administration and consulting in this topics.
I want to have the knowledge to build “small” or even bigger (web-)applications myself or in a small team and i think Elixir as the backend can help me with that.

My questions are:

  1. What yould you think is the best way to get me started through funtcional programming and Elixir as the language?
  2. Regarding Elixir itself: How can i imagine that Elixir need to have BEAM installed? Is this like the Java Runtime Environment most clients have installed?
    So if i have a client Software written in Elixir, the client has to install BEAM with it?
    And if i have a Webapplication the webserver has to run BEAM i suppose?

I hope i made everything clear!
Greetings from germany,

Nopp

Most Liked

leifericf

leifericf

Hi, @Nopp and welcome to the community!

I won’t be able to give you a specific answer for your questions about learning functional programming in general and your questions about BEAM, but I can share some of my thoughts on learning Elixir.

My approach to learning Elixir has been to read books and do practical exercises. I can recommend Programming Elixir and Programming Phoenix to get a flying start.

If you are completely new to programming (depending on your current level), you might want to check out Learn Functional Programming with Elixir before you move on to Programming Elixir. I have not read this book myself, so I cannot personally vouch for it, but I have heard good things about it.

Since The Pragmatic Bookshelf is one of our community sponsors, you can get a generous 35% discount on those books and others by using the coupon code: ElixirForum

I also listen to these three podcasts: ElixirTalk, Elixir Outlaws and Elixir Mix. I have found that listening to experienced developers talk about their way of thinking when solving problems is very beneficial to my learning process, as it help me to “think like an Elixir developer.”

Other than that, I like to share my thoughts and experiments on this forum to get feedback.

Different people learn more effectively by different methods, so I’m not sure whether this approach would work for you. This is just my preferred approach to learning.

stefanchrobot

stefanchrobot

Welcome to Elixir! :smiley:

  1. I’d suggest you go through Elixir for Programmers or Programming Elixir. The latter has a lot of exercises which is a great thing to do if your programming experience is limited. After that, I’d suggest Elixir in Action to understand the power of BEAM.
  2. Yes, BEAM is the VM required for Elixir (Elixir+BEAM is like Scala+JVM, just better!). When you’re going to release your software, you’d probably use something like Distillery that will package BEAM and your code as one deployment unit. Or you might want to use PaaS like Gigalixir where everything is taken care for you.
benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Hey @Nopp welcome!

Let me see if I can address your questions:

  1. I personally feel like https://pragprog.com/book/elixir/programming-elixir is the best introduction to the language for folks who are newer to programming. It has a very gentle learning curve, and has lots of little examples to work with.

  2. The vast majority of programs written in Elixir / Erlang run on something like a server, they are not generally programs that people install and run on their individual computers. That said, there are basically two ways you can run Elixir programs: compiled and run on the same computer, and as a packaged release.

  • Compiled / Run in the same computer: For development work, you’ll want to have erlang and Elixir installed on your computer in full so that you can compile and run the code that you write. Personally I’m a fan of using https://github.com/asdf-vm/asdf to get these installed.

  • As a release: Once you’ve got a working program you can build what’s called a release. A release is a self contained package that includes your compiled code AND the BEAM. This means that if you go put this on your server you can execute it even if the server does not have the BEAM installed at all! Here’s the catch: The operating system that you run the package on needs to match the operating system it was built on.

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Elixir is a fantastic backend for really any language. It’s been the case for a while now that the clients and servers use some sort of standard API to communicate, so you can pair basically any language on the client side and any language on the server side, it doesn’t much matter.

These are languages that run on the client side actually. They’re run in the web browser and talk back to the server, they aren’t languages that run serverside.

That’s probably it’s most common use case. Erlang (also on the BEAM) is perhaps best known for being a control layer in telecommunication systems. It’s also the language used to power the chat service WhatsApp which has over a billion users.

Nopp

Nopp

@stefanchrobot Thanks for your answer. In my excitement i directly purchased this course: The Complete Elixir and Phoenix Bootcamp (Udemy/self-published) without any knowledge of it, besides the ratings.
I hope it’s good. The price is way down than normal, so…

Thanks for your answers. I have to read a lot through the Elixir related stuff, like Distillery, Gigalixir etc.

Where Next?

Popular in Chat/Questions Top

meraj_enigma
Hey, What’s a good resource to learn Microservices in Elixir/Phoenix? Is there any book/docs/Github repos that I can refer to? Thanks, -M
New
OmanF
In the attached screenshot (taken from an exercise in “Programming Elixir”) can be shown that BugReport is defined as a struct that, itse...
New
markdev
What are the best beginner resources for learning Elixir and OTP (not Phoenix) in 2018?
New
InkFlo
Hi everyone, This year I’m graduated from Bachelor Degree (in computer science) from France (not really a bachelor, the exact term is “L...
New
asfand
I already created an Elixir Phoenix app for learning purpose. In this app students of our collage will create profiles, and will chat wit...
New
makeitrein
More Ecto questions! More madness! The context: there’s a list of books that I want to filter with a dropdown… The dropdown: looks some...
New
Nvim
Anybody know of a Pragmatic Studio 40% off coupon code for video course like Phoenix?
New
lgmfred
Hello, I want to get started with elixir today. Having learnt the basics of Erlang (my first ever language) and seen what it’s can do, I’...
New
dogweather
Can anyone recommend books/courses/videos that use real-world Elixir? E.g.: Idiomatic error handling design, whether it’s {ok/error, .....
New
Fl4m3Ph03n1x
Background Hey guys, recently I bought a book on TDD that I am reading. The books is really nice and has some really juicy things on arch...
New

Other popular topics Top

yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New

We're in Beta

About us Mission Statement