* Resources added for Data Management
* Update content/roadmaps/102-devops/content/110-data-management.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Add content for consul
* Update content/roadmaps/102-devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Hi there! This book has helped me greatly with learning javascript. It is so pleasant to read but highly detailed, eloquently written as the title suggests. The book includes exercises for every chapter, with solutions, multiple projects, and has everything available with its own code sandbox. I have the paperback copy, but I love having all of the extra features with the online version. It is 100% free.
Talks about the JavaScript Fetch API and how to use it to make asynchronous HTTP requests. This post goes through Sending a Request to Handling the status codes of the Response. Extremely beginner-friendly, easy-to-understand examples.
- Changed "represents" to "represent" because the former is used with singular nouns, while the latter is used with plural nouns (e.g., roadmaps)
- Added commas to "i.e." and "e.g."
- Changed ! to an interrobang (?!)
- Added determiners (the) to "value" and "curator"
* Added a reading point
* Update content/roadmaps/100-frontend/content/100-internet/101-what-is-http.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Resources added for Open ID
* Update content/roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* filled it up, with most help from the mdn docs
youtube link added( gud vid ), with the mdn docs
* Update content/roadmaps/101-backend/content/122-web-servers/readme.md
Co-authored-by: CookedPotato-1428 <103060805+CookedPotato-1428@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Create 103 Tauri.md
Tauri is a great alternative for electron.js. Its super fast and small and secure. A great option every developer must consider.
* Add tauri docs
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* A Concrete Guide to React Native basics
I wasn't comfortable following the react native documentation when I was starting out as a web developer (even after learning javascript). this free react native course from udemy was my go-to guide to dive deep into react native basics. After playing with the basic knowledge you will acquire from this course then you'll be able to dive deep into react native documentation. This course structure follows a learn by build format. so you'll not be bored yet you'll be excited to build your first react native app ever.
* Update content/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
In these SEO guidelines, the article talks about the importance of Clean Code, Site Architecture, Correct Title Tag, Meta Description, Optimized URLs, Meta Robot Tags, Structured Data, internal linking, Page Loading Speed, Website Responsiveness, and Security. which all of these play a crucial part from an SEO perspective for a web developer.
I found this ebook 2yrs ago explaining about Document Object Model. it was very helpful in my Journey to programming. A must-read for all DOM manipulators of the web.
* Update 106-data-replication.md
I added a short description and video link that explains data replication within four minutes. Please take a look at it, thanks :)
* Update content/roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* adding description to the type checkers
* Update content/roadmaps/100-frontend/content/116-type-checkers/readme.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Added a New resource to Fetch API
RapidAPI gives an in-depth explanation of fetch API. what it is, How to use it to process API responses, HTTP Methods with Fetch API and How can errors be handled. Suited For Beginners and the content is packed with real-time examples.
* Update content/roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Update gRPC deffinition
I thought that some high-level definition of this would be nice.
* Update content/roadmaps/101-backend/content/109-apis/103-grpc.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
#### What roadmap does this PR target?
- [ ] Code Change
- [x] Frontend Roadmap
- [ ] Backend Roadmap
- [ ] DevOps Roadmap
- [ ] All Roadmaps
- [ ] Guides
#### Please acknowledge the items listed below
- [x] I have discussed this contribution and got a go-ahead in an issue before opening this pull request.
- [x] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [x] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [x] I have read the [contribution docs](../contributing) before opening this PR.
#### Enter the details about the contribution
I am suggesting the addition of PWA tutorials from MDN Web Docs. Apart from basic introduction to PWAs, it has numerous helpful How-to's such as using client-side storage with IndexedDB and Web Storage API, making mobile-first and installable PWAs, enabling "add to home screen", using notifications and push API etc.
#### What roadmap does this PR target?
- [ ] Code Change
- [x] Frontend Roadmap
- [ ] Backend Roadmap
- [ ] DevOps Roadmap
- [ ] All Roadmaps
- [ ] Guides
#### Please acknowledge the items listed below
- [x] I have discussed this contribution and got a go-ahead in an issue before opening this pull request.
- [x] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [x] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [x] I have read the [contribution docs](../contributing) before opening this PR.
#### Enter the details about the contribution
I have added a description and several resources that I have used myself and found useful in learning the topic of PWA performance analysis.
-1st link is from google web.dev and provides several articles on what is speed, how does it matter and how one can measure and optimize the performance of PWAs.
-2nd link gives detailed explanation on what is PRPL pattern and how it works.
-3rd resource is from google web.dev and teaches how to implement PRPL pattern to instantly load PWAs
-4th resource is from google web.dev and gives a detailed account about RAIL model and its implementation
-5th resource is from freecodecamp and gives an introduction to Chrome Lighthouse
-6th resource is from PWA training module of Google Developers (Web)
-7th resource is a 5 minute tutorial on how to use Lighthouse to audit your PWAs
I was unable to find a resource on devtools that is specifically catered to PWAs compared to general website performance analysis. Will add later if needed and this contribution gets approval!
* Resources added for JSON api
* Update content/roadmaps/101-backend/content/109-apis/101-json-apis.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Add the Vox video "How Does the Internet Works?"
As the article that describes how the internet works, Vox also have a very intersing video about the topic. It's a great production that covers the whole process among sending and receiving a picture between mobile phones.
* Update content/roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Resources added for MS IIS
* Update content/roadmaps/101-backend/content/122-web-servers/103-ms-iis.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Added resources for Basics of SEO in Frontend Development Roadmap
* Update content/roadmaps/100-frontend/content/101-html/105-seo-basics.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Added content for Pick a Framework
* Update content/roadmaps/100-frontend/content/111-pick-a-framework/readme.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Added Resources for Less
* Update content/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md
* Update content/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Added Resources for Material UI
* Update content/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Adding an extra resource on HTTP
I've recently read this 3-part series on HTTP, mostly focused on HTTP/3 and QUIC, but the first part covers basic concepts about HTTP and how it evolved to HTTP/3 (which is really HTTP/2-over-QUIC) and I find it might be a great reading resource on the topic.
I'm not recommending the 2nd and 3rd parts as they're linked through the 1st one and they diverge a little from the topic of HTTP (going into performance improvements and deployment of QUIC)
* Replicating new HTTP resource to back end roadmap
* Add content to Css modules
Also I think you guys should change CSS Modules to Alternative Option as is not used much anymore.
* Update 101-css-modules.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Add content for Scaling
- Add description and resources for vertical and horizontal scaling
- Fix typo
* Update 103-horizontal-vertial-scaling.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Add link to Roy Fielding's paper
The backend diagram makes reference to Roy Fielding's dissertation. I thought it would be helpful to have a direct link to his paper for convenience.
* Update 100-rest.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* DRY description and resources
Add a description and resources for DRY software development/design principle
* Minor space change
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Apollo Description and Content added
* Update content/roadmaps/100-frontend/content/119-graphql/100-apollo.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Update 104-accessibility.md
What I did: added new resource item
Why I chose it: Helped me several times to find a) a starting point on how to build an accessible web experience regarding a specific component and b) provides usually links with in-depth examples
* Update content/roadmaps/100-frontend/content/101-html/104-accessibility.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
✌️Added a youtube video as a watchable resource I found very useful and enough. I think knowing that much about how the browsers work is enough for the Front-end journey. The video covered all the important topics from User-Interface to Rendering Engine.
* Add Os and General KnowKnowledge content at backend roadmap
* Update content/roadmaps/101-backend/content/102-os-general-knowledge/readme.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* Updated the Electron section
Updated the Electron section in the front end road map
* Update 100-electron.md
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
* 📦 NEW: No auto formatting for JSON in VSCode
* 👌 IMPROVE: lingo for several libraries/software
* 👌 IMPROVE: alt text for Web Developer Roadmap Introduction
* 👌 IMPROVE: alt text for Frontend Roadmap
* 👌 IMPROVE: alt text for Back-end Roadmap
* 👌 IMPROVE: alt text for DevOps Roadmap
* 📖 DOC: make contribution fun again with more details
* 🐛 FIX: names of several libraries/software
Fetch API should be added instead of XMLHttpRequest(XHR) API
as fetch uses promises which enables a simpler and cleaner API.
However, understanding both Fetch/XHR is required for frontend.
Closes#475
* Added a list of Linux & Unix server distributions, and Emacs as text editor
* Updated Linux server list personal preference and possibilities
* Added OpenBSD and NetBSD as unix suitable OS's
Fill the details and open the issue. Any issue that
doesn't have all of these filled in will be closed,
if yours is closed reopen with everything filled in.
-->
#### What roadmap is this issue about?
- [ ] Frontend Roadmap
- [ ] Backend Roadmap
- [ ] DevOps Roadmap
- [ ] All Roadmaps
#### What is this issue about?
- [ ] Functionality of the website
- [ ] Discussion for a pull request I would want to open.
- [ ] Addition of a new item
- [ ] Removal of some existing item
- [ ] Changing in arrangement
- [ ] General suggestion
- [ ] Sharing an Idea
- [ ] Something else
#### Please acknowledge the below listed
- [ ] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [ ] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [ ] I have read the [contribution docs](../contributing) before opening this issue.
- [ ] I have discussed this contribution and got a go-ahead in an issue before opening this pull request.
- [ ] This is not a duplicate issue. I have searched and there is no existing issue for this.
- [ ] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed.
- [ ] I have read the [contribution docs](../contributing) before opening this PR.
[roadmap.sh](https://roadmap.sh) is the community effort to create knowledge that is approachable for the developers.
The website is built with Next.js, contains roadmaps which are the step by step guides for developers, guides which are the easier to understand explanations on the complex topics. Anyone can contribute to the website by suggesting changes to existing paths, adding learning resources, becoming an author by adding new guides, updating the existing guides.
## Development
Clone the repository, install the dependencies and start the application
@@ -93,7 +93,7 @@ After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was release
- **Pipelining** It also introduced the support for pipelining, where the client could send multiple requests to the server without waiting for the response from server on the same connection and server had to send the response in the same sequence in which requests were received. But how does the client know that this is the point where first response download completes and the content for next response starts, you may ask! Well, to solve this, there must be `Content-Length` header present which clients can use to identify where the response ends and it can start waiting for the next response.
> It should be noted that in order to benefit from persistent connections or pipelining, `Content-Length` header must be available on the response, because this would let the client know when the transmission completes and it can send the next request (in normal sequential way of sending requests) or start waiting for the the next response (when pipelining is enabled).
> It should be noted that in order to benefit from persistent connections or pipelining, `Content-Length` header must be available on the response, because this would let the client know when the transmission completes and it can send the next request (in normal sequential way of sending requests) or start waiting for the next response (when pipelining is enabled).
> But there was still an issue with this approach. And that is, what if the data is dynamic and server cannot find the content length before hand? Well in that case, you really can't benefit from persistent connections, could you?! In order to solve this `HTTP/1.1` introduced chunked encoding. In such cases server may omit content-Length in favor of chunked encoding (more to it in a moment). However, if none of them are available, then the connection must be closed at the end of request.
A thread is an execution context in which the instructions to the CPU can be scheduled and executed independently of the parent process. Concurrency is the concept of multiple threads in a shared memory space being computed simultaneously (or intermittently executed in succession to provide that illusion). Concurrency allows multiple processes to execute at once and can apply to programming languages as well as operating systems.
"title":"Learn to become a modern frontend developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development. Learn to become a modern frontend developer by following the steps, skills, resources and guides listed in this roadmap.",
"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer",
"description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.",
"keywords":[
"javascript roadmap 2022",
"frontend roadmap 2022",
"frontend developer roadmap 2022",
"guide to becoming a developer",
"guide to becoming a frontend developer",
"frontend developer",
@@ -13,6 +16,7 @@
"javascript developer",
"frontend development skills",
"frontend development skills test",
"frontend roadmap",
"frontend engineer roadmap",
"frontend developer roadmap",
"become a frontend developer",
@@ -28,27 +32,34 @@
]
},
"title":"Frontend Developer",
"description":"Step by step guide to becoming a modern frontend developer in 2021",
"description":"Step by step guide to becoming a modern frontend developer in 2022",
"featuredTitle":"Frontend",
"featuredDescription":"Step by step guide to becoming a frontend developer in 2021",
"featuredDescription":"Step by step guide to becoming a frontend developer in 2022",
"title":"Learn to become a modern backend developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for modern backend development. Learn to become a modern backend developer by following the steps, skills, resources and guides listed in this roadmap.",
"title":"Backend Developer Roadmap: Learn to become a modern backend developer",
"description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.",
"keywords":[
"backend roadmap 2022",
"backend developer roadmap 2022",
"guide to becoming a developer",
"guide to becoming a backend developer",
"backend roadmap",
"backend developer",
"backend engineer",
"backend skills",
@@ -71,18 +82,22 @@
]
},
"title":"Backend Developer",
"description":"Step by step guide to becoming a modern backend developer in 2021",
"description":"Step by step guide to becoming a modern backend developer in 2022",
"type":"role",
"featuredTitle":"Backend",
"featuredDescription":"Step by step guide to becoming a backend developer in 2021",
"featuredDescription":"Step by step guide to becoming a backend developer in 2022",
"title":"DevOps Roadmap: Learn to become a DevOps Engineer or SRE",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"devops roadmap 2022",
"sre roadmap 2022",
"operations roadmap 2022",
"guide to becoming a devops enginer",
"devops roadmap",
"sre roadmap",
@@ -108,12 +126,14 @@
]
},
"title":"DevOps Roadmap",
"description":"Step by step guide for DevOps, SRE or any other Operations Role in 2021",
"description":"Step by step guide for DevOps, SRE or any other Operations Role in 2022",
"featuredTitle":"DevOps",
"featuredDescription":"Step by step guide for DevOps or operations role in 2021",
"type":"role",
"featuredDescription":"Step by step guide for DevOps or operations role in 2022",
"title":"React Developer Roadmap: Learn to become a React developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for react development. Learn to become a modern React developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"react roadmap 2022",
"react developer roadmap 2022",
"guide to becoming a react developer",
"react developer roadmap",
"react roadmap",
@@ -146,14 +170,15 @@
]
},
"title":"React Developer",
"description":"Everything that is there to learn about React and the ecosystem in 2021.",
"description":"Everything that is there to learn about React and the ecosystem in 2022.",
"featuredTitle":"React",
"featuredDescription":"Step by step guide to become a React Developer in 2021",
"type":"tool",
"featuredDescription":"Step by step guide to become a React Developer in 2022",
"title":"Angular Developer Roadmap: Learn to become a Angular developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for angular development. Learn to become a modern Angular developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming a angular developer",
"angular developer roadmap",
"angular roadmap",
"become angular developer",
"angular developer skills",
"angular skills test",
"skills for angular development",
"learn angular development",
"what is angular",
"angular quiz",
"angular interview questions"
]
},
"title":"Angular Developer",
"description":"Everything that is there to learn about Angular and the ecosystem in 2022.",
"featuredTitle":"Angular",
"type":"tool",
"featuredDescription":"Step by step guide to become a Angular Developer in 2022",
"title":"Vue Developer Roadmap: Learn to become a Vue developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for vue development. Learn to become a modern Vue developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming a vue developer",
"guide to becoming a vue.js developer",
"vue developer roadmap",
"vue.js developer roadmap",
"vue roadmap",
"vue.js roadmap",
"become vue developer",
"become vue.js developer",
"vue developer skills",
"vue.js developer skills",
"vue skills test",
"vue.js skills test",
"skills for vue development",
"skills for vue.js development",
"learn vue development",
"learn vue.js development",
"what is vue",
"what is vue.js",
"vue quiz",
"vue.js quiz",
"vue interview questions",
"vue.js interview questions"
]
},
"title":"Vue Developer",
"description":"Everything that is there to learn about Vue and the ecosystem in 2022.",
"featuredTitle":"Vue",
"type":"tool",
"featuredDescription":"Step by step guide to become a Vue Developer in 2022",
"title":"JavaScript Developer Roadmap: Step by step guide to learn JavaScript",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for javascript development. Learn to become a modern JavaScript developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"javascript guide 2022",
"learn javascript",
"step by step javascript guide",
"javascript roadmap 2022",
"javascript developer roadmap 2022",
"guide to becoming a javascript developer",
"javascript developer roadmap",
"javascript roadmap",
"become javascript developer",
"javascript developer skills",
"javascript skills test",
"skills for javascript development",
"learn javascript development",
"what is javascript",
"javascript quiz",
"javascript interview questions"
]
},
"title":"JavaScript Roadmap",
"description":"Step by step guide to learn JavaScript in 2022",
"featuredTitle":"JavaScript",
"type":"tool",
"featuredDescription":"Step by step guide to learn JavaScript in 2022",
"title":"Android Developer Roadmap: Learn to become an Android developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for android development. Learn to become a modern Android developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming an android developer",
"android developer roadmap",
"android roadmap",
"become android developer",
"android developer skills",
"android skills test",
"skills for android development",
"learn android development",
"what is android",
"android quiz",
"android interview questions"
]
},
"title":"Android Developer",
"description":"Step by step guide to becoming an Android developer in 2022",
"featuredTitle":"Android",
"type":"role",
"featuredDescription":"Step by step guide to becoming an Android Developer in 2022",
"title":"Learn to become a modern Python developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for python development. Learn to become a modern Python developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming an python developer",
"python developer roadmap",
"python roadmap",
"become python developer",
"python developer skills",
"python skills test",
"skills for python development",
"learn python development",
"what is python",
"python quiz",
"python interview questions"
]
},
"title":"Python Developer",
"description":"Step by step guide to becoming a Python developer in 2022",
"featuredTitle":"Python",
"type":"tool",
"featuredDescription":"Step by step guide to becoming a Python Developer in 2022",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for Go development. Learn to become a modern React developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming a golang developer",
"guide to becoming a go developer",
"golang developer",
"go developer",
"guide to golang",
"guide to go",
"golang roadmap",
"go roadmap",
"golang skills",
"go skills",
"golang skills test",
"go skills test",
"skills for golang",
"skills for go",
"cloud development",
"what is golang",
"what is go",
"golang quiz",
"go quiz",
"golang interview questions",
"go interview questions"
]
},
"title":"Go Developer",
"description":"Step by step guide to becoming a Go developer in 2022",
"featuredTitle":"Go",
"type":"tool",
"featuredDescription":"Step by step guide to becoming a Go developer in 2022",
"title":"Learn to become a modern Java developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for java development. Learn to become a modern Java developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords":[
"guide to becoming a developer",
"guide to becoming a java developer",
"java developer",
"java engineer",
"java skills",
"guide to java",
"java roadmap",
"java skills",
"java skills test",
"skills for java",
"cloud development",
"what is java",
"java quiz",
"java interview questions",
"java engineer roadmap",
"java developer roadmap",
"become a java developer",
"java developer career path",
"java developer",
"modern java developer"
]
},
"title":"Java Developer",
"description":"Step by step guide to becoming a Java developer in 2022",
"featuredTitle":"Java",
"type":"tool",
"featuredDescription":"Step by step guide to becoming a Java Developer in 2022",
"title":"Android Developer Roadmap: Learn to become an Android developer",
"description":"Community driven, articles, resources, guides, interview questions, quizzes for android development. Learn to become a modern Android developer by following the steps, skills, resources and guides listed in this roadmap.",
"title":"Blockchain Developer Roadmap: Learn to become a blockchain developer",
"description":"Learn to become a blockchain developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.",
"keywords":[
"guide to becoming an android developer",
"android developer roadmap",
"android roadmap",
"become android developer",
"android developer skills",
"android skills test",
"skills for android development",
"learn android development",
"what is android",
"android quiz",
"android interview questions"
"blockchain roadmap 2022",
"web3 developer roadmap",
"web3 developer roadmap 2022",
"web3 roadmap",
"blockchain developer roadmap 2022",
"guide to becoming a blockchain developer",
"guide to becoming a blockchain developer",
"blockchain roadmap",
"blockchain developer",
"blockchain engineer",
"blockchain skills",
"blockchain development",
"javascript developer",
"blockchain development skills",
"blockchain development skills test",
"blockchain engineer roadmap",
"blockchain developer roadmap",
"become a blockchain developer",
"blockchain developer career path",
"javascript developer",
"modern javascript developer",
"node developer",
"skills for blockchain development",
"learn blockchain development",
"what is blockchain development",
"blockchain developer quiz",
"blockchain developer interview questions"
]
},
"title":"Android Developer",
"description":"Step by step guide to becoming an Android developer in 2021",
"featuredTitle":"Android",
"featuredDescription":"Step by step guide to becoming an Android Developer in 2021",
"isTextHeavy":true,
"isCommunity":true,
"title":"Blockchain Developer",
"description":"Step by step guide to becoming a blockchain developer in 2022.",
"featuredTitle":"Blockchain",
"featuredDescription":"Step by step guide to becoming a blockchain developer in 2022",
This page is incomplete and is being worked upon. Please check back later or <a href='/signup'>subscribe</a> / <a href='https://twitter.com/kamranahmedse'>follow me on twitter</a> to get notified. Also, feel free to contribute by suggesting the resources in <a href='https://github.com/kamranahmedse/developer-roadmap'>the issues</a>.
</div>
# Become a Frontend Developer
Before I go ahead and list down the resources, please know that the roadmap and the list below is exhaustive and you don't need to know it all from the get go. For frontend development, all you need to get started with is learn some basic HTML, CSS and JavaScript and start working on projects; everything else you will learn along the way.
## Internet and how it works?
Get the basic understanding of internet, browsers, networks and other relevant knowledge.
* <BadgeLink badgeText='Read' href='/guides/what-is-internet'>What is Internet?</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the internet works in 5 minutes</BadgeLink>
* <BadgeLink badgeText='Read' href='https://kamranahmed.info/blog/2016/08/13/http-in-depth/'>What is HTTP and how it evolved?</BadgeLink>
* <BadgeLink badgeText='Read' href='https://blog.cloudflare.com/http3-the-past-present-and-future/'>HTTP/3: the past, the present, and the future</BadgeLink>
* <BadgeLink badgeText='Read' href='https://kinsta.com/blog/http3/'>What Is HTTP/3 – Lowdown on the Fast New UDP-Based Protocol</BadgeLink>
* <BadgeLink badgeText='Read' href='https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/'>How Browsers Work: Behind the scenes of modern web browsers</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=Rck3BALhI5c'>DNS as Fast As Possible</BadgeLink>
* <BadgeLink badgeText='Read' href='https://howdns.works/'>How DNS works?</BadgeLink>
* <BadgeLink badgeText='Read' href='/guides/dns-in-one-picture'>DNS in One Picture</BadgeLink>
## Learn HTML
HTML provides the skeleton of a webpage. Learn the basics of HTML; learn the basic tags, learn how to write semantic HTML, understand basic SEO, learn how to divide your pages into sections that will help you style them.
Please know that I have put multiple links for each resource. While you may pick something new while going through each, you don't need to go through all of them - if you feel like you have understood the concepts and are just repeating what you learnt, you may skip the resource and move to exercises section.
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=UB1O30fR-EE'>HTML Crash Course For Absolute Beginners</BadgeLink>
* <BadgeLink badgeText='Read' href='https://www.w3schools.com/html/default.asp'>W3Schools – HTML Tutorial</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
* <BadgeLink badgeText='Read' href='https://hacks.mozilla.org/2016/08/a-few-html-tips/'>A few HTML tips</BadgeLink>
* <BadgeLink badgeText='Read' href='https://hackernoon.com/six-tips-to-set-up-a-better-html-document-ud1033z3z'>Six tips to set up a better HTML document</BadgeLink>
* <BadgeLink badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/HTML/Element'>HTML elements reference</BadgeLink>
## Style your pages with CSS
With the help of HTML, you create structure for your pages. CSS allows you to style your pages and make them pretty. If you take the analogy of human body, the skeleton would be the HTML, skin would be the CSS and muscles that help us move would be JavaScript - we will learn more about JavaScript in the coming sections.
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=Wm6CUkswsNw'>Build An HTML5 Website With A Responsive Layout</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://youtu.be/JJSoEo8JSnc?t=46'>Flexbox CSS In 20 Minutes</BadgeLink>
## Basics of JavaScript
JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on. In this section, you will learn the basics of JavaScript.
* <BadgeLink variant='primary' badgeText='Watch' href='https://youtu.be/hdI2bqOjy3c?t=2'>JavaScript Crash Course for Beginners</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://youtu.be/P7t13SGytRk?t=22'>Build a Netflix Landing Page Clone with HTML, CSS & JS</BadgeLink>
## Version Control Systems and Git
Version control systems allow you to track changes to your codebase/files over time. They allow you to go back to some previous version of the codebase without any issues. Also, they help in collaborating with people working on the same code – if you’ve ever collaborated with other people on a project, you might already know the frustration of copying and merging the changes from someone else into your codebase; version control systems allow you to get rid of this issue.
In this section, you will learn what version control systems are and understand how to use Git which is the de facto VCS.
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=zbKdDsNNOhg'>Version Control System Introduction</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://youtu.be/Y9XZQO1n_7c?t=21'>Learn Git in 20 Minutes</BadgeLink>
Now that you know what git is go ahead and create an account on [GitHub](https://github.com) and push everything that you do from now on to GitHub so that you can get the practice and get it reviewed from the other people in the community.
## Modern JavaScript
In this section you will learn how to use package managers and get started with the "modern JavaScript".
* <BadgeLink badgeText='Read' href='https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70'>Modern JavaScript for Dinosaurs (Don't worry if you don't understand some parts of it)</BadgeLink>
* <BadgeLink variant='primary' badgeText='Watch' href='https://www.youtube.com/watch?v=8Rmj5UY5mJk'>What is NPM and how to use it</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.vox.com/2014/6/16/18076282/the-internet'>The Internet Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm'>How Does the Internet Work?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work'>How Does the Internet Work? MDN Docs</BadgeLink>
<BadgeLink badgeText='Watch' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=TNQsmPf24go'>How does the Internet work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the Internet Works in 5 Minutes</BadgeLink>
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. It defines how the content is requested and transmitted across the internet.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/'>What is HTTP?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://howhttps.works'>How HTTPS Works ...in a comic!</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview'>An overview of HTTP</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://kamranahmed.info/blog/2016/08/13/http-in-depth'>Journey to HTTP/2</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/'>HTTP/3 From A To Z: Core Concepts</BadgeLink>
A web browser is a software application that enables a user to access and display web pages or other online content through its graphical user interface.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.browserstack.com/guide/browser-rendering-engine'>Role of Rendering Engine in Browsers</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work'>Populating the Page: How Browsers Work</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=WjDrMKZWCt0'>How Do Web Browsers Work?</BadgeLink>
The Domain Name System (DNS) is the phonebook of the Internet. Humans access information online through domain names, like nytimes.com or espn.com. Web browsers interact through Internet Protocol (IP) addresses. DNS translates domain names to IP addresses so browsers can load Internet resources.
A domain name is a unique, easy-to-remember address used to access websites, such as ‘google.com’, and ‘facebook.com’. Users can connect to websites using domain names thanks to the DNS system.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name'>What is a Domain Name?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/'>What is a Domain Name? | Domain name vs. URL</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=Y4cRx19nhJk'>A Beginners Guide to How Domain Names Work</BadgeLink>
Web hosting is an online service that allows you to publish your website files onto the internet. So, anyone who has access to the internet has access to your website.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.vox.com/2014/6/16/18076282/the-internet'>The Internet Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm'>How Does the Internet Work?</BadgeLink>
<BadgeLink badgeText='Watch' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=x3c1ih2NJEg'>How does the Internet work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the Internet Works in 5 Minutes</BadgeLink>
HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>
Before submitting data to the server, it is important to ensure all required form controls are filled out, in the correct format. This is called client-side form validation, and helps ensure data submitted matches the requirements set forth in the various form controls.
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation'>MDN Web Docs: Client-side form validation</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://web.dev/learn/forms/'>Learn Forms by web.dev</BadgeLink>
Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://neilpatel.com/blog/seo-developers/'>8 Must-Know SEO Best Practices For Developers</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://medium.com/welldone-software/seo-for-developers-a-quick-overview-5b5b7ce34679'>SEO for Developers</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=xsVTqzratPs'>Complete SEO Course for Beginners</BadgeLink>
HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=pQN-pnXPaVg'>HTML Full Course - Build a Website Tutorial</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://www.youtube.com/watch?v=qz0aGYrrlhU'>HTML Tutorial for Beginners: HTML Crash Course</BadgeLink>
CSS or Cascading Style Sheets is the language used to style the frontend of any website. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/learn/responsive-web-design/'>freeCodeCamp — Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://learn.shayhowe.com/html-css/building-your-first-web-page/'>Learn to Code HTML & CSS</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics:
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://flexboxfroggy.com/'>Learn and Practice Flexbox</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://cssgridgarden.com/'>Game for learning CSS Grid</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/all-about-floats/'>All about Floats</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/'>Positioning Types: How Do They Differ?</BadgeLink>
Responsive Web Designing is the technique to make your webpages look good on all screen sizes. There are certain techniques used to achieve that e.g. CSS media queries, percentage widths, min or max widths heights etc.
CSS or Cascading Style Sheets is the language used to style the frontend of any website. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://web.dev/learn/css/'>Web.dev by Google — Learn CSS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/learn/responsive-web-design/'>freeCodeCamp — Responsive Web Design</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://learn.shayhowe.com/html-css/building-your-first-web-page/'>Learn to Code HTML & CSS</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on.
The Document Object Model (DOM) connects web pages to scripts or programming languages by representing the structure of a document—such as the HTML representing a web page—in memory.
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/'>What is the DOM?</BadgeLink>
Ajax is the technique that lets us send and receive the data asynchronously from the servers e.g. updating the user profile or asynchronously fetching the list of searched products without reloading the page.
ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming language. It is the first major update to the language since ES5 which was standardized in 2009. You should look at the features introduced with ES6 and onwards.
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://javascript.info/bubbling-and-capturing'>Event Bubbling and Capturing</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Glossary/Scope'>Scope in JavaScript</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/'>Var, Let and Const — What's the difference?</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain'>Inheritance and Prototype Chain</BadgeLink>
JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on.
[Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Version control systems allow you to track changes to your codebase/files over time. They allow you to go back to some previous version of the codebase without any issues. Also, they help in collaborating with people working on the same code – if you’ve ever collaborated with other people on a project, you might already know the frustration of copying and merging the changes from someone else into your codebase; version control systems allow you to get rid of this issue.
[GitHub](https://github.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=w3jLJU7DT5E'>What is GitHub?</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=wpISo9TNjfU'>Git vs. GitHub: What's the difference?</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=RGOj5yH7evk'>Git and GitHub for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme='yellow' href='https://www.youtube.com/watch?v=eulnSXkhE7I'>Git and GitHub - CS50 Beyond 2019</BadgeLink>
[GitLab](https://gitlab.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
[BitBucket](https://bitbucket.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are.
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https'>Enabling HTTPS on Your Servers</BadgeLink>
Content Security Policy is a computer security standard introduced to prevent cross-site scripting, clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context.
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources.
OWASP or Open Web Application Security Project is an online community that produces freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.