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
- Linux Basics (already know some commands and concepts, but I need to study it in a deeper level)
- Directories structure
- Common file extensions
- Permission system
- Packing and unpacking files
- Learn terminal
- Learn text manipulation tools
- Vim
- awk
- sed
- grep
- sort
- uniq
- cat
- cut
- echo
- fmt
- tr
- nl
- egrep
- fgrep
- wc
- Learn process monitoring
- ps
- top
- htop
- atop
- isof
- SSH
- Shell script basics
- 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
- Parsing tags and code generation (I'm studying...)
- Garbage collection
- Performance optimization techniques
- Security issues
- Common APIs
- Geolocation (I already know something, but I will review it)
- Web storage
- Cache
- Canvas (I'm studying)
- Web workers
- File API (I already worked with it, but I need to study in a deeper level)
- Drag and Drop (same as above)
- CORS (Reviewing)
- Object oriented programming concepts
- Common patterns and architecture
- Functional programming concepts
- Common patterns and architecture
- Architecture
- Redux / Flux (I'm studying)
- Testing
- Jest
- Common frameworks and libraries
- jQuery
- React.js (I'm studying)
- RxJS
- Moment.js (I need to review)
- D3.js
- Tooling / Development
- NodeJS
- NPM
- Node scripts and tasks
- Express.js
- Yarn
- Webpack
- ES Lint
- NodeJS
- Data structures
- Arrays
- Lists
- Queues
- Stacks
- Sets
- Graphs
- Algorithms
- Sorting
- Search
- Binary search
- Regular expressions
- Standards and best practices
- Architecture (I need to review all concepts)
- DDD
- CQRS
- Event sourcing
- Tests
- Unit testing
- Integration testing
- TDD
- BDD
- Calculate test coverage
- Application types
- REST API
- Web application
- Performance
- Caching strategies
- Memcached
- Redis
- Threading
- Optimization techniques
- Caching strategies
- Authentication and Authorization
- OAuth
- Basic authentication
- JSON Web Token authentication
- OpenID
- NoSQL
- MongoDB
- Message brokers
- RabbitMQ
- Patterns and best practices
- Web sockets
- Web scraping
- Logging
- Analytics tools
- Docker integration
- GraphQL
- OS Concepts
- Threads and Concurrency
- Sockets
- Process management
- Memory / storage
- Web Server
- Configure IIS
- Configure Apache
- Configure Nginx
- Configure caching server
- Configure firewall
- Containers
- Docker
- Use Docker with a programming language
- CI / CD Tools
- Jenkins
- Travis CI
- Docker
I will be adding new subjects as I finish to study previous topics and according to necessity.




