Learning never exhausts the mind.
We will be skipping HTML and CSS. A good source for documenting on those two technologies will be:
-
JavaScript
It is mandatory to be familier with JavaScript. There are several resources for it be learned, but the most appropiate one is the following one:
After some theory, some practice is required. Thus, a mini project for practice is given.
Create the frontend of a blog page, or online shop page, or anything else similar that crosses your mind. Your website should not be too simple, you will have to add Authentication on the website in the future, among other things. A simple page of text, it is not enough. You will have to have buttons, multiple pages, animations done only in CSS, event listeners hand-written by you in JavaScript and so on. Try to combine what new you've learned. -
React.js
The past experience of pure JavaScript will be a great background of knowledge for this step. Thus, skipping the above step is forbiden.
In order to create a more responsive layout, with less effort, we will be using
React.js.Sources from where you can learn it:
Now that you know a bit more, try to refactor or idealy create a new website that would've clone your previous one, but with less flaws, more responsive layout and etc.
As a bonus, try to hook up the React.js with Firebase, for a real time Database.
Optionally:
- One of the most popular code bundlers for JavaScript is Webpack
🚧 In progress... 🚧
- Internet
- How does the internet work?
- What is HTTP?
- Browsers and how they work?
- DNS and how it works?
- What is a Domain Name?
- What is hosting?
-
OS and General Knowledge
- Terminal Usage
- How OS work in General
- Process Management
- Threads and Concurrency
- Basic Terminal Commands
- Memory Management
- Interprocess Communication
- I/O Management
- POSIX Basics
- Basic Networking Concepts
-
Learn a Language
-
Version Control System
- Basic Usage of Git
- Repo hosting services
- Mercurial
-
Relational Databases
- General Information
- PostgreSQL
- MySQL
- MariaDB
- MS SQL
- Oracle
-
More about Databases
- General Information
- ORMs
- ACID
- Transactions
- N+1 Problem
- Database Normalization
- Database Indexes
- Data Replication
- Sharding strategies
- CAP Theorem
-
Non-Relational Databases
- General Information
- Document databases
- Column Databases
- Timeseries databases
- Realtime databases
- Firebase
-
Learn about APIs
- APIs
- Authentication
- General Information
- JWT Authentication
- Token based Authentication
- Basic Authentication
- OAuth - Open Authorization
- OpenID
- Cookie-Based Authentication
- Open API Specification and Swagger
- Hateoas
- REST
- JSON APIs
- SOAP
- gRPC
-
Caching
- CDN (Content Delivery Network)
- Client Side Caching
- Server side Caching
-
Web Security Knowledge
- General Information
- Hashing Algorithms
- MD5
- SHA Family
- Bcrypt
- Scrypt
- Others
- HTTPS
- CORS
- Content Security Policy
- SSL/TLS
-
Testing
- General Information
- Integration Testing
- Unit Testing
- Functional Testing
-
CI/CD
-
Design and Development Principles
- SOLID
- KISS
- YAGNI
- DRY
- TDD
- DDD
- GOF
-
Architectural Patterns
- General Information
- Monolithic Apps
- Microservices
- SOA
- CQRS and Event Sourcing
- Serverless
-
Search Engines
- Elasticsearch
- Solr
-
Message Brokers
- General Information
- RabbitMQ
- Kafka
-
Containerization vs Virtualization
- General Information
- Docker
- LXC
-
GraphQL
-
Graph Databases
-
WebSockets
-
Web Servers
- General Information
- Nginx
- Apache
- Caddy
- MS IIS
-
Building for Scale
- General Information
- Mitigation Strategies
- Migration Strategies
- Horizontal/Vertical Scaling
- Instrumentation, Monitoring, and Telemetry
- Observability
