Is elixir good for beginner programmer?

Hear hear, that is why I am a huge proponent of people learning a low-level assembler (old Motorola or so, not necessarily a nasty one like x86), as well as LISP. Both of those prepare you for both understanding how the CPU works and high level concepts (every high level concept if you learn LISP well).

4 Likes

I’m afraid I have been spoiled. :frowning: I will not name by which language. :slight_smile:
But Peer’s quote reminds me of Edsger Dijkstra:
“It is not only the violin that shapes the violinist, we are all shaped by the tools we train ourselves to use, and in this respect programming languages have a devious influence: they shape our thinking habits. This circumstance makes the choice of first programming language so important.” (https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html)

4 Likes

I think Elixir is approachable for beginner programmers. However, my impression is that most of available resources (including my own book) are targeting experienced programmers. A suitable beginners book might be Introducing Elixir. I didn’t read it myself, but from what I’ve heard, it’s a very gentle introduction to Elixir, so it might be a good place to start.

1 Like

I’d encourage you to use a site like http://exercism.io and work through some of the basic problems in Elixir and then do the JavaScript version. Maybe switch it up and do a problem in JavaScript first and then the Elixir version and so-on. Heck, try one problem in Python and compare to your solution in Elixir.

But back to your question - JavaScript is a big world. I think it is very important to know JavaScript, but the question is in regards to the context. With the large client-side JS frameworks today like Angular, React/Redux, Ember, and so-on - that blurs things a bit versus just knowing JavaScript. And then you have Node, which can be used for tooling or building systems… lots of ground to cover. I guess it really depends on what kind of work you do or are pursuing. I work with JavaScript on a regular basis and at one point was the lead on a client-side framework team for a large product, so I’ve been 100% in JS land at times in my career.

If you’re simply learning for fun or to become a better programmer, I do believe learning the basics of Elixir and how to think functional will help you in almost every other language you encounter. You can write functional code in other languages or use some other functional language altogether, but I feel the Elixir syntax is very approachable and can help you get started quickly.

At the end of the day, I’d not approach it like one language versus another. I love Elixir, so obviously take my suggestions with a grain of salt - but I’d focus on the basics of the language to start. How to handle iterating over a list of data. Learn the Enum module. Learn about Maps. See how that compares to other languages and their core libraries. Basically just get in there and get dirty. After that, learn the more Elixir-specific stuff if you want - OTP related things, Phoenix, etc. But I would stay away from all of that if you’re just beginning.

3 Likes

It all depends if you only had time to learn only one language, than JavaScript let’s you write, desktop(electron etc.), mobile (Rect Native, Ionic etc.), web front end and backend apps. Elixir is so much nicer though and a lot of people make a very valid point about first language shaping your thinking so in that regard Elixir is a good option.

It should be noted that Études for Elixir (O’Reilly) are the companion exercises to the book (see also When learning, what order of books did you start with? and Which Elixir books have you got/read?). Also note the a 2nd edition is slated for November - though I don’t think that is a good enough reason to put off getting started with the first edition :slight_smile:.

If you want to learn something interesting you can try

This XSeries presents a programming method that will enable you to produce well-structured programs — programs that tell a clear story about what they do, are well tested, and are easy for others to improve. This series differs from other online programming courses by focusing on a general design method, rather than how to program in a specific language.

Thank you for your recommendations. I am thinking to buy Programming Elixir 1.3 and Introduction To Elixir 2nd.

And for getting better with JavaScript I’d recommend http://eloquentjavascript.net/, https://leanpub.com/javascriptallongesix/read, and https://github.com/getify/You-Dont-Know-JS. I wouldn’t necessarily recommend reading all of those in sequence, but mix and match. I listed them in order of approximate difficulty.

I think both of these books cover the same stuff. Better buy one of the two and the Phoenix book.
What I did is after reading Programming Elixir, I went through the guides on http://elixir-lang.org/ to refresh what I learned, and it turned out perfectly!!

If you want to buy 2 books for Elixir I would recommend one of the introductory and then Elixir in Action.

1 Like

Although many people have already answered in this topic, I want to offer my two cents, as I am of the opinion that JavaScript is a really bad language to start out with.

I think Elixir is a really wonderful language to start out in, because when you start out, you don’t have any patterns that you need to unlearn. Many people that come from other contexts (especially non-functional ones), face this when starting with Elixir. (Although it is a lot easier to migrate to Elixir than, say, Haskell).

The main argument in favou of JavaScript I’ve heard so far is based on bandwagoning (i.e. ‘learn it because everyone uses it’), which is an argument that hampers innovation. Javascript itself is (arguably) a terrible language (to start out in), because it has many peculiarities that only exist for historical reasons; It is very easy to write incomprehensible, unmaintainable and/or unsafe code in JS.

I think it is better to learn programming in an environment that actively points you to a way of writing understandable and maintainable code, because once you’re used to doing this, you will carry that over to other languages, including the ones that might otherwise seduce you to write in an unmaintainable way.

2 Likes

Agree with everything you said except for recommending Programming Elixir. Programming Elixir is not beginner friendly. Introducing Elixir may be a good starting point before jumping into Programming Elixir.

2 Likes

yep )

i’d agree with this
i’m a newbie for myself (half a year online courses and half a year working as RoR junior developer)
and i agree completely that Programming Elixir is not the book for a beginner… i started with it, but after about 30% of the book i just can’t move forward and switched to Introducing Elixir, which is much easier…
now i’m back to Programming Elixir

in my opinion this book is for experienced programmer learning new language, not for a student learning programming from zero (even not for learning with some small experience in programming)

2 Likes

I can definitely see your and @max-underthesun point. I have not read Introducing Elixir and though it would be about the same. Thanks for pointing it out.

1 Like

You mentioned that you are an ROR programmer. Does knowing Ruby and ROR first help you learn Elixir?

Any way, thanks for the suggestion, I will read Introducing Elixir first.

i’d say it helps and it making it more difficult simultaneously ))

it helps because a lot of things about programming you already understand and not just understand like theory, but you know exactly why you may need this function or this “way of doing” (pattern) in development…

and on the other hand, like people already pointed here “your first language has an incredible impact on how you think about programming”… and it can be a real pain sometimes to understand concepts of a new language, especially if your first is from another programming paradigm

in my case Ruby is a kind of language you can start programming without any knowledge of “any real programming stuff” :slight_smile:… all you have to do is to learn some syntax and use some common logic…

Elixir seems to me more “mathematical” and more “programmatical”… especially if you are starting from Programming Elixir, not from Introducing Elixir :wink: (and this is exactly what i was looking for)

1 Like

The 2nd edition is available as an Early Release right now: Introducing Elixir 2e - O’Reilly Media

Do you know if they do free upgrades like Pragprog? I have the first edition but still haven’t got around to reading it :icon_redface:

I’m in the same boat. There used to be an option on your account to upgrade to the newest edition @ 50% discount but I haven’t seen that for some time. I’ll probably monitor and post if it becomes a “deal of the day” or another relevant 50% sale comes along.
That being said as “member” (i.e. account holder) there is the buy 1 ebook, get 1 free; buy 2 ebooks, get 2 free; buy 3 ebooks, get 3 free; and so on… code - in case you are buying anything else.

1 Like

Wonder if one of us could email them to ask?

It’s one of the reasons I stick with Pragprog as they are brilliant when it comes to updates. Manning do as well sometimes but not always from what I remember.