Kielo

Kielo

Best learning resources for a new programmer

Hi,

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 ?

Thanks

Most Liked

tme_317

tme_317

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!

kokolegorille

kokolegorille

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:

dokuzbir

dokuzbir

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.

tme_317

tme_317

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!

Kielo

Kielo

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 :).

Where Next?

Popular in Chat/Questions Top

maz
I’m getting this error: ## ** (Ecto.Query.CompileError) Tuples can only be used in comparisons with literal tuples of the same size fro...
New
sadcad
I love the Phoenix and Elixir docs, but I always tend to learn faster when I watch a video of someone explaining things and then I implem...
New
Yoga
Or at least, in the works? All I can find are bits and pieces but not a single project from start to finish. Including things like i18n,...
New
eliottramirez
Hello, I’m trying to learn Phoenix but I constantly find difficult understanding how the framework works, and I think part of this is th...
New
New
Fl4m3Ph03n1x
Background Hello all! So after my controversial introduction with Learning Elixir, frst impressions ( plz don’t kill me ! ) - I saw a ton...
New
miguelsrrobo
hi i was wondering if it is necessary to learn erlang to learn elixir
New
pillaiindu
I am a VSCode and Sublime user and I know VIM, though I don't use VIM directly but whenever I code inside Sublime or VSCode, I use Vim em...
New
Kielo
Hi, 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 ...
New
shansiddiqui94
Greetings Elixir Developers, My name is Daniel, and I am taking my first step to learn all about the Elixir language. Currently I have a...
New

Other popular topics Top

dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New

We're in Beta

About us Mission Statement