Should I learn Elixir to get work as a freelancer?

Hello everybody.
Please somebody for advice.
Because I live on Asian Country where Elxir isn’t still popular than Javascript . Should I learn Elixir now to get work on freelancer and wait…

Thank you very much

1 Like

If all you’re looking for is work in it, I wouldn’t recommend learning any other programming language than maybe whatever is top 3 at the moment. You’re not very likely to get a return on that investment anytime soon and from a opportunity cost perspective you’re on the losing side.

From the perspective of learning how to think differently with regards to building long-running systems and thinking much more deeply about system health I think it’s in most people’s interest to learn a BEAM language.

3 Likes

I really like Elixir Because I learned Javascript NodeJS but feel It isn’t better Elixir .

If you like it a lot, learn it. Don’t make it a business decision. If you can’t learn programming languages only because they’re fun to use/learn I don’t think you’ll have a very good time. Most popular languages are terrible and all fit into the same mold, so only using those will almost certainly guarantee that a programmer has a very narrow skill set and a much harder time adapting to new requirements.

https://twitter.com/dhh/status/962422983242461185?lang=en

On the surface this tweet looks very reasonable, but note that DHH really only put one language (Smalltalk) in there that’s even remotely different than the other ones.

It sounds silly, but don’t be DHH: See a few different sides of programming if only to expand your horizons a bit.

Edit: It’s not my intention to say that everyone who hasn’t covered the whole spectrum of programming paradigms is somehow less worthy than everyone else, but let’s not pretend that these are somehow radically different languages. They are mostly the same and won’t provide any radical changes in thinking between them.

1 Like

But meaning It can help apply a work on website such as upwork or freelancer to live I don’t learn it to business .

Depending on what kind of jobs you get you can actually use the stack of your choice to get the job done. If your client only cares about the result you can implement in Elixir anything you’d do with NodeJS. If you want the tech you can give a discount for using your preferred stack.

In general I’m with @gon782 though, from a business perspective you’re better off with a mainstream language. Also you kinda have to know the mainstream ones to at least be able to tell what is that that Elixir does better :slight_smile:

Learn only if you like it. If you don’t want to be a maintenance developer you can bet on new languages like elixir, rust and other. For example in my country, Romania, is full of PHP, ASP.NET and Java projects at outsourcing companies. Right now I work mainly with PHP 7.2 because all projects are done with PHP. Nobody cares here about new technologies because is still working but will come a time when maintenance will cost more than developing new apps with new programming languages. I have around 1 year since I work with Elixir in my spare time and all my personal projects are done with elixir and if I have to choose again definitely i choose Elixir. I hope to find an elixir remote job next year :slight_smile:

That being said identifying synergies could be helpful - for example:

  • Go after functional, sequential Elixir first to keep things simple - with something like Learn Functional Programming with Elixir.
  • Reinforce the functional concepts being learned with either Bucklescript or ReasonML (if you have an affinity for React you’ll likely gravitate towards ReasonReact; both can be used within the JS ecosystem and introduce you to the benefits of strong static typing. And even if you can’t use them directly they will likely improve your JS development style).

I think it’s probably easier to grasp the basic functional concepts with Elixir as it isn’t explicitly typed. And once you understand these concepts, Bucklescript or ReasonML are a great way to get also into static typing that can be applied to the JS ecosystem (in my opinion superior to TypeScript and Flow). Meanwhile having already learned sequential programming in Elixir, you’ll be prepared to move into (and focus on) concurrent programming which will require another shift in thinking.

The idea is that your exploration can always be structured to fortify your existing skillset while at the same time bridges into the other paradigms are built.

2 Likes

If you want to learn Elixir to do freelance jobs, then no, the amount of work you will find right now for Elixir is less than JS, simply because of popularity.

“But I can’t stand working on more JS/Java/PHP I want to learn new stuff!”

Well then take a spare time to learn the fundamentals of Elixir and Erlang as a platform, such as
recursion, pure functions, currying. Most of standard library operations can be performed on Node.js, such as the functions, map, each, flat_map. Turns out that JS is so dynamic that you can apply what you learn with Elixir on it.
But don’t stop taking jobs with Node, it will pay the bills while you learn new stuff and apply them on your job (it might even get your job easier, goodbye global variables and hoisting). In the future it will pays off because you already know the core ideas behind, you just need to map syntax to use it.

Unless you get to decide about the technology, it’s unlikely that you’ll be able to find a freelancing job in Elixir. You’d be better off with JavaScript (frontend with React or backend with Node) or Ruby. That’s what it is from my experience when looking around for a job.

If your main concern is to work in Elixir, then I’d suggest going with Ruby/Rails. That’s the most common path that I’ve seen: Rails projects adopting Elixir.

What kinds of projects are you targeting? It’s pretty hard to do any web dev. without knowing JS. So if you are looking for gigs as a web developer you still need to learn JS. Also I really like Elixir but I don’t think it’s use will ever be as widespread as JS is now so it’s a poor benchmark to compare against.

The way some people talk ruby and python are completely different! (Oh the flame wars over languages!) I get the impression that the culture is probably more different than the language. I agree they are similar at the big picture level, though quite different in detail.

On the other side, elixir reminds me of Prolog (from when I used it last century), but I havn’t seen anyone else make the comparison, so that may be a case where I think they are similar and everyone disagrees.

Likely because those people haven’t had a broad enough exposure yet to realize that “Syntax Is Irrelevant”.

but I havn’t seen anyone else make the comparison, so that may be a case where I think they are similar and everyone disagrees.

  • Not that many people have had exposure to Prolog to make the connection.
  • Prolog strongly influenced Erlang (the first version was implemented in Prolog) which shines through in Elixir’s pattern matching - at which point the relation stops being remarkable.
2 Likes

Thanks for the link - I kept thinking “this is sooo familiar” (to prolog) but noticed no one was saying so, so was starting to wonder if prolog was like the relative no one mentions :wink:

@reactjs1711: No matter how much popular is Elixir in your country. On forum there are always at least some offers to work remotely. I did not had a problem with find any and it’s how (as freelancer) I have started. If you see a value in this language then go for it.

2 Likes