I'm excited to announce a comprehensive FREE full-stack web development course, starting from the very basics of the internet and going all the way to servers and scalability. This course will cover everything you need to know to become a well-rounded web developer.
Here's a breakdown of the topics we'll cover:
- How the Internet Works?
- Understanding the fundamental principles of the internet.
- HTTP
- What is HTTP and how does it function?
- Browsers
- Exploring how browsers work and interpret web content.
- DNS
- Understanding the Domain Name System.
- Domain Names
- What is a domain name and how are they managed?
- Hosting
- Different types of hosting options available.
- HTML
- Building the structure of web pages.
- CSS
- Styling and designing visually appealing interfaces.
- JavaScript
- Adding interactivity and dynamic features.
- React.js
- Building user interfaces with React.js.
- Next.js
- Understanding server-side rendering and hybrid applications with Next.js.
- Terminal Usage
- Mastering the command line interface.
- How OSs work in general
- Understanding the core functions of operating systems.
- Process Management
- Managing and understanding system processes.
- Threads & Concurrency
- Understanding how to handle concurrent tasks.
- Basic Terminal Commands
- Essential commands for navigating and interacting with the system.
- Memory Management
- Understanding memory allocation and usage.
- Interprocess Communication
- How processes communicate with each other.
- I/O Management
- Understanding input/output operations.
- POSIX Basics
- Exploring the POSIX standard.
- A selection of Back-end Languages:
- Java
- Python
- PHP
- C#
- JavaScript (Node.js)
- Ruby
- Rust
- Go
- Note: We will explore the best ways to implement backend using these languages.
- Basic usage of Git
- Learning the fundamentals of Git for version control.
- Repo Hosting Services:
- GitHub
- GitLab
- Bitbucket
- Exploring multiple database technologies:
- MySQL
- PostgreSQL
- MariaDB
- MS SQL
- Oracle
- REST
- Understanding RESTful API design.
- JSON APIs
- Working with JSON based APIs.
- HATEOAS
- Hypermedia as the Engine of Application State.
- Open API Spec and Swagger
- Documenting APIs using Open API Specification.
- Authentication
- Implementing secure authentication.
- GraphQL
- Exploring a modern alternative to REST.
- CDN (Content Delivery Networks)
- Improving website performance with CDNs.
- Server-side Caching
- Redis
- Memcached
- Client-side Caching
- HTTPS + TLS
- Understanding secure communication over the internet.
- CORS (Cross-Origin Resource Sharing)
- Managing cross-domain requests.
- Hashing Algorithms
- MD5
- SHA-2
- SCrypt
- BCrypt
- OWASP (Open Web Application Security Project)
- Understanding common web application vulnerabilities.
- Testing your code
- Writing unit and integration tests.
- Jenkins
- Automating builds and deployments with Jenkins.
- TravisCI
- CI/CD with Travis CI
- SOLID Principles
- Principles of object-oriented design.
- KISS (Keep It Simple, Stupid)
- Prioritizing simplicity in design.
- YAGNI (You Aren't Gonna Need It)
- Avoiding premature optimization.
- DRY (Don't Repeat Yourself)
- Reducing code duplication.
- Domain-Driven Design
- Modeling software based on the business domain.
- Test-Driven Development
- Writing tests before writing the code.
- Microservices and Service-Oriented Architecture
- Designing scalable applications.
- CQRS (Command Query Responsibility Segregation)
- Separating read and write models.
- Serverless
- Exploring serverless computing architectures.
- Docker Fundamentals
- Understanding the basics of Docker containers.
- Docker Cookbook
- Practical examples for using Docker.
- Kubernetes Cookbook
- Orchestration of containers using Kubernetes
- Nginx Handbook
- Configuring and managing Nginx web servers.
- Apache
- Configuring and managing Apache web servers.
- Caddy
- Configuring and managing Caddy web servers.
- Distributed Systems
- Understanding the principles of distributed systems.
- System Design Primer
- Concepts for designing large systems.
- The 12 Factor App
- Guidelines for building scalable web applications.
- Architecting Frontend Projects To Scale
- Designing frontends for complex projects.
Important Note: The course structure may be adjusted or additional topics may be added as it progresses. However, the core structure will be maintained to ensure all the fundamentals are covered. I will update you on the specific start dates when they become available.