Elixir for an absolute beginner?

agreed, all true - JS is a must have if looking for a job is a goal. Though I consider JS (despite being in interesting language with all the prototype based stuff) is not at all good as the very first language. By learning it one learns it, that’s all. Also youth competition was a consideration and the fact that you only need one language to rule them all (unique case for web development) attracts many inexperienced developers that pollute MEAN stack and will probably shape its future for some time now, so there is also that :slight_smile:

As @andre1sk said you’ll have to learn JavaScript if you want to do anything remotely web related, but I’d strongly suggest learning the basics of any other language first.

Something that in a way connects to Elixir would be Ruby, its syntax inspired Elixir and it’s all in all a nice OOP language in my opinion. But maybe consider a totally “disconnected” language and spend just few days to write some “hello world” stuff with it - Python is pretty neat and beginner friendly, would be as good place to start as any.

TL;DR you’ll have to learn JavaScript anyway but before diving into that consider learning the basics of another language, Ruby or Python are both good candidates.

1 Like

Hey @Ivo_N. I’m a person that didn’t have much of a programming background and jumped into Elixir. I knew a bit of Javascript though and some basic programming concepts so I had a leg up. Even with that though it’s not been the easiest and still not! haha. But I’m plugging away.

There are a lot more resources for true beginners like yourself in the Javascript ecosystem. In my opinion Elixir is a difficult ecosystem for true beginners to get started in because to my knowledge there aren’t any quality resources in Elixir for the true beginner.

What I mean is that the resources that are out there will not hold your hand and explain the most basic of concepts that you need to know in order to understand what’s being talked about.

Almost all the resources mentioned here assume a certain base level knowledge of programming that you will likely don’t have and will find frustrating because you’ll be trying to track down the prerequisite knowledge which itself will be difficult because you don’t have the fundamentals down. You don’t know what you don’t know basically.

Anyway sounds like you’re wanting to do stuff on the web and you need to start with HTML/CSS to do that anyway. And once you finish that you’ll need to learn Javascript. Even doing Elixir you won’t get away from JS.

Derek Sivers gives some really great advice here on his site about how to get started.


I’ll also echo his recommendation of Free Code Camp. I know of no other better resource online, paid or otherwise. It’ll take you from the absolute basics all the way to working on the backend with Node. Complete the whole thing and you’ll be a very capable Jr. dev. Then loop back around and learn Elixir.

5 Likes

As a said before. Python. Both books i gave you are really good for the basics. Once you got control flow and functions, variable etc you can try to have a look at elixir school or “Getting Started”. And feel free to ask any question about the tutorial you are following :slight_smile:

2 Likes

At the moment I am watching the free javascript course that @gpd and @brettwise have suggested, i started today with JS I can follow the course good but sometimes I need rewind, freeze and google it to make sure if I get the message :P.

And I am following the youtube channel that @Mandemus has suggested (it’s makes me understand somethings easier).

As for Ruby or Python, the books that @DianaOlympos suggested where not available in my local library… shame on them!! But maybe I need focus on JS first and makes the next step easier. (both have lots of job opportunities here in the Netherlands - Ruby has more web development vacancies from beginner to expert and Python its mix of web and engineering but lots of them you need to have a specific background).

I found 2 courses on Udemy
https://www.udemy.com/the-python-bible/learn/v4/overview

The one that @reddhouse posted, I have contacted the Stephen and suggested me not stay away from Elixir but learn some the basic JS, it will make the course easier to understand…

Decisions decisions… Python, Ruby or master JS and jump in at the deep end (Elixir).

1 Like

Personally I would just read some quick intros on JS and html/css because JS is not a nice language and html/css are very easy to pick up.

My favourite introduction to programming is Learn to Program by Chris Pine, however it is about OOP - I would love to write something like that but for Elixir (which is a functional language) one day :003:

Here’s what I wrote about it in a blog post:

If you are new to programming, or OOP (object orientated programming) then we’re going to start with the wonderful Learn To Program by Chris Pine. You can read it FREE online, or you can buy a book (that includes answers) from pragprog.com

Learn To Program is a lovely introduction to programming (and OOP) and luckily for us, just so happens to be in Ruby! It also makes you realise you don’t have to be Einstein to be a programmer – I really like how Chris makes the reader feel like anyone can learn, not just the super smart or the super geeky.

This book is essential if you’re new to either programming or OOP, but highly recommended for any relative newcomer – read it just as a motivator if nothing else. It’s short and sweet, and helps you lose the “I don’t think I’ve got a programmer’s brain” mindset as well.

While the recommendations are solid they totally ignore the existence of Kyle Simpson’s more comprehensive “You don’t know JS” approach to learning JavaScript:

Honourable mention:

I keep being puzzled about some of the “first” programming language recommendations. It seems that most recommendations are based on the on the assumption that the “first” language should be familiar/easy to learn to get the learner “programming” as soon as possible with a minimum amount of frustration regardless of the constrained mindset that it may initially create. I view this as a “save now, pay later” approach as it will later be necessary to “undo” many parts of the early mindset as other language skills are being acquired.

The “first” language is an opportunity to build a solid foundation where upon to build further skills later, which is why this still remains my “first” programming language recommendation.

I’m a bit dubious about learning Ruby before Elixir. My personal experience was that I could never warm up to Ruby’s syntax - I’ve had no such issues which Elixir.

2 Likes

@peerreynders, thanks for all the links, i need more coffee… I have recieved so many suggestion I have no idea where to start now :stuck_out_tongue:

[quote=“AstonJ, post:33, topic:2266”]
– I really like how Chris makes the reader feel like anyone can learn, not just the super smart or the super geeky.[/quote]

This made me happy, although I never saw programmers as geeks but as super wiz-kids (the things they can do with their brains is awesome).

1 Like

My own humble recommendation…HTML/CSS->Javascript->ELM.
Elm is a functional language designed for front end development that outputs
Javascript. Meaning all the stuff you learn about HTML and Javascript you can
build on in ELM. The principles of functional programming in ELM will apply to
Elixir, knowing all 4 (HTML,Javascript,ELM,Elixir) will make you a full stack web
developer over time. ELM is a very gentle introduction to applied functional programming
and is growing in popularity.
One of the best places to learn Javascript is the Mozilla Development Network
https://developer.mozilla.org/en-US/ includes courses on html, css and javascript for free,
you can use Firefox or Chrome or even the new MS Edge.

2 Likes

I would not call them the best material for beginners plus some of them are very verbose as Kyle tried to stretch a fairly small topic to fill the book :). Plus some of the advice is less then practical as actual JS engines such as V8 are optimised for “classic” OOP style code (minus inheritance :slight_smile:) vs “semtic” JS that Kyle advocates.

Your criticisms sound more like those from an experienced developer. Lots of beginners prefer verbose and possibly even repetitive because they “need to get their eye in”. Also optimization with respect to particular run-time implementations seems outside the scope of a beginner’s objectives (possibly even ill-advised; at times it does make sense to at least initially gloss over some details (and/or temporarily obscure the absolute truth) in order to emphasize core concepts).

I think really the biggest issue is whether JavaScript is suitable as a first language - my personal opinion is that it is less than ideal but there are other opinions. In terms of “beginner-friendly” JavaScript books, I’ve come across many recommendations for Eloquent JavaScript; others like the Head First way of doing things - I have used neither but I’m not the target audience and I suspect that they are far from comprehensive. In any case, everybody’s mileage will vary.

2 Likes

Specifically V8 (and most JS JITs) are optimized for structures that stay the same shape.

1 Like

Yep but even in trivial minutia like new Blah() is orders of magnitude faster than Object.create

1 Like

And that is specifically because new Blah() will always take in the same shape (specifically nothing) and return something that is always the same shape (specifically whatever it is… if programmed well). Object.create can take in varying shapes of input and can output different shapes as well, makes it extremely difficult to impossible to optimize. Like I said, it is all about the shapes. :wink:

1 Like

You are again right :slight_smile: for anyone who cares about details
http://mrale.ph/blog/2014/07/30/constructor-vs-objectcreate.html by Vyacheslav Egorov
BTW. Sorry for taking this discussion offtopic

1 Like

Useful article! This was the first result from Googling “Javascript V8 shape” for me and it seems to go in to more detail if anyone is curious, plus pictures. ^.^
http://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html

1 Like

Vyacheslav Egorov has a lot of videos on V8 internals as he was one of V8 devs

1 Like

Thank you guys, don’t think I have abandoned the forum, busy with lots of things, it’s quite hard.

Offtopic V8 JS is it the same thing or what is it (maybe a stupid question :P).

V8 is just Google Chrome’s Javascript engine open-sourced years ago, one of the highest performing ones out (although Edge’s is closing!). It is used as a javascripting scripting engine in a lot of things, including Node itself. :slight_smile:

1 Like

Thanks for the explanation, Seems that Node.js with Meteor has also a bright future (although most people are not the biggest fast of JS).

I somehow I doubt Meteor has a very bright future :smile: Consultants that will be porting Meteor projects to something else will likely make a killing though :slight_smile: