Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Alekseyio's avatar

Is it me or Laravel is really hard to tame for beginners?

I come from the frontend world. For the most part I've been doing HTML/CSS/JS. I'm definitely an advanced frontend dev thus I can explain almost everything when it comes to the technologies listed above. How browser reads an HTML file, how CSS and CSSOM work under the hood, how 'this' keyword is defined in javascript, prototypal inheritance, closures, functional programming etc. It was really easy for me to understand all these concepts and then I tried Laravel...

Now, I thought that it's the right time to get hands dirty with backend side and I've spent quite a bit using just PHP without any frameworks or packages from the community. It was ok, I mean, PHP is probably the one language that is easy to pickup and hard to master (IMO). When I got bored of doing routing and all that stuff every single time I needed to make a new web app I understood that it's better to learn a framework that does all that stuff for me so I started learning Laravel.

First, the documentation is... well, it's awful (at least for me). I remember time when I started learning React and it's documentation was excellent. It's an actual "Quick start" that shows you the main concepts via an example. Laravel documentation and "Quick start" is more of an "API reference" rather than a documentation. For beginners it's always way easier to get hands dirty with a simple toy app (todos, tasks, etc). Laravel's documentation shows what framework offers without a simple example how you can use it in your project. Maybe it's just me, idk.

Second, I tried watching "Laravel from Scratch" and I really disliked it. In one vid Jeff says "k, we need to create a new task, well then, let's create an instance, assign every property and then just call save() method, it's that simple! Let's continue in the next...", the next vid: "remember how we did it? well there is a better way and blabla..", the following vid: "in the previous vid we did this, BUT, there is a BETTER approach". After watching a half of the course I felt confused. Don't get me wrong, I understand that Jeff knows PHP so well, that he could probably code this website with his eyes closed but in my opinion it's not how courses should be done.

Maybe it's just me (100% sure I'm the gifted one that can't grasp all these concepts). I did some development with Node.js and Express. It was just a pleasure for me to use it while with Laravel... I don't know.

For me Laravel compared to for example Node + Express is like comparing Vue and React. In React you should really know JavaScript in order to accomplish thing while in Vue you have a boilerplate that you should follow.

0 likes
11 replies
jlrdw's avatar

You have to start slow and realize there's a learning curve. and just don't try to learn too much too fast, take your time and learn correctly.

And there are code samples on GitHub that you can study.

Dalma's avatar

I have been a software developer for a long time but had not worked with PHP at all and until recently didn't even know of Laravel. I found the following video series and by the time I was done I was in good shape.

This is on the DevMarketer youtube channel - Called build a blog with Laravel

https://www.youtube.com/watch?v=R8B4og-BeCk&list=PLwAKR305CRO-Q90J---jXVzbOd4CDRbVx&index=1

After following this series I was prepared for Jeff's more focused and advanced videos.

4 likes
Dalma's avatar

This series is long but it builds step by step. I followed the entire series and then have viewed about another 100 posted on here and with each I was able to grow in my understanding.

bonesmang's avatar

@alekseyio Personally, I think one of the benefits of having Jeff show different methods of doing certain tasks is that you learn the long way and then he leads up to the shorter way, and often times, the "best practice" to handle that task. This can be helpful, since just about every developer is going to have a different way of approaching certain tasks. When reading code from other developers, this can definitely be a big positive.

I am not new to php, or server side programming, but by no means am I an expert. I think the way Jeff goes through his tutorials can be frustrating at times, just like you. But I have found that if you, as he says, "come along for the ride" it all starts to make sense.

JeffreyWay's avatar
Level 59

First, the documentation is... well, it's awful (at least for me)

I'm baffled every time I hear this. Laravel has the best framework documentation I've ever seen.

In one vid Jeff says "k, we need to create a new task, well then, let's create an instance, assign every property and then just call save() method, it's that simple! Let's continue in the next...", the next vid: "remember how we did it? well there is a better way and blabla..", the following vid: "in the previous vid we did this, BUT, there is a BETTER approach".

Sorry to hear you're not a fan of that approach, but I think it's vital. I find that newcomers often want to skip ahead to the "right way" shortcut. I don't think that's useful. It creates dogmatic developers.

It's like learning an instrument. If you only learn how to play a particular melody in one position, how is that useful to your future arrangements? It's not. The key is to learn how to play the melody all over the neck, in multiple positions. That's what I'm trying to do with these lessons. "Here's one way to create and save the task. But here's another approach you can reach for." You need to learn both if you want to actually learn how the framework works.

2 likes
Alekseyio's avatar

@JEFFREYWAY - Wow, never thought I'd get a response from you.

You are totally correct that in coding there are tons of different ways in order to accomplish a given task.

I've spent a week or two learning Laravel via your videos, reading documentation and other articles on the internet. And to be honest, what annoys me the most is that this framework does too much for you under the hood and I feel really uncomfortable doing certain things that I could do manually (e.g. fetching a single record from the database) with a few additional lines of code.

Anyway, I understand that this thread is meaningless and I just wanted to get some feedback on how to proceed next.

jlrdw's avatar

@JEFFREYWAY - I find Laravel documentation much better than cakephp.

As I use cakephp and yii2 at times.

But not to worry laravel is my favorite, Taylor made very flexible and easy to use.

I usually learn a lot from the vendor folder how Taylor did things.

And digging through the API.

I use the out-of-the-box Authentication however I wrote my own helpers to work with roles. Basically I have my own RBAC.

I suggest anyone new to follow Taylor's out of the box way of doing things until they learn the framework well.

Eventually you get to the point where you know how to write custom helpers, etc.

Also suggest to watch your introductory videos and any other video that will help them.

And I remind them like you reminded me once we were all new to this at one time.

1 like
aryanjoshidev's avatar

@Alekseyio facing the same issue as yours, finding it damn difficult to learn laravel somehow i understood routing,controllers,blade,syntax,functions,query builder but this eloquent man what is this? i started learning it i got to know laravel has default methods here illuminate\support\collection which we can used in eloquent as eloquent overridden them here illuminate\database\eloquent\collection and this illuminate\database\eloquent\collection have some methods of its own but other then this there are other methods too which operated on query model i dont know but what i know is php and still i dont know how to learn laravel. its too much complex documentation seriously

jlrdw's avatar

Old post, but for anyone landing here, go through the learning curve.

For example you don't go from basic high school math to advanced analytic geometry and calculus in a week.

Same thing.

Please or to participate in this conversation.