Roadmap to becoming a web developer in 2018
This roadmap was originally created with the intent of guiding developers through the hard and slow process of becoming a good software developer, showing paths that they can follow to learn what they need to know to be good professionals. I forked this repository to structure my own study plan based on the roadmaps presented here and to adapt it to my reality structuring the content according to what I want and what I have to learn.
Here is my personal study plan based on the above roadmaps, ordered by the subjects I have to study and which subjects I already have studied. Some subjects I already have a good knowledge, but I'm placing it here to review the important concepts.
- Learn Git
- git config
- git init
- git status
- git add
- git commit
- git diff
- git pull
- git push
- git remote
- git branch
- git checkout
- git tag
- git show
- git fetch
- git reset
- git merge
- git rebase
- git stash
- Learn Github workflow
- Creating and deleting repositories
- Managing repositories
- Creating and managing branchs
- Opening pull requests
- Discussing and reviewing code
- Mergind and deploying code
- Reverting changes
- HTTP - HTTPS
- FTP - SFTP
- TCP
- CSS
- SASS
- Bootstrap
- JavaScript
- Syntax
- Basic concepts
- Hoisting
- Event bubbling
- Prototype
- Manipulating the DOM
- ES6
- Advanced concepts
- Scope and call / apply
- Proxies and Reflection
- Garbage collection
- Common APIs
- Geolocation
- Web storage
- Cache
- Canvas
- Web workers
- File API
- Drag and Drop
- CORS (Reviewing)
- Object oriented programming concepts
- Common patterns and architecture
- Functional programming concepts
- Common patterns and architecture
- Architecture
- Redux / Flux
- Testing
- Jest
- Common frameworks and libraries
- jQuery
- React.js
- Angular 2+
- Moment.js
- Lodash
- Babel.js
- Tooling / Development
- NodeJS
- NPM
- Node scripts and tasks
- Express.js
- Yarn
- Webpack
- ES Lint
- NodeJS
- Data structures
- Arrays
- Lists
- Queues
- Stacks
- Sets
- Graphs (I started studying this, I still need to implement some algorithm to find the smallest paths in a graph)
- Algorithms
- Sorting
- Search
- Binary search
- Regular expressions
- Standards and best practices
- Architecture and concepts
- DDD
- CQRS
- Event sourcing
- Distributed Application development and concepts
- Source and Round Robing algorithms
- Distributed caching strategies
- How to work with session management in distributed applications
- Cookies usage
- File system management and FTP usage
- Healthchecks
- Tests
- Unit testing
- Integration testing
- TDD
- BDD
- Calculate test coverage
- Application types
- REST API
- Web application
- Performance
- Caching strategies
- Memory cache
- Disk cache
- Distributed cache
- Redis
- Threading
- Caching strategies
- Authentication and Authorization
- OAuth
- Basic authentication
- JSON Web Token authentication
- OpenID
- NoSQL
- MongoDB
- Message brokers
- RabbitMQ
- Web sockets
- Web scraping
- Logging
- File system log
- Email log
- Database log
- Logging libraries
- GraphQL (just the basics)
- Data analytics
- Google Analytics integration
- Databases
- SQL Server
- MySQL
- PostgreSQL
- MongoDB
- OS Concepts
- Threads and Concurrency
- Sockets
- Process management
- Memory / storage
- Web Server
- Configure IIS (I learned the basics)
- Configure Nginx
- Containers
- Docker (I'm still learning)
- Use Docker with a programming language
- Docker (I'm still learning)
- CI / CD Tools
- Jenkins
- Travis CI
I will be adding new subjects as I finish to study previous topics and according to necessity.