Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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

The Back-end Roadmap for PHP and 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: 23 days ago
JSON representation

The Back-end Roadmap for PHP and Laravel.

Awesome Lists containing this project

README

        

# Back-end Roadmap

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

## 🧐 Introduction

Before embarking on studying any track you must be familiar with a **Science** such as (Data Structure, Algorithms, and Problem-Solving) because they will help you more in your technical life and there is no interview free from questions about them. In addition, you have to have a good knowledge of ([Security](https://portswigger.net/web-security/learning-path), and [Networking](https://www.javatpoint.com/computer-network-http)). It is known also that the `Back-end` is considered a second phase after `Fron-end` ([HTML](https://www.w3schools.com/html/), [CSS](https://www.w3schools.com/css/default.asp), [JavaScript](https://www.w3schools.com/js/default.asp)) which is considered the first phase, so it will be fine if you were familiar with `Front-end`. FINALLY, you must be good at [`Design Patterns`](https://refactoring.guru/design-patterns) because you'll meet them more when you study `Back-end`, and when you reach the Laravel framework you'll find out that the most advanced topics in Laravel are based on common design patterns such as `Facade` design pattern.

## πŸ“’ Prerequisites

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

> `Xampp` and `Laragon` are local development tools and you can choose BETWEEN them to use according to your comfort, but personally, I prefer to use `Xampp`, also you can choose BETWEEN `PhpStorm` and `VS Code` according to your comfort, but personally, I prefer to use `VS Code` for simplicity and speed, and in case you choose to use `VS Code` I recommend using these helpful [Extensions](#vs-code), also I recommend using these useful [Chrome Extensions](#chrome). `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/9.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
- PHP Inteliphense
- Laravel Extension Pack
- Auto Rename Tag
- Error Lens
- PHP Class Generator
- PHP Snippets
- vscode-icons
- MySQL
- GitHub Copilot
- M.R Darkest Theme

### Chrome

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

> `GitHub Copilot` is a very awesome tool, but please use it in production applications only, not while learning, but it's become paid now, so I recommend using [Blackbox](https://marketplace.visualstudio.com/items?itemName=Blackboxapp.blackbox), but if we will compare BETWEEN them, `GitHub Copilot` will win.

## πŸš€ Getting Started

### 🐘 Beginner Level

#### Basics: Elzero

At first, we will use PHP programming language in our `Back-end` journey as a powerful language 🎯

[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 optional choice for Elzero course, then you can watch [PHP For Absolute Beginners](https://youtu.be/2eebptXfEvw) for revision.

#### OOP: Elzero

Second, to be a master at PHP, you'll need to be a hero in 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 a optional choice for Elzero course.

#### Types Of Filters: Elzero

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

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

#### Database: Elzero

After you become a master in PHP, you'll need to know more about databases πŸ—‚

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

#### Payment Gateway: Traversy Media

Sometimes you need to provide payment gateways to your site such as ([Hyper Pay](https://www.hyperpay.com/), [PayPal](https://developer.paypal.com/), [Stripe](https://stripe.com/), ...etc), so you can watch the next tutorial πŸ’³

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

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

#### 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 finishing PHP tutorials, you can take a look over its [Awesome Packages](https://github.com/odan/learn-php), and say hello to my recap that you'll find in [Awesome PHP](https://github.com/mahmoudmohamedramadan/Awesome-PHP).

#### GitHub: Elzero

Here 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 [Git and GitHub for Beginners - Crash Course](https://youtu.be/RGOj5yH7evk) as an optional choice for Elzero course.

### 🚦 Intermediate Level

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

Here you'll learn many things about Laravel, but in an old version 5️⃣

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

#### Laravel 7.x: Sarthak Shrivastava

Here you'll learn more and more about Laravel, [`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 may ask why should I learn more than one version of Laravel, what if I learn the latest version ONLY? My answer is that learning more than one version gives you more experience. In addition, every version contains its new features ONLY, and this makes you ignore the old version's features.

#### Livewire: Sarthak Shrivastava

Here you'll learn `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` as it'll relieve you from AJAX problems, also you may like to use [Alpine.js](https://alpinejs.dev/) because it's a very lightweight Javascript framework. If you'd like to learn `Vue.js` you can watch [Vue.js Tutorials & Examples](https://youtube.com/playlist?list=PLDoPjvoNmBAzDuaT7kEURZQbw9dQHepK9).

### 🐲 Advanced Level

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

Here you'll learn very advanced topics in Laravel πŸ‹οΈβ€β™‚οΈ

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

#### Laravel Real-time: Neil Rowe

Here you'll learn real-time actions in Laravel ⏱

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

> You may love to take a glance over [Laravel Websocket](https://github.com/mahmoudmohamedramadan/Laravel-Websocket). After this step, I highly recommend learning Laravel via its [awesome documentation](https://laravel.com/).

### πŸ±β€πŸ‘€ 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)

> Suppose that you want to make a project for a client, surely you'll not send the project to him and maybe you do not have a private domain and hosting, so I recommend using [Ngrok](https://ngrok.com/download). This awesome tool enables you to publish your project in virtual hosting.

### πŸ“• 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)

> Say hello to [Laravel Digging v8](https://github.com/mahmoudmohamedramadan/Laravel-Digging-v8) that recaps `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)
- [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)
- [TheCodeholic](https://youtube.com/c/TheCodeholic)

### 🌐 Awesome Websites

- [Laravel News](https://laravel-news.com/)
- [Laracasts](https://laracasts.com/)
- [Laravel Examples](https://laravelexamples.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/)