Learning strategies

Laravel is a full-featured full-stack framework, and learning about it is like learning to be a full-stack engineer. If you haven’t studied a full-stack framework like this before, you’ll find yourself quickly buried in a lot of technical concepts and terms. It’s not that you’re not smart, it’s that:

Humans have a limited capacity to remember and process information in a short period of time, and when exposed to a lot of information in a short period of time, your attention is severely distracted, leading to feelings of frustration and restlessness.

So we need a smarter learning strategy.

I categorize framework knowledge as follows:

  • Low-level implementation knowledge — such as service containers, service providers, Facades, Contracts, Repositories, and so on
  • Framework usage knowledge – such as user registration and login, mail delivery, CRUD of data models, user data retrieval, etc

There are a lot of concepts to learn under each category, but it’s clear that learning the framework is much easier and more fun to use than learning the underlying implementation principles, and we remember it better because it’s more enjoyable to learn.

When you have some experience with the framework and then learn the underlying implementation concepts, you can better understand the ins and outs of these technical concepts, and ultimately achieve more learning results with less effort. Learning the underlying implementation at this time will also give you a deeper understanding of the framework, and you will find that you will become more flexible with the techniques used by the framework.

In simple words, at the beginning of learning, ignore the underlying implementation, use the functions provided by the framework, build some usable projects first, and then learn the underlying implementation concepts after mastering the use of these framework functions.

Even sorting and prioritizing is not enough. Because there are so many concepts involved in the framework’s use of this knowledge, it is easy to fall into information overload situations. Therefore, we need to have a step-by-step plan, learn simple and commonly used concepts first, and then slowly learn complex concepts, and pay attention to repeat learning during the learning process, so that the concept can be remembered more firmly.

Recommended learning path

With that in mind, I created The Laravel Field Course, with three (and possibly more) books planned:

  • The first — Laravel Primer — From Zero to Deployment
  • Second book – Laravel Advanced Course – Building forum System from Scratch
  • Laravel Advanced Course – Architecture API Server

The first book teaches you how to use Laravel to build a Sina Microbo-like app step by step. Many of the technical topics are skipped over by design, and we want to keep readers focused on coding cues and not distracted by long explanations of nouns. By reading this tutorial, you will learn the basics of Web development such as HTML, CSS, JavaScript, PHP, and Laravel. In addition, this book will also extend these basic knowledge points to explain some more professional and practical skills in Web development, such as Git workflow, Laravel Mix front-end workflow, basic use of Bootstrap framework, etc. This knowledge will give you a solid foundation for future programming development.

The second book takes the construction of the forum project LaraBBS as the clue and launches a comprehensive study of the Laravel framework. The coding specification follows the Laravel project development specification, and the application architecture is close to the design philosophy of Laravel framework. In the construction of the forum system, we will learn multi-role user authority system, administrator background, registration verification code, picture uploading, picture cutting, XSS defense, custom command line, custom middleware, task scheduling, use of queue systems, application caching, Redis, model event monitoring, form validation, message notification, mail notification, model modifiers, etc. In this course, you will learn not only to develop a forum project using Laravel, but also to build a safety-first, highly scalable architecture for large projects.

The third book will start with the goal of building an API server. This course is currently being written, please look forward to it.

After reading these three books, you will have some experience in project development and have a comprehensive and systematic understanding of the functionality of the framework. This would be a good time to learn about “low-level implementation.”

To learn about the underlying implementation, start with the documentation, go to the Laravel documentation center — d.laravel-china.org, find the latest version of the Laravel documentation, and read it twice or three times. Because of the above project experience, the document will be much easier to read.

After reading the documentation, take a look at the underlying Laravel source code to see how the functionality of these frameworks is implemented.

Take notes during the learning process. For example:

  • Zhangbao’s Laravel document reading notes
  • Laravel source code analysis notes by leoyang

The wrong way to learn

I started reading the files right away
d.laravel-china.org

If you’re new to the game and there are so many new concepts you need to learn, you’ll find it hard to learn and wonder if the documentation is poorly written (a common complaint in the community).

The truth is, it’s not that the documentation is bad, it’s that you’re using it wrong. The “purpose” of a document is quick reference, and the criteria for a good document are brevity and paraphrasing, and Laravel does a great job of that. However, documents are not suitable for getting started, as we explained above, because they contain too much information.

Look for scattered courses online.

If you want to learn individual concepts, these small, discrete lessons can be handy. However, if you are trying to read a lot of courses to achieve systematic learning, you will be disappointed. Most of the time you will feel as if you have learned a lot, studied for a long time, think you have learned, but the heart is still not confident.

What you need is to go through projects, complete projects, and string it all together to memorize it. Your work, clearly in front of you, grows in confidence when you see the system you’re building step by step.

Start by studying advanced topics such as
Service container,
Service provider,
Facades,
Contracts, Repository, etc.

Many times you will find these topics obscure and difficult to learn. And even if you have good perseverance, rote memorization, will soon forget, learning efficiency is very low. And most importantly, learning these concepts doesn’t give you the ability to build a complete project.

EOF

Please go to:
How to learn the Laravel framework effectively?