Best learning resources for a new programmer


I run a language learning blog and would like to learn how to code so I can create an app to help English speakers learn French.

I know HTML and CSS as well as some basic JavaScript. I frequently use my CSS/HTML/skills to improve my blog but don’t know much about programming otherwise.

I’m currently 70% through Michael Hartl’s Rails Tutorial and want to finish it because it’s working great as an intro to programming.

But I’m considering switching to Elixir once I’m done with the rails course because I find it much more exciting than rails.

I finished Joy of Elixir a while ago and found Elixir really fun and logical. I also did half of the pragmatic Studio course. I also find the Elixir documentation amazing and way easier to understand than the Rails’ documentation.

But I’m not sure what to do next. I learn best by doing but I also need some guidance so I don’t pick up horrible coding habits along the way.

I’m considering the followings books because they seem the best suited for someone new to programming.

  • Learn functional programming with Elixir
  • Phoenix in action

My main worry is that they haven’t been updated in a while. I’m also considering Elixir in Action and Programming Elixir but am worried they may be too advanced for me.

I’m also considering this course:

My goal would be to follow along the courses and books and also build my app in parallel to get some practice.

Would you recommend this course of action ? Are these resources the best choice for a beginner or would you recommend something else ?



If you already have done Elixir from other sources and you fill you are grasping the syntax, then you can go ahead and buy the book. To me was the only book that clicked to make the transition from Object Orientated code to Functional Programming.

You may also want to see the Elixir for Programmers video course from the same author:

You may enjoy more doing the video course, but only do it if you are already comfortable with the basics of Elixir. No need to know about OTP and all the advanced stuff, because the book will teach you that.

Got for it after you have done one of the above :slight_smile:

1 Like

Hello and welcome,

Learning Rails will teach You a lot about MVC pattern. Those are knowledge You can port them to Phoenix, because it’s similar.

Except for the language, the main difference is Ruby use Object Oriented Programming, Elixir Functional Programming.

It’s like night and day…

Yes fun, like fun in functional.

If You are new to programming, your plan is very suited. Maybe You might learn the latest Phoenix, because it brings new concept to the table, liveview in particular.

There are free introductions

Some free at

and book also, if You prefer to read.

I need the opposite, french to english :slight_smile:


Years ago as a beginner I also started with Michael Hartl’s excellent Rails Tutorial. After finishing it and finding out about Elixir (which like you I found much more exciting and easier to understand than Rails), I read Programming Elixir followed by Programming Phoenix. I then reimplemented the Rails Tutorial using Phoenix instead. It was pretty straightforward… Ecto vs ActiveRecord was the biggest difference to learn at that point. Nowadays there are very good Ecto books available. I thought that was a great path to get started learning a standard server-side MVC-based webapp with very little JS.

Which Pragmatic Studio course did you do? They have excellent courses on Elixir, Phoenix, LiveView, SPAs with Vue/Elm/React coupled with choice of Phoenix backend (REST, channels, and Absinthe GraphQL). The amount of material and complexity can be staggering!

After exploring all of these I have simplified life (as a resource constrained solo developer) by limiting JS and just doing LiveView (PETAL stack). For this the new Pragmatic Studio LiveView course is outstanding!


Thanks for your replies :).

I think I will go with Programming Elixir and Programming Phoenix and try to recreate the Rails Tutorial app like @tme_317 suggests.

@tme_317 I did the Developing with Elixir/OTP course. I didn’t find it too difficult but stopped when they started talking about testing because I realized I lacked a basic knowledge of things like Git, command line and testing. That’s why I went with the Rails Tutorial courses first. I also want to work as a solo dev so the path you describe sounds like a great fit :).


The best is that you try by using git in an online environment:

More resources:

1 Like

Glad to help… that is definitely the path that worked great for me. Everyone learns differently of course.

I will say I spent a lot of time mired in SPA/JS complexity land before Chris released LiveView… probably would have saved a whole year if he released it sooner! :slight_smile:

Some of those basic things like Git, command line, text editor, etc are also addressed very well for beginners by Michael Hartl in his “Learn Enough” series… although I am sure you can find tons of material online everywhere also.

1 Like

Yeah the SPA/JS complexity is exactly what I want to avoid as a solo dev.

Thanks. I actually did the Learn Enough Git and Learn Enough Command Line and Learn Enough Text Editor courses as well so I feel like I know enough on these topics to get started.


Excuse the aside, but how has this worked out for you in practise (ie. being productive with Elixir as a solo dev)? I ask because it’s my motive for starting to learn - I’m an experienced developer with some solo web/saas projects in mind, and Elixir/Phoenix/LiveView seems (this far, 2nd week of experimenting) quite promising.

1 Like

Your programming journey is very similar to mine. Html, css, sass, rails, ruby, elixir, phoenix, erlang, javascript, jquery, react, nodejs, react-native etc… many specific tools and languages. For a new programmer language specific tutorials or books are like a trap.
My advice is learn how to design code before everything. Clean Code - Robert Martin is a good book for that.
This is a good article to read.


The Clean Code Book references a lot the first edition of the Pragamatic Programmer book, thus I would recommend to first read the Pragmatic Programmer Book, and they have now an updated version:

Both books changed my life as a Developer, therefore I also subscribe that it’s a MUST read for developers of any seniority level.

Also in my Todo list is:

Funny enough or not I was already using this type of architecture and I named it Resource Design Pattern, and even started a repo with the principles of it, but never finished it. A colleague of work would call it Resource Action Pattern each time it was referencing a project were I used it :slight_smile:

This article does a good job of explain it:

Better then the Uncle Bob own article:

The main difference to my architecture pattern is that I also split each entity by action:

Screenshot from 2021-04-29 08-15-46

1 Like

In my opinion no one should be a developer without reading at least the Pragmatic Programmer Book :slight_smile:

Yes, in practice everything has been so much faster using LV rather than the SPA I was writing at the time… it was a major reason Chris wrote LV in the first place as he talks about in the excellent video at ElixirConf 2018 when he introduced it to the world!

I remember the same week I watched his conference speech I dealt with a very simple requirement to break full_name into first_name and last_name fields… and I realized how many times in my app first_name or firstName was defined from the DB/migration, schema, context, absinthe schema and mutation, apollo, react component tree, tests, etc… so much of it was plumbing data from the backend to the frontend. By keeping the data/schemas/validation logic all server-side it is MUCH faster for me to deal with changes like this without having to touch a dozen files.

This video from the Rails ecosystem also resounded with me… especially when Sam says “Guess what? You’re not Google. You’re not Facebook”. As a solo we don’t have massive teams of specialists… frontend, backend, db, devops, etc. LiveView is such a major win for us optimizing speed to market and lessening complexity!


Nice. I will dive into LiveView once I’ve got through the Phoenix basics. The Phoenix/LiveView combo played a big role in motivating me to start exploring Elixir last week. The language itself strikes me as easy to learn - it’s surprisingly small and a few hours reading and playing has been enough to make it feel like a comfortable fit. I am fairly familiar with functional programming, which helps I think. The whole OTP thing is another matter of course.

1 Like