web-developer-roadmap
                                
                                 web-developer-roadmap copied to clipboard
                                
                                    web-developer-roadmap copied to clipboard
                            
                            
                            
                        Web Developer Roadmap is a path to understand web development including frontend, backend and cloud.
Web Developer Roadmap

Web Developer Roadmap is a learning path to understand web development, including frontend, backend and cloud(AWS).
How to Learn Web development?
A web development can be divided into four different parts,
- Database
- Backend
- Frontend
- Cloud(server)
This roadmap consists of widely used technologies/frameworks for frontend and backend. It also includes overview about cloud(AWS) and some information about server.
Table of contents
- Sprint 1 - Basic linux commands, Version control, Web technologies and coding conventions
- Sprint 2 - Docker, Databases and PHP
- Sprint 3 - Golang
- Sprint 4 - Node.js
- Sprint 5 - Vue.js
- Sprint 6 - Useful concepts
Sprint 1 - Basic linux commands, Version control, Web technologies and coding conventions
Practical 1.1 - Basic commands and Version control
- 
Write a commands for following operations in terminal - List all files with details in directory
- Give only read permission to any file
- Give all read and write permissions to any file
- Get IP address of own pc
- Observe disk space usage
- View previously executed commands history
- Linux command to install/uninstall PHP
- Linux command to start/stop mysql service
- Write and save any file from terminal
 
- 
Perform following operations in gitlab - Create a repository to GitLab
- Check git status of repository
- Commit new/updated files into a git repository
- Push in a git repository
- Pull new changes from repository
- Checkout new branch
- Merge branch into another
- Rebase and Squash
- Create merge request
- Write a command to clone this repo
 
References
- 
How to use git 
Practical 1.2 - Basic web technologies with coding conventions
- UI design with coding standards
References
- 
HTML5 
- 
CSS3 
- 
Code formatting and best practices 
Practical 1.3
- Unit converter
- Create a unit converter that should take input from users and output the value in the asked unit (conversion units can be centimeters, meters, and kilometers)
 
References
- 
Javascript & jQuery - Basic javascript from Web development bootcamp course on udemy - section 9 and 10
- Basic javascript, ES6, Regular expressions, and Debugging from Free Code Camp
- Web development bootcamp course on udemy - section 11 and 13
- JSON, APIs, and ajax from Free Code Camp
- Finish Javascript algorithms and data structures from Free Code Camp
- Web development bootcamp course on udemy - section 14 to 16
- Finish Frontend libraries projects from Free Code Camp
- Difference between == and ===
- Basics of jQuery
 
- 
Coding conventions 
Sprint 2 - Docker, Databases and PHP
Practical 2.1
- Install MySQL using Docker
- Install MongoDB using Docker
References
Practical 2.2
- 
Perform following queries in MySQL - Create a table named studentswith fields id, first_name, last_name, standard, percentage, interest, etc... and insert data into it
- Create table student_attendanceswith fields id, created_at, presence/absence fields and insert data into it
- Create a table named teacherswith fields id, first_name, last_name, subject, interests etc... and insert data into it
- Create table teachers_attendanceswith fields id, created_at, presence/absence fields and insert data into it
- Prepare queries to find student's presence/absence on a particular day
- Find total absence/presence of every student
- Find absent students with a percentage lower than 70.
- Find a student who has higest presence
- Get all student's and teacher's first_name, last_name, full_name, interest, standard, subject and total absence.
 
- Create a table named 
- 
Perform following queries in MongoDB (Can use MongoDBPlayground to peform queries) - Create a collection named studentswith fields id, first_name, last_name, standard, percentage, interest, etc... and insert data into it
- Form a query to find students with a percentage lower than 70 and interest in sport.
- Count the total students with a percentage above 70
 
- Create a collection named 
References
- Web Development Bootcamp course udemy - section 24 and 25
- Mysql Subquery and Union query
Practical 2.3
- Create a Blog application with following requirements using PHP
- It should have two sides
- 
- Admin
 
- 
- User
 
 
- 
- Implement Register and login functionality for both user and admin
- Admin can add posts ( post fields - title, description, created_date, author, category, image )
- Admin can decide which user can see the post
- Added Posts will be visible on user side (latest first)
 
- It should have two sides
References
Basic Concepts
- Installation WAMP/MAMP/XAMPP
- How it exactly works ?
- Basic Syntax
- Variables, Constants, Operators & Control Structures
- Conditions, Loops, Switch cases
- Arrays, String and various string functions
- Functions
- Includes & Required
- Classes & Objects & Constructors
- Namespaces
- Extensions
- Exceptions
- JSON Encode & Decode
- Sessions
- Cookies
- File Manipulation
- Indexed Array vs Associative Array
- Object vs stdObject
- Timeout of PHP script
Predefined variables
- http://php.net/manual/en/reserved.variables.php
- $GLOBAL
- $_SERVER
- $_GET
- $_POST
- $_FILES
- $_REQUEST
- $_SESSION
- $_COOKIE
Advanced options
- Interfaces
- Traits
- Crons
- Composer
- php.ini tweaks
Keywords
- Private
- Public
- Static
Sprint 3 - Golang
Practical 3.1
- Implement Music App with given requirements
Basic concepts
- 
Constants, variable types 
- 
Functions, multi return functions, init() 
- 
Packages and import 
- 
Conditional Statements and Loops 
- 
Arrays and slices 
- 
Pointers, structs, and methods 
- 
Error handling 
- 
Others 
Advance concepts
- Maps in Go
- Concurrency and Goroutine
- defer
- Error handling
- Panic and recover
- Reflection
- Type conversion
- File manipulations
- Logging
- Authentication with JWT (JSON Web Token)
Packages
- Gin
- Mysql package
- net/http
- File compressor
- Logging
- Mongodb
- ioutil
- os
- strings
- parse static file to binary
- null value handler
- JWT
- socket.io
- sentry
Sprint 4 - Node.js
Practical 4.1
- Implement one-one real time chat application
Practical 4.2
- Implement an Ecommerce App with given requirements
References
- 
Basic concepts: - CommonJS and ESModule
- Console
- Scope
- 'this' keyword part 1
- 'this' keyword part 2
- Understanding package.json
- Import/export require
- Callbacks
- async-await
- async.waterfall()
- Ref
- Event loop
- Node mailer to send emails
- Best practices
 
- 
Express.js 
Sprint 5 - Vue.js
Practical 5.1
- Implement frontend of Ecommerce App using Vue.js with given requirements
References
- 
Concepts - What is vue.js ?
- Getting started
- Installation
- Application and component instances
- Template syntax
- Data properties and Methods
- Computed Properties and Watchers
- Class and Style Bindings
- Conditional rendering, conditional style binding
- List rendering
- Event Handling
- Form input bindings
- Component Basics
- Props
- Component registration
- Slots
- Template refs
- State management
 
Sprint 6 - Useful concepts
Concepts
- Http Protocols
- Asynchronous vs synchronous behaviour
- Caching(Understanding of Redis)
- Testing : unit and feature testing overview
- Docker in detail
- Nginx vs Apache server
- Server Login with Password/SSH Keys
- IP tables
- Php-fpm and httpd
- SSH, SSL, certificates and keys
Cloud
- What is AWS?
- S3
- EC2
- RDS
- Elasticache
- Route 53
- SES
- Cloudwatch
- VPC
- AWS Lamda
- AWS API Gateway
- Microservices
- What are microservices? How AWS implement it?
- Microservices implementation using Go