Skip to content

mahmoudmohamedramadan/Backend-Roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Backend Roadmap

TALL-Stack

🧐 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 and Networking is crucial.

It’s also important to know that Back-end Development is often considered a second phase after mastering Front-end Development. The first phase includes understanding the basics of HTML, CSS, and JavaScript, 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. These patterns will become increasingly relevant as you study Back-end Development.

🧰 Tools

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 and Docker because it allows you to work easily on any Laravel version without being obsessed with compatibility problems.

πŸ”Œ Awesome Extensions

VS Code

Chrome

πŸš€ Getting Started

🐘 Beginner Level

Basics: Elzero

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

Learn PHP 5 In Arabic

You can watch PHP For Beginners or Learn PHP The Right Way as an alternative, and then review PHP For Absolute Beginners for a refresher.

OOP: Elzero

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

Learn Object Oriented PHP

You can watch Object Oriented PHP Tutorial as an alternative.

Types Of Filters: Elzero

Third, you must grasp essential security concepts in PHP such as Sanitization and preventing XSS attacks. πŸ±β€πŸ’»

Validate vs Sanitize

Database: Elzero

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

MySQL 5 Essential Training

Additionally, 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 for such an expert-level database.

Payment Gateway: Traversy Media

Sometimes, you may need to integrate payment gateways into your site, such as HyperPay, PayPal, Stripe, and others. To learn how to do this, check out the next tutorial. πŸ’³

PHP, MySQL & Stripe API Payment App

You can see how I integrate the Hyper Pay payment gateway, as demonstrated in the 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

After completing the PHP tutorials, you can explore its Awesome Packages for additional resources. Also, feel free to check out my recap in Awesome PHP.

GitHub: Elzero

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

Learn Git and GitHub

You can watch the Git and GitHub for Beginners - Crash Course 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

Laravel 7.x: Sarthak Shrivastava

You'll learn more and more about Laravel, Livewire, and Tailwind CSS. 7️⃣

Laravel 7 Basics tutorials

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

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, as it's a very lightweight JavaScript framework. If you're interested in learning Vue.js, you can check out Vue.js Tutorials & Examples.

🐲 Advanced Level

Laravel 6.x: Coder’s Tape

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

Laravel 6 Advanced

Laravel Real-time: Neil Rowe

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

Real-time web apps with Pusher & Laravel

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

Packages: Andre Madarang || Sarthak Shrivastava

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. This fantastic tool lets you quickly publish your project with a secure, temporary URL, giving you virtual hosting for sharing and testing purposes.

πŸ“• Books

Discover Laravel Digging v8, a recap of the Laravel Up & Running book.

πŸ“¦ Awesome Repos

πŸ“Ί Awesome YouTube Channels

🌐 Awesome Websites