An open API service indexing awesome lists of open source software.

https://github.com/mahmoudmohamedramadan/backend-roadmap

The Backend Roadmap for PHP Laravel.
https://github.com/mahmoudmohamedramadan/backend-roadmap

alpinejs chrome-extension composer docker laragon laravel laravel-framework laravel-livewire laravel-package laravel-sail livewire php phpstorm tailwind-css tailwindcss tall-stack vscode vscode-extension vuejs xampp

Last synced: 11 months ago
JSON representation

The Backend Roadmap for PHP Laravel.

Awesome Lists containing this project

README

          

# Backend Roadmap

[![TALL-Stack](https://github.com/mahmoudmohamedramadan/Backend-Roadmap/blob/main/assets/tallstack-logo.png)](https://tallstack.dev/#components)

## 🧐 Introduction

Before diving into any track, it's essential to first familiarize yourself with foundational **sciences** such as **Data Structures**, **Algorithms**, and **Problem-Solving**, as these will significantly benefit your technical career. No technical interview is complete without questions related to these topics. Additionally, having a solid understanding of [**Security**](https://portswigger.net/web-security/learning-path) and [**Networking**](https://www.javatpoint.com/computer-network-http) is crucial.

Keep in mind that **Back-end Development** is often considered a second phase after mastering **Front-end Development**. The first phase includes understanding the basics of [HTML](https://www.w3schools.com/html/), [CSS](https://www.w3schools.com/css/default.asp), and [JavaScript](https://www.w3schools.com/js/default.asp), so it’s perfectly fine if you're familiar with these before moving on to back-end technologies.

Finally, it's essential to get comfortable with **[Design Patterns](https://refactoring.guru/design-patterns)**. These patterns will become increasingly relevant as you study **Back-end Development**.

## 🧰 Tools

- [Laravel Herd](https://herd.laravel.com/) || [Laragon](https://laragon.org/) || [Xampp](https://www.apachefriends.org/download.html)
- [Composer](https://getcomposer.org/)
- [VS Code](https://code.visualstudio.com/download) || [PhpStorm](https://www.jetbrains.com/phpstorm/)

> `Composer` is a dependency manager for PHP, you'll need it to install, update, and remove the packages in your PHP or Laravel projects. It's fine to explore Laravel with [`Laravel Sail`](https://laravel.com/docs/11.x/sail) and [`Docker`](https://www.docker.com/) because it allows you to work easily on any Laravel version without being obsessed with compatibility problems.

## πŸ”Œ Awesome Extensions

### VS Code

- [PHP Debug](https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug)
- [PHP Inteliphense](https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client)
- [Laravel Extension Pack](https://marketplace.visualstudio.com/items?itemName=onecentlin.laravel-extension-pack)
- [PHP Class Generator](https://marketplace.visualstudio.com/items?itemName=damianbal.vs-phpclassgen)
- [PHP Snippets](https://marketplace.visualstudio.com/items?itemName=vsc-snippets.vsc-php-snippets)
- [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- [Auto Rename Tag](https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag)
- [File Utils](https://marketplace.visualstudio.com/items?itemName=sleistner.vscode-fileutils)
- [change-case](https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case)
- [vscode-icons](https://marketplace.visualstudio.com/items?itemName=tal7aouy.icons)
- [M.R Darkest Theme](https://marketplace.visualstudio.com/items?itemName=MahmoudMohamedRamadan.mr-darkest-theme)

### Chrome

- [JSON Formatter](https://chromewebstore.google.com/detail/json-formatter/gpmodmeblccallcadopbcoeoejepgpnb)
- [Fake Filler](https://chrome.google.com/webstore/detail/fake-filler/bnjjngeaknajbdcgpfkgnonkmififhfo)
- [Blackbox](https://chrome.google.com/webstore/detail/blackbox-select-copy-past/mcgbeeipkmelnpldkobichboakdfaeon)

## πŸš€ Getting Started

### 🐘 Beginner Level

#### Basics: Elzero

At first, we will use PHP programming language as a powerful language in our journey. 🎯

[Learn PHP 5 In Arabic](https://www.youtube.com/playlist?list=PLDoPjvoNmBAzH72MTPuAAaYfReraNlQgM)

> You can watch [PHP For Beginners](https://laracasts.com/series/php-for-beginners) or [Learn PHP The Right Way](https://youtube.com/playlist?list=PLr3d3QYzkw2xabQRUpcZ_IBk9W50M9pe-) as an alternative, and then review [PHP For Absolute Beginners](https://youtu.be/2eebptXfEvw) for a refresher.

#### OOP: Elzero

Next, to excel at PHP, become a hero in Object-Oriented Programming (OOP). πŸ±β€πŸ

[Learn Object Oriented PHP](https://youtube.com/playlist?list=PLDoPjvoNmBAxXTPncg0W4lhVS32LO_xtQ)

> You can watch [Object Oriented PHP Tutorial](https://m.youtube.com/playlist?list=PL0eyrZgxdwhypQiZnYXM7z7-OTkcMgGPh) as an alternative.

#### Types Of Filters: Elzero

Third, you must grasp essential security concepts in PHP such as `Sanitization` and preventing [`XSS`](https://portswigger.net/web-security/cross-site-scripting) attacks. πŸ±β€πŸ’»

[Validate vs Sanitize](https://youtu.be/uXpQSrx8aqw)

#### Database: Elzero

Once you've mastered PHP, it's time to dive deeper into databases. πŸ’Ύ

[MySQL 5 Essential Training](https://www.youtube.com/playlist?list=PLDoPjvoNmBAz6DT8SzQ1CODJTH-NIA7R9)

Also, you can go ahead and explore this list of advanced topics for an added benefit. πŸ“š

- **ACID Database**
- **Database Normalization**
- **Database Replication**
- **Database Sharding**
- **CAP Theorem**

> I highly recommend [Tech Vault](https://www.youtube.com/@TechVault_) for such an expert-level database.

#### Payment Gateway: Traversy Media

Sometimes, you may need to integrate payment gateways into your site, such as [HyperPay](https://www.hyperpay.com/), [PayPal](https://developer.paypal.com/), [Stripe](https://stripe.com/), and others. To learn how to do this, check out the next tutorial. πŸ’³

[PHP, MySQL & Stripe API Payment App](https://www.youtube.com/playlist?list=PLillGF-Rfqbb8OFHzQhkEElaReewJlwca)

> You can see how I integrate the `Hyper Pay` payment gateway, as demonstrated in the [Delivery Management](https://github.com/mahmoudmohamedramadan/Delivery-Management) project.

#### API: Traversy Media

Finally, after you’ve finished `PHP` & `MySQL`, you'll need to know how to create APIs to be usable via `Android TEAM`. πŸ€–

[PHP REST API From Scratch](https://youtube.com/playlist?list=PLillGF-RfqbZ3_Xr8do7Q2R752xYrDRAo)

> After completing the PHP tutorials, you can explore its [Awesome Packages](https://github.com/odan/learn-php) for additional resources. Also, don’t forget to check out my recap in [Awesome PHP](https://github.com/mahmoudmohamedramadan/Awesome-PHP) for additional insights!

#### GitHub: Elzero

You'll learn how to deal with `GitHub` and how to publish your awesome projects. πŸ™

[Learn Git and GitHub](https://youtube.com/playlist?list=PLDoPjvoNmBAw4eOj58MZPakHjaO3frVMF)

> You can watch the [Git and GitHub for Beginners - Crash Course](https://youtu.be/RGOj5yH7evk) as an alternative.

### 🚦 Intermediate Level

#### Laravel 5.x: Coder’s Tape

You'll learn many things about Laravel in an old version here. 5️⃣

[Laravel 5.8 - From The Ground Up](https://www.youtube.com/playlist?list=PLpzy7FIRqpGD0kxI48v8QEVVZd744Phi4)

#### Laravel 7.x: Sarthak Shrivastava

You'll learn more and more about [`Laravel`](https://laravel.com/), [`Livewire`](https://laravel-livewire.com/), and [`Tailwind CSS`](https://tailwindcss.com/). 7️⃣

[Laravel 7 Basics tutorials](https://youtube.com/playlist?list=PLe30vg_FG4OSCTUv3XIkwH--cK2D7rfJJ)

> You might be wondering, *"Why should I learn more than one version of Laravel? What if I focus only on the latest version?"* The answer is that learning multiple versions broadens your experience. While each new version of Laravel introduces exciting features, it can also cause you to overlook valuable functionality or concepts from older versions. By exploring different versions, you'll gain a deeper understanding of the framework's evolution, making you a more adaptable and well-rounded developer.

#### Livewire: Sarthak Shrivastava

You'll learn the `Livewire` framework, that makes building dynamic interfaces simple, without leaving the comfort of Laravel. 🀯

[Laravel Livewire Full Course](https://www.youtube.com/playlist?list=PLe30vg_FG4OQ8b813BDykoYz95Zc3xUWK)

> This step is optional, but I recommend learning `Livewire`, **which helps you avoid** AJAX-related issues. **You might also want to consider** using [Alpine.js](https://alpinejs.dev/), as it's a very lightweight JavaScript framework. If you're interested in learning `Vue.js`, you can check out [Vue.js Tutorials & Examples](https://youtube.com/playlist?list=PLDoPjvoNmBAzDuaT7kEURZQbw9dQHepK9).

### 🐲 Advanced Level

#### Laravel 6.x: Coder’s Tape

You'll gain expertise in proficient Laravel concepts. πŸ‹οΈβ€β™‚οΈ

[Laravel 6 Advanced](https://www.youtube.com/playlist?list=PLpzy7FIRqpGD5pN3-Y66YDtxJCYuGumFO)

#### Laravel Real-time: Neil Rowe

You'll deepen your knowledge of real-time actions in Laravel. ⏱

[Real-time web apps with Pusher & Laravel](https://youtu.be/l44IF9fBNOs)

### πŸ±β€πŸ‘€ Ninja Level

#### Packages: Andre Madarang || Sarthak Shrivastava

- [Andre Madarang](https://www.youtube.com/playlist?list=PLEhEHUEU3x5pcQJHE8WBLqlHt2o3q5O-f)
- [Sarthak Shrivastava](https://www.youtube.com/playlist?list=PLe30vg_FG4ORrveWqHjn-9C5sn5mUP815)

> When working on a project for a client, you likely won't want to send them the raw project files directly, and you may not have a private domain or host set up yet. In such cases, I highly recommend using [Ngrok](https://ngrok.com/download). This fantastic tool lets you quickly publish your project with a secure, temporary URL, giving you virtual hosting for sharing and testing purposes.

### πŸ“• Books

- [Laravel Up & Running](https://laravelupandrunning.com/)
- [Laravel Clean Coders](https://ashallendesign.co.uk/blog/the-clean-coders-guide-to-laravel-free-70-page-pdf)

> Discover [Laravel Digging v8](https://github.com/mahmoudmohamedramadan/Laravel-Digging-v8), a recap of the *Laravel Up & Running* book.

### πŸ“¦ Awesome Repos

- [Awesome PHP](https://github.com/odan/learn-php)
- [Awesome Laravel](https://github.com/chiraggude/awesome-laravel)

### πŸ“Ί Awesome YouTube Channels

- [Laravel Daily](https://www.youtube.com/c/LaravelDaily)
- [Coder's Tape](https://www.youtube.com/@CodersTape)
- [Bitfumes](https://www.youtube.com/@Bitfumes)
- [Laratips](https://www.youtube.com/c/Laratips)
- [Laravel Package Tutorial](https://www.youtube.com/c/LaravelPackageTutorial)
- [Laravel PHP](https://www.youtube.com/c/LaravelPHP)
- [TraversyMedia](https://youtube.com/c/TraversyMedia)
- [Tech Vault](https://www.youtube.com/@TechVault_)
- [TheCodeholic](https://youtube.com/c/TheCodeholic)

### 🌐 Awesome Websites

- [Laravel Daily](https://laraveldaily.com/)
- [Laravel News](https://laravel-news.com/)
- [Laracasts](https://laracasts.com/)
- [Benjamin Crozat](https://benjamincrozat.com/)
- [Digging Code](https://www.blog.mmramadan.com/)
- [Beginner SQL](https://beginner-sql-tutorial.com/sql-commands.htm)
- [Guru99](https://www.guru99.com/)
- [FullStackCafe](https://www.fullstack.cafe/)
- [PortSwigger](https://portswigger.net/)
- [Learn Git Branching](https://learngitbranching.js.org/)
- [Refactoring.Guru](https://refactoring.guru/)
- [DesignPatternsPHP](https://designpatternsphp.readthedocs.io/en/latest/index.html)