From 47f172e148d1bf8d89791c8a33f04bd0c738d03c Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 9 Dec 2021 23:55:03 +0000 Subject: [PATCH] Updates --- 404.html | 2 +- .../android.json | 0 .../android/android.json | 0 .../android/interactive.json | 0 .../android/resources.json | 0 .../angular.json | 0 .../angular/angular.json | 0 .../angular/interactive.json | 0 .../angular/resources.json | 0 .../aws.json | 0 .../aws/aws.json | 0 .../aws/interactive.json | 0 .../aws/resources.json | 0 .../backend.json | 0 .../backend/backend.json | 0 .../backend/interactive.json | 0 .../backend/resources.json | 0 .../devops.json | 0 .../devops/devops.json | 0 .../devops/interactive.json | 0 .../devops/resources.json | 0 .../frontend.json | 0 .../frontend/build-tools.json | 0 .../build-tools:linters-formatters.json | 0 ...build-tools:linters-formatters:eslint.json | 0 ...ild-tools:linters-formatters:prettier.json | 0 ...d-tools:linters-formatters:standardjs.json | 0 .../frontend/build-tools:module-bundlers.json | 0 .../build-tools:module-bundlers:esbuild.json | 0 .../build-tools:module-bundlers:parcel.json | 0 .../build-tools:module-bundlers:rollup.json | 0 .../build-tools:module-bundlers:vite.json | 0 .../build-tools:module-bundlers:webpack.json | 0 .../frontend/build-tools:task-runners.json | 0 .../build-tools:task-runners:npm-scripts.json | 0 .../frontend/css-architecture.json | 0 .../frontend/css-architecture:bem.json | 0 .../frontend/css-architecture:oocss.json | 0 .../frontend/css-architecture:smacss.json | 0 .../frontend/css-frameworks.json | 0 .../frontend/css-frameworks:css-first.json | 0 .../css-frameworks:css-first:bootstrap.json | 0 .../css-frameworks:css-first:bulma.json | 0 .../frontend/css-frameworks:js-first.json | 0 .../css-frameworks:js-first:chakra-ui.json | 0 .../css-frameworks:js-first:material-ui.json | 0 .../css-frameworks:js-first:radix-ui.json | 0 .../css-frameworks:js-first:tailwind-css.json | 0 .../frontend/css-preprocessors.json | 0 .../frontend/css-preprocessors:less.json | 0 .../frontend/css-preprocessors:postcss.json | 0 .../frontend/css-preprocessors:sass.json | 0 .../frontend/css.json | 0 .../frontend/css:learn-the-basics.json | 0 .../frontend/css:making-layouts.json | 0 ...s:responsive-design-and-media-queries.json | 0 .../frontend/desktop-applications.json | 0 .../frontend/desktop-applications:carlo.json | 0 .../desktop-applications:electron.json | 0 .../desktop-applications:proton-native.json | 0 .../frontend/graphql.json | 0 .../frontend/graphql:apollo.json | 0 .../frontend/graphql:relay-modern.json | 0 .../frontend/home.json | 0 .../frontend/html.json | 0 .../frontend/html:accessibility.json | 0 .../html:conventions-and-best-practices.json | 0 .../frontend/html:forms-and-validations.json | 0 .../frontend/html:learn-the-basics.json | 0 .../frontend/html:seo-basics.json | 0 .../frontend/html:writing-semantic-html.json | 0 .../frontend/interactive.json | 0 .../frontend/internet.json | 0 .../internet:browsers-and-how-they-work.json | 0 .../internet:dns-and-how-it-works.json | 0 .../internet:how-does-the-internet-work.json | 0 .../internet:what-is-domain-name.json | 0 .../frontend/internet:what-is-hosting.json | 0 .../frontend/internet:what-is-http.json | 0 .../frontend/javascript.json | 0 .../frontend/javascript:concepts.json | 0 ...javascript:es6-and-modular-javascript.json | 0 .../javascript:learn-dom-manipulation.json | 0 .../javascript:learn-fetch-api-ajax-xhr.json | 0 ...avascript:syntax-and-basic-constructs.json | 0 .../frontend/mobile-applications.json | 0 .../frontend/mobile-applications:flutter.json | 0 .../frontend/mobile-applications:ionic.json | 0 .../mobile-applications:nativescript.json | 0 .../mobile-applications:react-native.json | 0 .../frontend/modern-css.json | 0 .../frontend/modern-css:css-modules.json | 0 .../frontend/modern-css:emotion.json | 0 .../modern-css:styled-components.json | 0 .../frontend/modern-css:styled-jsx.json | 0 .../frontend/package-managers.json | 0 .../frontend/package-managers:npm.json | 0 .../frontend/package-managers:yarn.json | 0 .../frontend/pick-a-framework.json | 0 .../frontend/pick-a-framework:angular.json | 0 .../pick-a-framework:angular:ngrx.json | 0 .../pick-a-framework:angular:rxjs.json | 0 .../frontend/pick-a-framework:react-js.json | 0 .../pick-a-framework:react-js:mobx.json | 0 .../pick-a-framework:react-js:recoil.json | 0 .../pick-a-framework:react-js:redux.json | 0 .../frontend/pick-a-framework:vue-js.json | 0 .../pick-a-framework:vue-js:vuex.json | 0 .../frontend/progressive-web-apps.json | 0 .../frontend/progressive-web-apps:apis.json | 0 .../progressive-web-apps:performance.json | 0 .../frontend/repo-hosting-services.json | 0 .../repo-hosting-services:bitbucket.json | 0 .../repo-hosting-services:github.json | 0 .../repo-hosting-services:gitlab.json | 0 .../frontend/resources.json | 0 .../frontend/server-side-rendering.json | 0 .../server-side-rendering:angular.json | 0 ...rver-side-rendering:angular:universal.json | 0 .../server-side-rendering:react-js.json | 0 ...rver-side-rendering:react-js:after-js.json | 0 ...erver-side-rendering:react-js:next-js.json | 0 .../server-side-rendering:vue-js.json | 0 .../server-side-rendering:vue-js:nuxt-js.json | 0 .../frontend/static-site-generators.json | 0 .../static-site-generators:eleventy.json | 0 .../static-site-generators:gatsbyjs.json | 0 .../static-site-generators:gridsome.json | 0 .../frontend/static-site-generators:hugo.json | 0 .../static-site-generators:jekyll.json | 0 .../static-site-generators:next-js.json | 0 .../static-site-generators:nuxt-js.json | 0 .../static-site-generators:vuepress.json | 0 .../frontend/testing-your-apps.json | 0 .../frontend/testing-your-apps:cypress.json | 0 .../frontend/testing-your-apps:enzyme.json | 0 .../frontend/testing-your-apps:jest.json | 0 .../testing-your-apps:other-options.json | 0 ...sting-your-apps:react-testing-library.json | 0 .../frontend/type-checkers.json | 0 .../frontend/type-checkers:flow.json | 0 .../frontend/type-checkers:typescript.json | 0 .../frontend/version-control-systems.json | 0 ...on-control-systems:basic-usage-of-git.json | 0 .../frontend/web-assembly.json | 0 .../frontend/web-components.json | 0 .../web-components:custom-elements.json | 0 .../web-components:html-templates.json | 0 .../frontend/web-components:shadow-dom.json | 0 .../frontend/web-security-knowledge.json | 0 ...ity-knowledge:content-security-policy.json | 0 .../frontend/web-security-knowledge:cors.json | 0 .../web-security-knowledge:https.json | 0 ...curity-knowledge:owasp-security-risks.json | 0 .../golang.json | 0 .../golang/golang.json | 0 .../golang/interactive.json | 0 .../golang/resources.json | 0 .../guides.json | 0 .../guides/asymptotic-notation.json | 0 ...-blocking-javascript-with-async-defer.json | 0 .../guides/basic-authentication.json | 0 .../guides/big-o-notation.json | 0 .../guides/character-encodings.json | 0 .../guides/ci-cd.json | 0 .../guides/design-patterns-for-humans.json | 0 .../guides/dhcp-in-one-picture.json | 0 .../guides/dns-in-one-picture.json | 0 .../guides/history-of-javascript.json | 0 .../guides/http-caching.json | 0 .../guides/jwt-authentication.json | 0 .../guides/levels-of-seniority.json | 0 .../guides/oauth.json | 0 .../guides/proxy-servers.json | 0 .../guides/random-numbers.json | 0 .../guides/scaling-databases.json | 0 .../guides/session-authentication.json | 0 .../guides/ssl-tls-https-ssh.json | 0 .../guides/sso.json | 0 .../guides/token-authentication.json | 0 .../guides/torrent-client.json | 0 .../guides/unfamiliar-codebase.json | 0 .../guides/what-are-web-vitals.json | 0 .../guides/what-is-internet.json | 0 .../guides/what-is-sli-slo-sla.json | 0 ...-and-they-will-come-wont-work-anymore.json | 0 .../index.json | 0 .../java.json | 0 .../java/interactive.json | 0 .../java/java.json | 0 .../java/resources.json | 0 .../postgresql-dba.json | 0 .../postgresql-dba/interactive.json | 0 .../postgresql-dba/postgresql-dba.json | 0 .../postgresql-dba/resources.json | 0 .../python.json | 0 .../python/interactive.json | 0 .../python/python.json | 0 .../python/resources.json | 0 .../qa.json | 0 .../qa/interactive.json | 0 .../qa/qa.json | 0 .../qa/resources.json | 0 .../react.json | 0 .../react/interactive.json | 0 .../react/react.json | 0 .../react/resources.json | 0 .../roadmaps.json | 0 .../watch.json | 0 .../watch/acid-explained.json | 0 .../watch/all-about-http-caching.json | 0 .../arrays-and-objects-in-javascript.json | 0 .../watch/async-javascript.json | 0 .../watch/big-o-notation.json | 0 .../watch/content-delivery-networks.json | 0 .../watch/dns-explained.json | 0 .../watch/dns-records.json | 0 .../watch/floating-point-arithmetic.json | 0 ...freeze-and-seal-objects-in-javascript.json | 0 .../watch/how-to-use-css-variables.json | 0 .../watch/how-to-use-github-actions.json | 0 .../watch/javascript-fetch-api.json | 0 .../watch/load-balancers-101.json | 0 .../watch/osi-model.json | 0 .../watch/practical-intro-to-react.json | 0 .../watch/promises-in-javascript.json | 0 .../watch/random-number-generators.json | 0 .../watch/scaling-the-unscalable.json | 0 .../watch/ssh-ssl-tls.json | 0 .../watch/system-design-101.json | 0 .../watch/tcp-ip-model.json | 0 .../watch/transport-protocols-tcp-vs-udp.json | 0 .../watch/what-is-cap-theorem.json | 0 .../watch/what-is-dependency-injection.json | 0 .../what-is-dom-shadow-dom-virtual-dom.json | 0 .../watch/what-is-eventual-consistency.json | 0 .../watch/yaml-in-depth.json | 0 .../_buildManifest.js | 2 +- .../_middlewareManifest.js | 0 .../_ssgManifest.js | 0 _next/static/chunks/280-2de421805c613e39.js | 1 - _next/static/chunks/280-90b5a7676c3fcbc6.js | 1 + _next/static/chunks/714-86c6e14669113664.js | 1 - _next/static/chunks/714-f91da914d5c7e868.js | 1 + about.html | 4 +- android.html | 4 +- android/android.html | 2 +- android/interactive.html | 2 +- android/resources.html | 4 +- angular.html | 4 +- angular/angular.html | 2 +- angular/interactive.html | 2 +- angular/resources.html | 4 +- aws.html | 4 +- aws/aws.html | 2 +- aws/interactive.html | 2 +- aws/resources.html | 4 +- backend.html | 2 +- backend/backend.html | 2 +- backend/interactive.html | 2 +- backend/resources.html | 4 +- devops.html | 2 +- devops/devops.html | 2 +- devops/interactive.html | 2 +- devops/resources.html | 4 +- frontend.html | 2 +- frontend/build-tools.html | 4 +- frontend/build-tools:linters-formatters.html | 4 +- ...build-tools:linters-formatters:eslint.html | 4 +- ...ild-tools:linters-formatters:prettier.html | 4 +- ...d-tools:linters-formatters:standardjs.html | 4 +- frontend/build-tools:module-bundlers.html | 4 +- .../build-tools:module-bundlers:esbuild.html | 4 +- .../build-tools:module-bundlers:parcel.html | 4 +- .../build-tools:module-bundlers:rollup.html | 4 +- .../build-tools:module-bundlers:vite.html | 4 +- .../build-tools:module-bundlers:webpack.html | 4 +- frontend/build-tools:task-runners.html | 4 +- .../build-tools:task-runners:npm-scripts.html | 4 +- frontend/css-architecture.html | 4 +- frontend/css-architecture:bem.html | 4 +- frontend/css-architecture:oocss.html | 4 +- frontend/css-architecture:smacss.html | 4 +- frontend/css-frameworks.html | 4 +- frontend/css-frameworks:css-first.html | 4 +- .../css-frameworks:css-first:bootstrap.html | 4 +- frontend/css-frameworks:css-first:bulma.html | 4 +- frontend/css-frameworks:js-first.html | 4 +- .../css-frameworks:js-first:chakra-ui.html | 4 +- .../css-frameworks:js-first:material-ui.html | 4 +- .../css-frameworks:js-first:radix-ui.html | 4 +- .../css-frameworks:js-first:tailwind-css.html | 4 +- frontend/css-preprocessors.html | 4 +- frontend/css-preprocessors:less.html | 4 +- frontend/css-preprocessors:postcss.html | 4 +- frontend/css-preprocessors:sass.html | 4 +- frontend/css.html | 4 +- frontend/css:learn-the-basics.html | 4 +- frontend/css:making-layouts.html | 4 +- ...s:responsive-design-and-media-queries.html | 4 +- frontend/desktop-applications.html | 4 +- frontend/desktop-applications:carlo.html | 4 +- frontend/desktop-applications:electron.html | 4 +- .../desktop-applications:proton-native.html | 4 +- frontend/graphql.html | 4 +- frontend/graphql:apollo.html | 4 +- frontend/graphql:relay-modern.html | 4 +- frontend/home.html | 4 +- frontend/html.html | 4 +- frontend/html:accessibility.html | 4 +- .../html:conventions-and-best-practices.html | 4 +- frontend/html:forms-and-validations.html | 4 +- frontend/html:learn-the-basics.html | 4 +- frontend/html:seo-basics.html | 4 +- frontend/html:writing-semantic-html.html | 4 +- frontend/interactive.html | 2 +- frontend/internet.html | 4 +- .../internet:browsers-and-how-they-work.html | 4 +- frontend/internet:dns-and-how-it-works.html | 4 +- .../internet:how-does-the-internet-work.html | 4 +- frontend/internet:what-is-domain-name.html | 4 +- frontend/internet:what-is-hosting.html | 4 +- frontend/internet:what-is-http.html | 4 +- frontend/javascript.html | 6 ++- frontend/javascript:concepts.html | 4 +- ...javascript:es6-and-modular-javascript.html | 4 +- .../javascript:learn-dom-manipulation.html | 4 +- .../javascript:learn-fetch-api-ajax-xhr.html | 4 +- ...avascript:syntax-and-basic-constructs.html | 4 +- frontend/mobile-applications.html | 4 +- frontend/mobile-applications:flutter.html | 4 +- frontend/mobile-applications:ionic.html | 4 +- .../mobile-applications:nativescript.html | 4 +- .../mobile-applications:react-native.html | 4 +- frontend/modern-css.html | 4 +- frontend/modern-css:css-modules.html | 4 +- frontend/modern-css:emotion.html | 4 +- frontend/modern-css:styled-components.html | 4 +- frontend/modern-css:styled-jsx.html | 4 +- frontend/package-managers.html | 4 +- frontend/package-managers:npm.html | 4 +- frontend/package-managers:yarn.html | 4 +- frontend/pick-a-framework.html | 4 +- frontend/pick-a-framework:angular.html | 4 +- frontend/pick-a-framework:angular:ngrx.html | 4 +- frontend/pick-a-framework:angular:rxjs.html | 4 +- frontend/pick-a-framework:react-js.html | 4 +- frontend/pick-a-framework:react-js:mobx.html | 4 +- .../pick-a-framework:react-js:recoil.html | 4 +- frontend/pick-a-framework:react-js:redux.html | 4 +- frontend/pick-a-framework:vue-js.html | 4 +- frontend/pick-a-framework:vue-js:vuex.html | 4 +- frontend/progressive-web-apps.html | 4 +- frontend/progressive-web-apps:apis.html | 4 +- .../progressive-web-apps:performance.html | 4 +- frontend/repo-hosting-services.html | 4 +- frontend/repo-hosting-services:bitbucket.html | 4 +- frontend/repo-hosting-services:github.html | 4 +- frontend/repo-hosting-services:gitlab.html | 4 +- frontend/resources.html | 14 +------ frontend/server-side-rendering.html | 4 +- frontend/server-side-rendering:angular.html | 4 +- ...rver-side-rendering:angular:universal.html | 4 +- frontend/server-side-rendering:react-js.html | 4 +- ...rver-side-rendering:react-js:after-js.html | 4 +- ...erver-side-rendering:react-js:next-js.html | 4 +- frontend/server-side-rendering:vue-js.html | 4 +- .../server-side-rendering:vue-js:nuxt-js.html | 4 +- frontend/static-site-generators.html | 4 +- frontend/static-site-generators:eleventy.html | 4 +- frontend/static-site-generators:gatsbyjs.html | 4 +- frontend/static-site-generators:gridsome.html | 4 +- frontend/static-site-generators:hugo.html | 4 +- frontend/static-site-generators:jekyll.html | 4 +- frontend/static-site-generators:next-js.html | 4 +- frontend/static-site-generators:nuxt-js.html | 4 +- frontend/static-site-generators:vuepress.html | 4 +- frontend/testing-your-apps.html | 4 +- frontend/testing-your-apps:cypress.html | 4 +- frontend/testing-your-apps:enzyme.html | 4 +- frontend/testing-your-apps:jest.html | 4 +- frontend/testing-your-apps:other-options.html | 4 +- ...sting-your-apps:react-testing-library.html | 4 +- frontend/type-checkers.html | 4 +- frontend/type-checkers:flow.html | 4 +- frontend/type-checkers:typescript.html | 4 +- frontend/version-control-systems.html | 6 ++- ...on-control-systems:basic-usage-of-git.html | 8 +++- frontend/web-assembly.html | 4 +- frontend/web-components.html | 4 +- frontend/web-components:custom-elements.html | 4 +- frontend/web-components:html-templates.html | 4 +- frontend/web-components:shadow-dom.html | 4 +- frontend/web-security-knowledge.html | 4 +- ...ity-knowledge:content-security-policy.html | 4 +- frontend/web-security-knowledge:cors.html | 4 +- frontend/web-security-knowledge:https.html | 4 +- ...curity-knowledge:owasp-security-risks.html | 4 +- golang.html | 4 +- golang/golang.html | 2 +- golang/interactive.html | 2 +- golang/resources.html | 4 +- guides.html | 2 +- guides/asymptotic-notation.html | 4 +- ...-blocking-javascript-with-async-defer.html | 4 +- guides/basic-authentication.html | 4 +- guides/big-o-notation.html | 4 +- guides/character-encodings.html | 4 +- guides/ci-cd.html | 4 +- guides/design-patterns-for-humans.html | 4 +- guides/dhcp-in-one-picture.html | 4 +- guides/dns-in-one-picture.html | 4 +- guides/history-of-javascript.html | 4 +- guides/http-caching.html | 4 +- guides/jwt-authentication.html | 4 +- guides/levels-of-seniority.html | 4 +- guides/oauth.html | 4 +- guides/proxy-servers.html | 4 +- guides/random-numbers.html | 4 +- guides/scaling-databases.html | 4 +- guides/session-authentication.html | 4 +- guides/ssl-tls-https-ssh.html | 4 +- guides/sso.html | 4 +- guides/token-authentication.html | 4 +- guides/torrent-client.html | 4 +- guides/unfamiliar-codebase.html | 4 +- guides/what-are-web-vitals.html | 4 +- guides/what-is-internet.html | 4 +- guides/what-is-sli-slo-sla.html | 4 +- ...-and-they-will-come-wont-work-anymore.html | 4 +- index.html | 2 +- java.html | 4 +- java/interactive.html | 2 +- java/java.html | 2 +- java/resources.html | 4 +- postgresql-dba.html | 4 +- postgresql-dba/interactive.html | 2 +- postgresql-dba/postgresql-dba.html | 2 +- postgresql-dba/resources.html | 4 +- privacy.html | 4 +- python.html | 4 +- python/interactive.html | 2 +- python/python.html | 2 +- python/resources.html | 4 +- qa.html | 4 +- qa/interactive.html | 2 +- qa/qa.html | 2 +- qa/resources.html | 4 +- react.html | 4 +- react/interactive.html | 2 +- react/react.html | 2 +- react/resources.html | 4 +- roadmaps.html | 2 +- signup.html | 2 +- sitemap.xml | 38 +++++++++---------- terms.html | 4 +- thanks.html | 2 +- watch.html | 2 +- watch/acid-explained.html | 4 +- watch/all-about-http-caching.html | 4 +- watch/arrays-and-objects-in-javascript.html | 4 +- watch/async-javascript.html | 4 +- watch/big-o-notation.html | 4 +- watch/content-delivery-networks.html | 4 +- watch/dns-explained.html | 4 +- watch/dns-records.html | 4 +- watch/floating-point-arithmetic.html | 4 +- ...freeze-and-seal-objects-in-javascript.html | 4 +- watch/how-to-use-css-variables.html | 4 +- watch/how-to-use-github-actions.html | 4 +- watch/javascript-fetch-api.html | 4 +- watch/load-balancers-101.html | 4 +- watch/osi-model.html | 4 +- watch/practical-intro-to-react.html | 4 +- watch/promises-in-javascript.html | 4 +- watch/random-number-generators.html | 4 +- watch/scaling-the-unscalable.html | 4 +- watch/ssh-ssl-tls.html | 4 +- watch/system-design-101.html | 4 +- watch/tcp-ip-model.html | 4 +- watch/transport-protocols-tcp-vs-udp.html | 4 +- watch/what-is-cap-theorem.html | 4 +- watch/what-is-dependency-injection.html | 4 +- watch/what-is-dom-shadow-dom-virtual-dom.html | 4 +- watch/what-is-eventual-consistency.html | 4 +- watch/yaml-in-depth.html | 4 +- 486 files changed, 481 insertions(+), 483 deletions(-) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/android.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/android/android.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/android/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/android/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/angular.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/angular/angular.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/angular/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/angular/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/aws.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/aws/aws.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/aws/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/aws/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/backend.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/backend/backend.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/backend/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/backend/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/devops.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/devops/devops.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/devops/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/devops/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:linters-formatters.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:linters-formatters:eslint.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:linters-formatters:prettier.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:linters-formatters:standardjs.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers:esbuild.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers:parcel.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers:rollup.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers:vite.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:module-bundlers:webpack.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:task-runners.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/build-tools:task-runners:npm-scripts.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-architecture.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-architecture:bem.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-architecture:oocss.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-architecture:smacss.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:css-first.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:css-first:bootstrap.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:css-first:bulma.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:js-first.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:js-first:chakra-ui.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:js-first:material-ui.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:js-first:radix-ui.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-frameworks:js-first:tailwind-css.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-preprocessors.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-preprocessors:less.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-preprocessors:postcss.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css-preprocessors:sass.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css:learn-the-basics.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css:making-layouts.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/css:responsive-design-and-media-queries.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/desktop-applications.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/desktop-applications:carlo.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/desktop-applications:electron.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/desktop-applications:proton-native.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/graphql.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/graphql:apollo.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/graphql:relay-modern.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/home.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:accessibility.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:conventions-and-best-practices.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:forms-and-validations.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:learn-the-basics.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:seo-basics.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/html:writing-semantic-html.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:browsers-and-how-they-work.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:dns-and-how-it-works.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:how-does-the-internet-work.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:what-is-domain-name.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:what-is-hosting.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/internet:what-is-http.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript:concepts.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript:es6-and-modular-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript:learn-dom-manipulation.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript:learn-fetch-api-ajax-xhr.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/javascript:syntax-and-basic-constructs.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/mobile-applications.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/mobile-applications:flutter.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/mobile-applications:ionic.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/mobile-applications:nativescript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/mobile-applications:react-native.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/modern-css.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/modern-css:css-modules.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/modern-css:emotion.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/modern-css:styled-components.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/modern-css:styled-jsx.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/package-managers.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/package-managers:npm.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/package-managers:yarn.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:angular.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:angular:ngrx.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:angular:rxjs.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:react-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:react-js:mobx.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:react-js:recoil.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:react-js:redux.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:vue-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/pick-a-framework:vue-js:vuex.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/progressive-web-apps.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/progressive-web-apps:apis.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/progressive-web-apps:performance.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/repo-hosting-services.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/repo-hosting-services:bitbucket.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/repo-hosting-services:github.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/repo-hosting-services:gitlab.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:angular.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:angular:universal.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:react-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:react-js:after-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:react-js:next-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:vue-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/server-side-rendering:vue-js:nuxt-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:eleventy.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:gatsbyjs.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:gridsome.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:hugo.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:jekyll.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:next-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:nuxt-js.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/static-site-generators:vuepress.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps:cypress.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps:enzyme.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps:jest.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps:other-options.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/testing-your-apps:react-testing-library.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/type-checkers.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/type-checkers:flow.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/type-checkers:typescript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/version-control-systems.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/version-control-systems:basic-usage-of-git.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-assembly.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-components.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-components:custom-elements.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-components:html-templates.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-components:shadow-dom.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-security-knowledge.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-security-knowledge:content-security-policy.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-security-knowledge:cors.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-security-knowledge:https.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/frontend/web-security-knowledge:owasp-security-risks.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/golang.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/golang/golang.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/golang/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/golang/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/asymptotic-notation.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/avoid-render-blocking-javascript-with-async-defer.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/basic-authentication.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/big-o-notation.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/character-encodings.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/ci-cd.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/design-patterns-for-humans.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/dhcp-in-one-picture.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/dns-in-one-picture.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/history-of-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/http-caching.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/jwt-authentication.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/levels-of-seniority.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/oauth.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/proxy-servers.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/random-numbers.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/scaling-databases.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/session-authentication.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/ssl-tls-https-ssh.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/sso.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/token-authentication.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/torrent-client.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/unfamiliar-codebase.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/what-are-web-vitals.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/what-is-internet.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/what-is-sli-slo-sla.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/guides/why-build-it-and-they-will-come-wont-work-anymore.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/index.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/java.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/java/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/java/java.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/java/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/postgresql-dba.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/postgresql-dba/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/postgresql-dba/postgresql-dba.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/postgresql-dba/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/python.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/python/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/python/python.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/python/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/qa.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/qa/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/qa/qa.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/qa/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/react.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/react/interactive.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/react/react.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/react/resources.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/roadmaps.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/acid-explained.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/all-about-http-caching.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/arrays-and-objects-in-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/async-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/big-o-notation.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/content-delivery-networks.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/dns-explained.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/dns-records.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/floating-point-arithmetic.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/freeze-and-seal-objects-in-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/how-to-use-css-variables.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/how-to-use-github-actions.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/javascript-fetch-api.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/load-balancers-101.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/osi-model.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/practical-intro-to-react.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/promises-in-javascript.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/random-number-generators.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/scaling-the-unscalable.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/ssh-ssl-tls.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/system-design-101.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/tcp-ip-model.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/transport-protocols-tcp-vs-udp.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/what-is-cap-theorem.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/what-is-dependency-injection.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/what-is-dom-shadow-dom-virtual-dom.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/what-is-eventual-consistency.json (100%) rename _next/data/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/watch/yaml-in-depth.json (100%) rename _next/static/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/_buildManifest.js (75%) rename _next/static/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/_middlewareManifest.js (100%) rename _next/static/{pHoWpy_L_8qOZuSnPgznt => G2QH_44i1LR_AOVjGXH7D}/_ssgManifest.js (100%) delete mode 100644 _next/static/chunks/280-2de421805c613e39.js create mode 100644 _next/static/chunks/280-90b5a7676c3fcbc6.js delete mode 100644 _next/static/chunks/714-86c6e14669113664.js create mode 100644 _next/static/chunks/714-f91da914d5c7e868.js diff --git a/404.html b/404.html index f955b825e..66f52f8c2 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -404: This page could not be found
We now have a YouTube Channel. Subscribe for the video content.

404

This page could not be found.

\ No newline at end of file +404: This page could not be found
We now have a YouTube Channel. Subscribe for the video content.

404

This page could not be found.

\ No newline at end of file diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/android.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/android.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/android.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/android.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/android/android.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/android/android.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/android/android.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/android/android.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/android/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/android/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/android/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/android/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/android/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/android/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/android/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/android/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/angular.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/angular.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/angular.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/angular.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/angular/angular.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/angular/angular.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/angular/angular.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/angular/angular.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/angular/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/angular/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/angular/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/angular/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/angular/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/angular/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/angular/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/angular/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/aws.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/aws.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/aws.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/aws.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/aws/aws.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/aws/aws.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/aws/aws.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/aws/aws.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/aws/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/aws/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/aws/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/aws/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/aws/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/aws/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/aws/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/aws/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/backend.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/backend.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/backend.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/backend.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/backend/backend.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/backend/backend.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/backend/backend.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/backend/backend.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/backend/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/backend/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/backend/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/backend/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/backend/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/backend/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/backend/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/backend/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/devops.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/devops.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/devops.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/devops.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/devops/devops.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/devops/devops.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/devops/devops.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/devops/devops.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/devops/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/devops/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/devops/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/devops/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/devops/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/devops/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/devops/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/devops/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:eslint.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:eslint.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:eslint.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:eslint.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:prettier.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:prettier.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:prettier.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:prettier.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:standardjs.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:standardjs.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:linters-formatters:standardjs.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:linters-formatters:standardjs.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:esbuild.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:esbuild.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:esbuild.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:esbuild.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:parcel.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:parcel.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:parcel.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:parcel.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:rollup.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:rollup.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:rollup.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:rollup.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:vite.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:vite.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:vite.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:vite.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:webpack.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:webpack.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:module-bundlers:webpack.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:module-bundlers:webpack.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:task-runners.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:task-runners.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:task-runners.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:task-runners.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:task-runners:npm-scripts.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:task-runners:npm-scripts.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/build-tools:task-runners:npm-scripts.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/build-tools:task-runners:npm-scripts.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:bem.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:bem.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:bem.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:bem.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:oocss.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:oocss.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:oocss.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:oocss.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:smacss.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:smacss.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-architecture:smacss.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-architecture:smacss.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first:bootstrap.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first:bootstrap.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first:bootstrap.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first:bootstrap.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first:bulma.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first:bulma.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:css-first:bulma.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:css-first:bulma.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:chakra-ui.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:chakra-ui.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:chakra-ui.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:chakra-ui.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:material-ui.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:material-ui.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:material-ui.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:material-ui.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:radix-ui.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:radix-ui.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:radix-ui.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:radix-ui.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:tailwind-css.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:tailwind-css.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-frameworks:js-first:tailwind-css.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-frameworks:js-first:tailwind-css.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:less.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:less.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:less.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:less.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:postcss.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:postcss.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:postcss.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:postcss.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:sass.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:sass.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css-preprocessors:sass.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css-preprocessors:sass.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:learn-the-basics.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:learn-the-basics.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:learn-the-basics.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:learn-the-basics.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:making-layouts.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:making-layouts.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:making-layouts.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:making-layouts.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:responsive-design-and-media-queries.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:responsive-design-and-media-queries.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/css:responsive-design-and-media-queries.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/css:responsive-design-and-media-queries.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:carlo.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:carlo.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:carlo.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:carlo.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:electron.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:electron.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:electron.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:electron.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:proton-native.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:proton-native.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/desktop-applications:proton-native.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/desktop-applications:proton-native.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql:apollo.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql:apollo.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql:apollo.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql:apollo.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql:relay-modern.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql:relay-modern.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/graphql:relay-modern.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/graphql:relay-modern.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/home.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/home.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/home.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/home.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:accessibility.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:accessibility.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:accessibility.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:accessibility.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:conventions-and-best-practices.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:conventions-and-best-practices.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:conventions-and-best-practices.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:conventions-and-best-practices.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:forms-and-validations.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:forms-and-validations.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:forms-and-validations.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:forms-and-validations.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:learn-the-basics.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:learn-the-basics.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:learn-the-basics.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:learn-the-basics.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:seo-basics.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:seo-basics.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:seo-basics.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:seo-basics.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:writing-semantic-html.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:writing-semantic-html.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/html:writing-semantic-html.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/html:writing-semantic-html.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:browsers-and-how-they-work.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:browsers-and-how-they-work.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:browsers-and-how-they-work.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:browsers-and-how-they-work.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:dns-and-how-it-works.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:dns-and-how-it-works.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:dns-and-how-it-works.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:dns-and-how-it-works.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:how-does-the-internet-work.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:how-does-the-internet-work.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:how-does-the-internet-work.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:how-does-the-internet-work.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-domain-name.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-domain-name.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-domain-name.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-domain-name.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-hosting.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-hosting.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-hosting.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-hosting.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-http.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-http.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/internet:what-is-http.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/internet:what-is-http.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:concepts.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:concepts.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:concepts.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:concepts.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:es6-and-modular-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:es6-and-modular-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:es6-and-modular-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:es6-and-modular-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:learn-dom-manipulation.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:learn-dom-manipulation.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:learn-dom-manipulation.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:learn-dom-manipulation.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:learn-fetch-api-ajax-xhr.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:learn-fetch-api-ajax-xhr.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:learn-fetch-api-ajax-xhr.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:learn-fetch-api-ajax-xhr.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:syntax-and-basic-constructs.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:syntax-and-basic-constructs.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/javascript:syntax-and-basic-constructs.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/javascript:syntax-and-basic-constructs.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:flutter.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:flutter.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:flutter.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:flutter.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:ionic.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:ionic.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:ionic.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:ionic.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:nativescript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:nativescript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:nativescript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:nativescript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:react-native.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:react-native.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/mobile-applications:react-native.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/mobile-applications:react-native.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:css-modules.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:css-modules.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:css-modules.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:css-modules.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:emotion.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:emotion.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:emotion.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:emotion.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:styled-components.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:styled-components.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:styled-components.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:styled-components.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:styled-jsx.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:styled-jsx.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/modern-css:styled-jsx.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/modern-css:styled-jsx.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers:npm.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers:npm.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers:npm.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers:npm.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers:yarn.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers:yarn.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/package-managers:yarn.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/package-managers:yarn.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular:ngrx.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular:ngrx.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular:ngrx.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular:ngrx.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular:rxjs.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular:rxjs.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:angular:rxjs.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:angular:rxjs.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:mobx.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:mobx.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:mobx.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:mobx.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:recoil.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:recoil.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:recoil.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:recoil.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:redux.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:redux.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:react-js:redux.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:react-js:redux.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:vue-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:vue-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:vue-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:vue-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:vue-js:vuex.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:vue-js:vuex.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/pick-a-framework:vue-js:vuex.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/pick-a-framework:vue-js:vuex.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps:apis.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps:apis.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps:apis.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps:apis.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps:performance.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps:performance.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/progressive-web-apps:performance.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/progressive-web-apps:performance.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:bitbucket.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:bitbucket.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:bitbucket.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:bitbucket.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:github.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:github.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:github.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:github.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:gitlab.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:gitlab.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/repo-hosting-services:gitlab.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/repo-hosting-services:gitlab.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:angular.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:angular.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:angular.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:angular.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:angular:universal.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:angular:universal.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:angular:universal.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:angular:universal.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js:after-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js:after-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js:after-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js:after-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js:next-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js:next-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:react-js:next-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:react-js:next-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:vue-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:vue-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:vue-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:vue-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:vue-js:nuxt-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:vue-js:nuxt-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/server-side-rendering:vue-js:nuxt-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/server-side-rendering:vue-js:nuxt-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:eleventy.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:eleventy.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:eleventy.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:eleventy.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:gatsbyjs.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:gatsbyjs.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:gatsbyjs.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:gatsbyjs.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:gridsome.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:gridsome.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:gridsome.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:gridsome.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:hugo.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:hugo.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:hugo.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:hugo.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:jekyll.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:jekyll.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:jekyll.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:jekyll.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:next-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:next-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:next-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:next-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:nuxt-js.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:nuxt-js.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:nuxt-js.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:nuxt-js.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:vuepress.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:vuepress.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/static-site-generators:vuepress.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/static-site-generators:vuepress.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:cypress.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:cypress.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:cypress.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:cypress.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:enzyme.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:enzyme.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:enzyme.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:enzyme.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:jest.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:jest.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:jest.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:jest.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:other-options.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:other-options.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:other-options.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:other-options.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:react-testing-library.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:react-testing-library.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/testing-your-apps:react-testing-library.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/testing-your-apps:react-testing-library.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers:flow.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers:flow.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers:flow.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers:flow.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers:typescript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers:typescript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/type-checkers:typescript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/type-checkers:typescript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/version-control-systems.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/version-control-systems.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/version-control-systems.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/version-control-systems.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/version-control-systems:basic-usage-of-git.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/version-control-systems:basic-usage-of-git.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/version-control-systems:basic-usage-of-git.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/version-control-systems:basic-usage-of-git.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-assembly.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-assembly.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-assembly.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-assembly.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:custom-elements.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:custom-elements.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:custom-elements.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:custom-elements.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:html-templates.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:html-templates.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:html-templates.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:html-templates.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:shadow-dom.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:shadow-dom.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-components:shadow-dom.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-components:shadow-dom.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:content-security-policy.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:content-security-policy.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:content-security-policy.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:content-security-policy.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:cors.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:cors.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:cors.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:cors.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:https.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:https.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:https.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:https.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:owasp-security-risks.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:owasp-security-risks.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/frontend/web-security-knowledge:owasp-security-risks.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/frontend/web-security-knowledge:owasp-security-risks.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/golang.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/golang.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/golang.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/golang.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/golang/golang.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/golang/golang.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/golang/golang.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/golang/golang.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/golang/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/golang/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/golang/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/golang/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/golang/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/golang/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/golang/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/golang/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/asymptotic-notation.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/asymptotic-notation.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/asymptotic-notation.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/asymptotic-notation.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/avoid-render-blocking-javascript-with-async-defer.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/avoid-render-blocking-javascript-with-async-defer.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/avoid-render-blocking-javascript-with-async-defer.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/avoid-render-blocking-javascript-with-async-defer.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/basic-authentication.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/basic-authentication.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/basic-authentication.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/basic-authentication.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/big-o-notation.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/big-o-notation.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/big-o-notation.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/big-o-notation.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/character-encodings.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/character-encodings.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/character-encodings.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/character-encodings.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/ci-cd.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/ci-cd.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/ci-cd.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/ci-cd.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/design-patterns-for-humans.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/design-patterns-for-humans.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/design-patterns-for-humans.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/design-patterns-for-humans.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/dhcp-in-one-picture.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/dhcp-in-one-picture.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/dhcp-in-one-picture.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/dhcp-in-one-picture.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/dns-in-one-picture.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/dns-in-one-picture.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/dns-in-one-picture.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/dns-in-one-picture.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/history-of-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/history-of-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/history-of-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/history-of-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/http-caching.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/http-caching.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/http-caching.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/http-caching.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/jwt-authentication.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/jwt-authentication.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/jwt-authentication.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/jwt-authentication.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/levels-of-seniority.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/levels-of-seniority.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/levels-of-seniority.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/levels-of-seniority.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/oauth.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/oauth.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/oauth.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/oauth.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/proxy-servers.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/proxy-servers.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/proxy-servers.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/proxy-servers.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/random-numbers.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/random-numbers.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/random-numbers.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/random-numbers.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/scaling-databases.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/scaling-databases.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/scaling-databases.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/scaling-databases.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/session-authentication.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/session-authentication.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/session-authentication.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/session-authentication.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/ssl-tls-https-ssh.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/ssl-tls-https-ssh.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/ssl-tls-https-ssh.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/ssl-tls-https-ssh.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/sso.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/sso.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/sso.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/sso.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/token-authentication.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/token-authentication.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/token-authentication.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/token-authentication.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/torrent-client.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/torrent-client.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/torrent-client.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/torrent-client.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/unfamiliar-codebase.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/unfamiliar-codebase.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/unfamiliar-codebase.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/unfamiliar-codebase.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-are-web-vitals.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-are-web-vitals.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-are-web-vitals.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-are-web-vitals.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-is-internet.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-is-internet.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-is-internet.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-is-internet.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-is-sli-slo-sla.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-is-sli-slo-sla.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/what-is-sli-slo-sla.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/what-is-sli-slo-sla.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/guides/why-build-it-and-they-will-come-wont-work-anymore.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/guides/why-build-it-and-they-will-come-wont-work-anymore.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/guides/why-build-it-and-they-will-come-wont-work-anymore.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/guides/why-build-it-and-they-will-come-wont-work-anymore.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/index.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/index.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/index.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/index.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/java.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/java.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/java.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/java.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/java/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/java/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/java/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/java/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/java/java.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/java/java.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/java/java.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/java/java.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/java/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/java/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/java/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/java/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/postgresql-dba.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/postgresql-dba.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/postgresql-dba.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/postgresql-dba.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/postgresql-dba/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/postgresql-dba/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/python.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/python.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/python.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/python.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/python/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/python/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/python/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/python/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/python/python.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/python/python.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/python/python.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/python/python.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/python/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/python/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/python/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/python/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/qa.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/qa.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/qa.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/qa.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/qa/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/qa/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/qa/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/qa/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/qa/qa.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/qa/qa.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/qa/qa.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/qa/qa.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/qa/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/qa/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/qa/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/qa/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/react.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/react.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/react.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/react.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/react/interactive.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/react/interactive.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/react/interactive.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/react/interactive.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/react/react.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/react/react.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/react/react.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/react/react.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/react/resources.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/react/resources.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/react/resources.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/react/resources.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/roadmaps.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/roadmaps.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/roadmaps.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/roadmaps.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/acid-explained.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/acid-explained.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/acid-explained.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/acid-explained.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/all-about-http-caching.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/all-about-http-caching.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/all-about-http-caching.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/all-about-http-caching.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/arrays-and-objects-in-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/arrays-and-objects-in-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/arrays-and-objects-in-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/arrays-and-objects-in-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/async-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/async-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/async-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/async-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/big-o-notation.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/big-o-notation.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/big-o-notation.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/big-o-notation.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/content-delivery-networks.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/content-delivery-networks.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/content-delivery-networks.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/content-delivery-networks.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/dns-explained.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/dns-explained.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/dns-explained.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/dns-explained.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/dns-records.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/dns-records.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/dns-records.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/dns-records.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/floating-point-arithmetic.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/floating-point-arithmetic.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/floating-point-arithmetic.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/floating-point-arithmetic.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/freeze-and-seal-objects-in-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/freeze-and-seal-objects-in-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/freeze-and-seal-objects-in-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/freeze-and-seal-objects-in-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/how-to-use-css-variables.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/how-to-use-css-variables.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/how-to-use-css-variables.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/how-to-use-css-variables.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/how-to-use-github-actions.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/how-to-use-github-actions.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/how-to-use-github-actions.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/how-to-use-github-actions.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/javascript-fetch-api.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/javascript-fetch-api.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/javascript-fetch-api.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/javascript-fetch-api.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/load-balancers-101.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/load-balancers-101.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/load-balancers-101.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/load-balancers-101.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/osi-model.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/osi-model.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/osi-model.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/osi-model.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/practical-intro-to-react.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/practical-intro-to-react.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/practical-intro-to-react.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/practical-intro-to-react.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/promises-in-javascript.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/promises-in-javascript.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/promises-in-javascript.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/promises-in-javascript.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/random-number-generators.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/random-number-generators.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/random-number-generators.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/random-number-generators.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/scaling-the-unscalable.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/scaling-the-unscalable.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/scaling-the-unscalable.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/scaling-the-unscalable.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/ssh-ssl-tls.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/ssh-ssl-tls.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/ssh-ssl-tls.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/ssh-ssl-tls.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/system-design-101.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/system-design-101.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/system-design-101.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/system-design-101.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/tcp-ip-model.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/tcp-ip-model.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/tcp-ip-model.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/tcp-ip-model.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/transport-protocols-tcp-vs-udp.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/transport-protocols-tcp-vs-udp.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/transport-protocols-tcp-vs-udp.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/transport-protocols-tcp-vs-udp.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-cap-theorem.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-cap-theorem.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-cap-theorem.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-cap-theorem.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-dependency-injection.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-dependency-injection.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-dependency-injection.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-dependency-injection.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-dom-shadow-dom-virtual-dom.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-dom-shadow-dom-virtual-dom.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-dom-shadow-dom-virtual-dom.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-dom-shadow-dom-virtual-dom.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-eventual-consistency.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-eventual-consistency.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/what-is-eventual-consistency.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/what-is-eventual-consistency.json diff --git a/_next/data/pHoWpy_L_8qOZuSnPgznt/watch/yaml-in-depth.json b/_next/data/G2QH_44i1LR_AOVjGXH7D/watch/yaml-in-depth.json similarity index 100% rename from _next/data/pHoWpy_L_8qOZuSnPgznt/watch/yaml-in-depth.json rename to _next/data/G2QH_44i1LR_AOVjGXH7D/watch/yaml-in-depth.json diff --git a/_next/static/pHoWpy_L_8qOZuSnPgznt/_buildManifest.js b/_next/static/G2QH_44i1LR_AOVjGXH7D/_buildManifest.js similarity index 75% rename from _next/static/pHoWpy_L_8qOZuSnPgznt/_buildManifest.js rename to _next/static/G2QH_44i1LR_AOVjGXH7D/_buildManifest.js index f338a4ccd..0575f5e11 100644 --- a/_next/static/pHoWpy_L_8qOZuSnPgznt/_buildManifest.js +++ b/_next/static/G2QH_44i1LR_AOVjGXH7D/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(s,a,c,e,t,i,u,d,r,p){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,d,a,"static/chunks/pages/index-d7cc540b30e34661.js"],"/_error":["static/chunks/pages/_error-2280fa386d040b66.js"],"/about":[s,c,a,"static/chunks/pages/about-232019b6b6353c44.js"],"/guides":[s,a,"static/chunks/pages/guides-a446a06b367081ec.js"],"/guides/[guide]":[s,c,a,e,"static/chunks/pages/guides/[guide]-97b3e15727bf199f.js"],"/privacy":[s,c,a,"static/chunks/pages/privacy-e1e530c3dfd43cc1.js"],"/roadmaps":[s,d,a,"static/chunks/pages/roadmaps-9740eedd6239df0c.js"],"/signup":[s,"static/chunks/18-03837ae87ec2cbe1.js",a,"static/chunks/pages/signup-adbf1143e131779e.js"],"/terms":[s,c,a,t,"static/chunks/pages/terms-58af618792d0ef9b.js"],"/thanks":[s,a,"static/chunks/pages/thanks-3c085bc891d82226.js"],"/watch":[s,a,"static/chunks/pages/watch-ecf973a57f0563b8.js"],"/watch/[video]":[s,c,a,i,"static/chunks/pages/watch/[video]-c0be45a5054de203.js"],"/[roadmap]":[s,c,r,a,e,i,t,u,p,"static/chunks/pages/[roadmap]-6e8e5b03b46b670e.js"],"/[roadmap]/interactive":[s,c,r,a,e,i,t,u,p,"static/chunks/pages/[roadmap]/interactive-11b738bbf0b3c890.js"],"/[roadmap]/resources":[s,c,a,e,i,t,u,"static/chunks/pages/[roadmap]/resources-f952cce1d67b2932.js"],"/[roadmap]/[group]":[s,c,a,e,i,t,u,"static/chunks/pages/[roadmap]/[group]-c7c9b559d518f9a0.js"],sortedPages:["/","/_app","/_error","/about","/guides","/guides/[guide]","/privacy","/roadmaps","/signup","/terms","/thanks","/watch","/watch/[video]","/[roadmap]","/[roadmap]/interactive","/[roadmap]/resources","/[roadmap]/[group]"]}}("static/chunks/680-be87eefc1f260b8f.js","static/chunks/515-713f89c4eebf3bd6.js","static/chunks/22-5e16bc1f52d67473.js","static/chunks/564-1bb7d36bf2fbccb8.js","static/chunks/547-f266cbae5dda46b7.js","static/chunks/568-d5ea51d640393149.js","static/chunks/280-2de421805c613e39.js","static/chunks/919-1e7178a47a665345.js","static/chunks/26-f1efe05501904fc9.js","static/chunks/714-86c6e14669113664.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(s,a,c,e,t,i,u,r,d,p){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,r,a,"static/chunks/pages/index-d7cc540b30e34661.js"],"/_error":["static/chunks/pages/_error-2280fa386d040b66.js"],"/about":[s,c,a,"static/chunks/pages/about-232019b6b6353c44.js"],"/guides":[s,a,"static/chunks/pages/guides-a446a06b367081ec.js"],"/guides/[guide]":[s,c,a,e,"static/chunks/pages/guides/[guide]-97b3e15727bf199f.js"],"/privacy":[s,c,a,"static/chunks/pages/privacy-e1e530c3dfd43cc1.js"],"/roadmaps":[s,r,a,"static/chunks/pages/roadmaps-9740eedd6239df0c.js"],"/signup":[s,"static/chunks/18-03837ae87ec2cbe1.js",a,"static/chunks/pages/signup-adbf1143e131779e.js"],"/terms":[s,c,a,t,"static/chunks/pages/terms-58af618792d0ef9b.js"],"/thanks":[s,a,"static/chunks/pages/thanks-3c085bc891d82226.js"],"/watch":[s,a,"static/chunks/pages/watch-ecf973a57f0563b8.js"],"/watch/[video]":[s,c,a,i,"static/chunks/pages/watch/[video]-c0be45a5054de203.js"],"/[roadmap]":[s,c,d,a,e,i,t,u,p,"static/chunks/pages/[roadmap]-6e8e5b03b46b670e.js"],"/[roadmap]/interactive":[s,c,d,a,e,i,t,u,p,"static/chunks/pages/[roadmap]/interactive-11b738bbf0b3c890.js"],"/[roadmap]/resources":[s,c,a,e,i,t,u,"static/chunks/pages/[roadmap]/resources-f952cce1d67b2932.js"],"/[roadmap]/[group]":[s,c,a,e,i,t,u,"static/chunks/pages/[roadmap]/[group]-c7c9b559d518f9a0.js"],sortedPages:["/","/_app","/_error","/about","/guides","/guides/[guide]","/privacy","/roadmaps","/signup","/terms","/thanks","/watch","/watch/[video]","/[roadmap]","/[roadmap]/interactive","/[roadmap]/resources","/[roadmap]/[group]"]}}("static/chunks/680-be87eefc1f260b8f.js","static/chunks/515-713f89c4eebf3bd6.js","static/chunks/22-5e16bc1f52d67473.js","static/chunks/564-1bb7d36bf2fbccb8.js","static/chunks/547-f266cbae5dda46b7.js","static/chunks/568-d5ea51d640393149.js","static/chunks/280-90b5a7676c3fcbc6.js","static/chunks/919-1e7178a47a665345.js","static/chunks/26-f1efe05501904fc9.js","static/chunks/714-f91da914d5c7e868.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/pHoWpy_L_8qOZuSnPgznt/_middlewareManifest.js b/_next/static/G2QH_44i1LR_AOVjGXH7D/_middlewareManifest.js similarity index 100% rename from _next/static/pHoWpy_L_8qOZuSnPgznt/_middlewareManifest.js rename to _next/static/G2QH_44i1LR_AOVjGXH7D/_middlewareManifest.js diff --git a/_next/static/pHoWpy_L_8qOZuSnPgznt/_ssgManifest.js b/_next/static/G2QH_44i1LR_AOVjGXH7D/_ssgManifest.js similarity index 100% rename from _next/static/pHoWpy_L_8qOZuSnPgznt/_ssgManifest.js rename to _next/static/G2QH_44i1LR_AOVjGXH7D/_ssgManifest.js diff --git a/_next/static/chunks/280-2de421805c613e39.js b/_next/static/chunks/280-2de421805c613e39.js deleted file mode 100644 index 4050faa58..000000000 --- a/_next/static/chunks/280-2de421805c613e39.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[280],{9280:function(e,t,n){var r={"./authors":8712,"./authors.json":8712,"./guides":9552,"./guides.json":9552,"./guides/asymptotic-notation.md":3070,"./guides/avoid-render-blocking-javascript-with-async-defer.md":8829,"./guides/basic-authentication.md":5151,"./guides/big-o-notation.md":5198,"./guides/character-encodings.md":3180,"./guides/ci-cd.md":7354,"./guides/design-patterns-for-humans.md":3406,"./guides/dhcp-in-one-picture.md":3784,"./guides/dns-in-one-picture.md":9937,"./guides/history-of-javascript.md":8003,"./guides/http-caching.md":9128,"./guides/journey-to-http2.md":3045,"./guides/jwt-authentication.md":5772,"./guides/levels-of-seniority.md":3878,"./guides/oauth.md":801,"./guides/project-history.md":6681,"./guides/proxy-servers.md":7035,"./guides/random-numbers.md":513,"./guides/scaling-databases.md":7507,"./guides/session-authentication.md":8676,"./guides/ssl-tls-https-ssh.md":6053,"./guides/sso.md":9809,"./guides/token-authentication.md":5607,"./guides/torrent-client.md":4972,"./guides/unfamiliar-codebase.md":5941,"./guides/upcoming.md":5104,"./guides/what-are-web-vitals.md":3442,"./guides/what-is-internet.md":1470,"./guides/what-is-sli-slo-sla.md":1307,"./guides/why-build-it-and-they-will-come-wont-work-anymore.md":9554,"./pages/about.md":4160,"./pages/privacy.md":5591,"./pages/terms.md":2547,"./roadmaps":1662,"./roadmaps.json":1662,"./roadmaps/100-frontend/content-paths":8359,"./roadmaps/100-frontend/content-paths.json":8359,"./roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md":5606,"./roadmaps/100-frontend/content/100-internet/101-what-is-http.md":181,"./roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md":6152,"./roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md":3405,"./roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md":2222,"./roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md":8129,"./roadmaps/100-frontend/content/100-internet/readme.md":2633,"./roadmaps/100-frontend/content/101-html/100-learn-the-basics.md":7828,"./roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md":258,"./roadmaps/100-frontend/content/101-html/102-forms-and-validations.md":757,"./roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md":1881,"./roadmaps/100-frontend/content/101-html/104-accessibility.md":3699,"./roadmaps/100-frontend/content/101-html/105-seo-basics.md":584,"./roadmaps/100-frontend/content/101-html/readme.md":3913,"./roadmaps/100-frontend/content/102-css/100-learn-the-basics.md":8533,"./roadmaps/100-frontend/content/102-css/101-making-layouts.md":3780,"./roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md":1118,"./roadmaps/100-frontend/content/102-css/readme.md":5211,"./roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md":617,"./roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md":1569,"./roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md":4746,"./roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md":6401,"./roadmaps/100-frontend/content/103-javascript/104-concepts.md":2698,"./roadmaps/100-frontend/content/103-javascript/readme.md":8613,"./roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md":2555,"./roadmaps/100-frontend/content/104-version-control-systems/readme.md":8405,"./roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md":8548,"./roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md":1952,"./roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md":6145,"./roadmaps/100-frontend/content/105-repo-hosting-services/readme.md":493,"./roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md":2510,"./roadmaps/100-frontend/content/106-web-security-knowledge/101-content-security-policy.md":9377,"./roadmaps/100-frontend/content/106-web-security-knowledge/102-cors.md":8705,"./roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md":8633,"./roadmaps/100-frontend/content/106-web-security-knowledge/readme.md":9012,"./roadmaps/100-frontend/content/107-package-managers/100-npm.md":1415,"./roadmaps/100-frontend/content/107-package-managers/101-yarn.md":6356,"./roadmaps/100-frontend/content/107-package-managers/readme.md":8988,"./roadmaps/100-frontend/content/108-css-architecture/100-bem.md":6665,"./roadmaps/100-frontend/content/108-css-architecture/101-oocss.md":1750,"./roadmaps/100-frontend/content/108-css-architecture/102-smacss.md":8887,"./roadmaps/100-frontend/content/108-css-architecture/readme.md":5220,"./roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md":4447,"./roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md":5106,"./roadmaps/100-frontend/content/109-css-preprocessors/102-less.md":2972,"./roadmaps/100-frontend/content/109-css-preprocessors/readme.md":8365,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md":6523,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md":8664,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md":6795,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md":9500,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md":5629,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md":5648,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md":762,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md":6459,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/100-prettier.md":840,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/101-eslint.md":2816,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md":4453,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md":2310,"./roadmaps/100-frontend/content/110-build-tools/readme.md":7093,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md":7139,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md":5783,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md":7810,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md":6199,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md":5685,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md":3162,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md":3666,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md":549,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md":5277,"./roadmaps/100-frontend/content/111-pick-a-framework/readme.md":1473,"./roadmaps/100-frontend/content/112-modern-css/100-styled-components.md":3745,"./roadmaps/100-frontend/content/112-modern-css/101-css-modules.md":1720,"./roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md":4349,"./roadmaps/100-frontend/content/112-modern-css/103-emotion.md":4291,"./roadmaps/100-frontend/content/112-modern-css/readme.md":9904,"./roadmaps/100-frontend/content/113-web-components/100-html-templates.md":1484,"./roadmaps/100-frontend/content/113-web-components/101-custom-elements.md":6625,"./roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md":2901,"./roadmaps/100-frontend/content/113-web-components/readme.md":8933,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md":4642,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md":4505,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md":4740,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md":1160,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md":6937,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md":9120,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md":3694,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md":7562,"./roadmaps/100-frontend/content/114-css-frameworks/readme.md":1879,"./roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md":5996,"./roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md":2772,"./roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md":3431,"./roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md":4375,"./roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md":4946,"./roadmaps/100-frontend/content/115-testing-your-apps/readme.md":5770,"./roadmaps/100-frontend/content/116-type-checkers/100-typescript.md":3227,"./roadmaps/100-frontend/content/116-type-checkers/101-flow.md":9935,"./roadmaps/100-frontend/content/116-type-checkers/readme.md":8323,"./roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md":4990,"./roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md":5089,"./roadmaps/100-frontend/content/117-progressive-web-apps/readme.md":2768,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md":9086,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md":4930,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md":8747,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md":7815,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md":6394,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md":2573,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md":5137,"./roadmaps/100-frontend/content/118-server-side-rendering/readme.md":1905,"./roadmaps/100-frontend/content/119-graphql/100-apollo.md":410,"./roadmaps/100-frontend/content/119-graphql/101-relay-modern.md":485,"./roadmaps/100-frontend/content/119-graphql/readme.md":4133,"./roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md":7935,"./roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md":1291,"./roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md":855,"./roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md":2374,"./roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md":1898,"./roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md":355,"./roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md":2578,"./roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md":476,"./roadmaps/100-frontend/content/120-static-site-generators/readme.md":5470,"./roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md":2919,"./roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md":5760,"./roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md":9268,"./roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md":7280,"./roadmaps/100-frontend/content/121-mobile-applications/readme.md":388,"./roadmaps/100-frontend/content/122-desktop-applications/100-electron.md":7137,"./roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md":373,"./roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md":5588,"./roadmaps/100-frontend/content/122-desktop-applications/readme.md":8773,"./roadmaps/100-frontend/content/123-web-assembly.md":9429,"./roadmaps/100-frontend/content/readme.md":7086,"./roadmaps/100-frontend/meta":9258,"./roadmaps/100-frontend/meta.json":9258,"./roadmaps/100-frontend/resources.md":7083,"./roadmaps/101-backend/meta":6782,"./roadmaps/101-backend/meta.json":6782,"./roadmaps/101-backend/resources.md":8093,"./roadmaps/102-devops/meta":4017,"./roadmaps/102-devops/meta.json":4017,"./roadmaps/102-devops/resources.md":5332,"./roadmaps/103-react/landscape.md":4558,"./roadmaps/103-react/meta":8477,"./roadmaps/103-react/meta.json":8477,"./roadmaps/103-react/resources.md":63,"./roadmaps/104-angular/landscape.md":595,"./roadmaps/104-angular/meta":8834,"./roadmaps/104-angular/meta.json":8834,"./roadmaps/104-angular/resources.md":7489,"./roadmaps/105-android/landscape.md":5191,"./roadmaps/105-android/meta":9508,"./roadmaps/105-android/meta.json":9508,"./roadmaps/105-android/resources.md":7890,"./roadmaps/106-python/landscape.md":9556,"./roadmaps/106-python/meta":4099,"./roadmaps/106-python/meta.json":4099,"./roadmaps/106-python/resources.md":8481,"./roadmaps/107-golang/landscape.md":2388,"./roadmaps/107-golang/meta":2737,"./roadmaps/107-golang/meta.json":2737,"./roadmaps/107-golang/resources.md":9101,"./roadmaps/108-java/landscape.md":7913,"./roadmaps/108-java/meta":2507,"./roadmaps/108-java/meta.json":2507,"./roadmaps/108-java/resources.md":9673,"./roadmaps/109-postgresql-dba/landscape.md":1464,"./roadmaps/109-postgresql-dba/meta":8951,"./roadmaps/109-postgresql-dba/meta.json":8951,"./roadmaps/109-postgresql-dba/resources.md":1545,"./roadmaps/110-aws/landscape.md":8188,"./roadmaps/110-aws/meta":7559,"./roadmaps/110-aws/meta.json":7559,"./roadmaps/110-aws/resources.md":1048,"./roadmaps/111-qa/landscape.md":4894,"./roadmaps/111-qa/meta":3204,"./roadmaps/111-qa/meta.json":3204,"./roadmaps/111-qa/resources.md":9598,"./site":8641,"./site.json":8641,"./videos":1797,"./videos.json":1797,"./videos/acid-explained.md":8974,"./videos/all-about-http-caching.md":3730,"./videos/arrays-and-objects-in-javascript.md":7589,"./videos/async-javascript.md":8001,"./videos/big-o-notation.md":6736,"./videos/content-delivery-networks.md":5489,"./videos/dns-explained.md":9029,"./videos/dns-records.md":4046,"./videos/floating-point-arithmetic.md":7327,"./videos/freeze-and-seal-objects-in-javascript.md":6527,"./videos/how-to-use-css-variables.md":5512,"./videos/how-to-use-github-actions.md":8688,"./videos/javascript-fetch-api.md":965,"./videos/load-balancers-101.md":2012,"./videos/osi-model.md":5495,"./videos/practical-intro-to-react.md":4913,"./videos/promises-in-javascript.md":7e3,"./videos/random-number-generators.md":1516,"./videos/scaling-the-unscalable.md":7850,"./videos/ssh-ssl-tls.md":9345,"./videos/system-design-101.md":5069,"./videos/tcp-ip-model.md":1559,"./videos/transport-protocols-tcp-vs-udp.md":2382,"./videos/what-is-cap-theorem.md":5875,"./videos/what-is-dependency-injection.md":2635,"./videos/what-is-dom-shadow-dom-virtual-dom.md":6095,"./videos/what-is-eventual-consistency.md":2068,"./videos/yaml-in-depth.md":6372};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=9280},4160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",null,"What is roadmap.sh?"),(0,r.kt)("p",null,"Roadmap.sh is the place containing community curated roadmaps, study plans, paths and resources for the budding\ndevelopers. It started as a ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"set of charts to guide the developers"),"\nwho are confused about what should they learn next but that alone wasn't enough so I expanded it into the website to get\nmore contributors involved."),(0,r.kt)("h2",null,"What are the plans for roadmap.sh?"),(0,r.kt)("p",null,"The website started off as\na ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"simple repository containing a few charts")," for developers and\nbased on my personal opinions but it could have been much more than that so I decided to expand it to a website where\npeople can contribute to study plans with their areas of expertise as well, add more roadmaps, write guides etc."),(0,r.kt)("p",null,"We haven't opened up the sign ups for now but we will be doing. My long term plans for this website are to turn it into\na goto place for the developers to seek guidance about their careers, help others, share their journeys, incentivize the\nlearnings, get feedbacks on their projects etc."),(0,r.kt)("h2",null,"How did you build roadmap.sh?"),(0,r.kt)("p",null,"The basic version of the website has been built with ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/zeit/next.js/"}),"Next.js"),", is opensource and can\nbe found on ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"github"),". It was hastily done to get it out in front of the\npeople and get people to start contributing, so it might be rough on the edges, but that is where we need your help."),(0,r.kt)("h2",null,"How does it make money?"),(0,r.kt)("p",null,"It doesn't make any money. I have been using my personal time and budget to build it. I did not create this website with\nany intentions of monetization but as a good will, to help the people get out of the frustration that I was once in."),(0,r.kt)("p",null,"Having said that, I love teaching and my future plans are to be able to work full-time on roadmap.sh for which it has to\nmake enough money to pay for my rent, groceries, bills, travel expenses, etc but even if it doesn't it's likely I'll\ncontinue growing the site however I can. My focus at the moment is not making money from it and just add content that\ncreates value for the people."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Sponsor the efforts by ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/sponsors/kamranahmedse"}),"paying as little as 5$ per month")," or with ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://paypal.me/kamranahmedse"}),"one time payment via paypal"),". Alternatively, reach out to me at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),".")),(0,r.kt)("h2",null,"Can I contribute?"),(0,r.kt)("p",null,"You definitely can, infact you are encouraged to do that. Even your minor contributions such as typo fixes count. The\nsource code of the website can be ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"found on Github"),". Your contributions can\nbe:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adding a new roadmap"),(0,r.kt)("li",{parentName:"ul"},"Updating existing roadmap"),(0,r.kt)("li",{parentName:"ul"},"Suggesting changes to the existing roadmaps"),(0,r.kt)("li",{parentName:"ul"},"Writing a Guide"),(0,r.kt)("li",{parentName:"ul"},"Updating an existing guide"),(0,r.kt)("li",{parentName:"ul"},"Fixing grammar mistakes, typos on the website or the content"),(0,r.kt)("li",{parentName:"ul"},"Updating the UI of the website"),(0,r.kt)("li",{parentName:"ul"},"Refactoring the codebase"),(0,r.kt)("li",{parentName:"ul"},"Becoming a sponsor")),(0,r.kt)("p",null,"Just make sure\nto ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing"}),"follow the contribution guidelines")," when you\ndecide to contribute."),(0,r.kt)("h2",null,"Can I redistribute the content?"),(0,r.kt)("p",null,"No, the license of the content on this website does not allow you to redistribute any of the content on this website\nanywhere. You can use it for personal use or share the link to the content if you have to but redistribution is not\nallowed."),(0,r.kt)("h2",null,"What is the best way to contact you?"),(0,r.kt)("p",null,"Tweet or send me a message ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://twitter.com/kamranahmedse"}),"@kamranahmedse")," or email me\nat ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),". I get lots of messages so apologies in advance if you don't hear back\nfrom me soon but I do reply to everyone."))}s.isMDXComponent=!0},5591:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Privacy Policy"),(0,r.kt)("p",null,"By using or accessing the Services in any manner, you acknowledge that you accept the practices and policies outlined in this Privacy Policy, and you hereby consent that we will collect, use, and share your information in the following ways. Remember that your use of roadmap.sh\u2019s Services is at all times subject to the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/terms"}),"Terms of Use"),", which incorporates this Privacy Policy. Any terms we use in this Policy without defining them have the definitions given to them in the Terms of Use."),(0,r.kt)("h2",null,"What does this Privacy Policy cover?"),(0,r.kt)("p",null,'This Privacy Policy covers our treatment of personally identifiable information ("Personal Information") that we gather when you are accessing or using our Services, but not to the practices of companies we don\u2019t own or control, or people that we don\u2019t manage. We gather various types of Personal Information from our users, as explained in more detail below, and we use this Personal Information internally in connection with our Services, including to personalize, provide, and improve our services, to allow you to set up a user account and profile, to contact you and allow other users to contact you, to fulfill your requests for certain products and services, and to analyze how you use the Services. In certain cases, we may also share some Personal Information with third parties, but only as described below.'),(0,r.kt)("p",null,"As noted in the Terms of Use, we do not knowingly collect or solicit personal information from anyone under the age of 13. If you are under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn that we have collected personal information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"Will roadmap.sh ever change this Privacy Policy?"),(0,r.kt)("p",null,"We\u2019re constantly trying to improve our Services, so we may need to change this Privacy Policy from time to time as well, but we will alert you to changes by updating the services on the website, placing a notice on the Services, by sending you an email, and/or by some other means. Please note that if you\u2019ve opted not to receive legal notice emails from us (or you haven\u2019t provided us with your email address), those legal notices will still govern your use of the Services, and you are still responsible for reading and understanding them. If you use the Services after any changes to the Privacy Policy have been posted, that means you agree to all of the changes. Use of information we collect now is subject to the Privacy Policy in effect at the time such information is used or collected."),(0,r.kt)("h2",null,"What Information does roadmap.sh Collect?"),(0,r.kt)("p",null,"Information You Provide to Us:"),(0,r.kt)("p",null,"We receive and store any information you knowingly provide to us. For example, through the registration process and/or through your account settings, we may collect Personal Information such as your name, title, email address, phone number, and third-party account credentials (for example, your log-in credentials for Twitter or other third party sites. If you provide your third-party account credentials to us or otherwise sign in to the Services through a third party site or service, you understand some content and/or information in those accounts (\u201cThird Party Account Information\u201d) may be transmitted into your account with us if you authorize such transmissions], and that Third Party Account Information transmitted to our Services is covered by this Privacy Policy. Certain information may be required to register with us or to take advantage of some of our features."),(0,r.kt)("p",null,"We may communicate with you if you\u2019ve provided us the means to do so. For example, if you\u2019ve given us your email address, we may send you promotional email offers on behalf of other businesses, or email you about your use of the Services. Also, we may receive a confirmation when you open an email from us. This confirmation helps us make our communications with you more interesting and improve our services. If you do not want to receive communications from us, please email us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"Information Collected Automatically"),(0,r.kt)("p",null,"Whenever you interact with our Services, we automatically receive and record information on our server logs from your browser or device, which may include your IP address, geolocation data, device identification, \u201ccookie\u201d information, the type of browser and/or device you\u2019re using to access our Services, and the page or feature you requested. \u201cCookies\u201d are identifiers we transfer to your browser or device that allow us to recognize your browser or device and tell us how and when pages and features in our Services are visited and by how many people. You may be able to change the preferences on your browser or device to prevent or limit your device\u2019s acceptance of cookies, but this may prevent you from taking advantage of some of our features. Our advertising partners may also transmit cookies to your browser or device, when you click on ads that appear on the Services. Also if you click on a link to a third party website or service, such third party may also transmit cookies to you. Again, this Privacy Policy does not cover the use of cookies by any third parties, and we aren\u2019t responsible for their privacy policies and practices."),(0,r.kt)("p",null,"When we collect the usage information described above, we only use this data in aggregate form, and not in a manner that would identify you personally. For example, this aggregate data can tell us how often users use a particular feature of the Services, and we can use that knowledge to make the Services interesting to as many users as possible."),(0,r.kt)("h2",null,"Will roadmap.sh Share Any of the Personal Information it Receives?"),(0,r.kt)("p",null,"We may share your Personal Information with third parties as described in this section:"),(0,r.kt)("p",null,"Information that\u2019s no longer personally identifiable. We may anonymize your Personal Information so that you are not individually identified, and provide that information to our partners. We may also provide aggregate usage information to our partners, who may use such information to understand how often and in what ways people use our Services, so that they, too, can provide you with an optimal online experience. However, we never disclose aggregate information to a partner in a manner that would identify you personally, as an individual."),(0,r.kt)("p",null,"Advertisers: We may allow advertisers and/or merchant partners (\u201cAdvertisers\u201d) to choose the demographic information of users who will see their advertisements and/or promotional offers and you agree that we may provide any of the information we have collected from you in non-personally identifiable form to an Advertiser, in order for that Advertiser to select the appropriate audience for those advertisements and/or offers. For example, we might use the fact you are located in San Francisco to show you ads or offers for San Francisco businesses, but we will not tell such businesses who you are. Note that if an advertiser asks us to show an ad to a certain audience or audience segment and you respond to that ad, the advertiser may conclude that you fit the description of the audience they were trying to reach."),(0,r.kt)("p",null,"We may deliver a file to you through the Services (known as a \u201cweb beacon\u201d) from an ad network. Web beacons allow ad networks to provide anonymized, aggregated auditing, research and reporting for us and for advertisers. Web beacons also enable ad networks to serve targeted advertisements to you when you visit other websites. Because your web browser must request these advertisements and web beacons from the ad network\u2019s servers, these companies can view, edit, or set their own cookies, just as if you had requested a web page from their site. You may be able to opt-out of web beacon tracking by adjusting the settings on your browser."),(0,r.kt)("p",null,"Affiliated Businesses: In certain situations, businesses or third party websites we\u2019re affiliated with may sell or provide products or services to you through or in connection with the Services (either alone or jointly with us). You can recognize when an affiliated business is associated with such a transaction or service, and we will share your Personal Information with that affiliated business only to the extent that it is related to such transaction or service. One such service may include the ability for you to automatically transmit Third Party Account Information to your Services profile or to automatically transmit information in your Services profile to your third party account; for example, you may sign into your roadmap.sh account using your Twitter account. We have no control over the policies and practices of third party websites or businesses as to privacy or anything else, so if you choose to take part in any transaction or service relating to an affiliated website or business, please review all such business\u2019 or websites\u2019 policies."),(0,r.kt)("p",null,"Our Agents: We employ other companies and people to perform tasks on our behalf and need to share your information with them to provide products or services to you. Unless we tell you differently, our agents do not have any right to use the Personal Information we share with them beyond what is necessary to assist us."),(0,r.kt)("p",null,"User Profiles and Submissions: Certain user profile information, including your name, location, and any video or image content that such user has uploaded to the Services, may be displayed to other users to facilitate user interaction within the Services or address your request for our services. Please remember that any content you upload to your public user profile, along with any Personal Information or content that you voluntarily disclose online in a manner other users can view (on discussion boards, in messages and chat areas, etc.) becomes publicly available, and can be collected and used by anyone. Your user name may also be displayed to other users if and when you send messages or comments or upload images or videos through the Services and other users can contact you through messages and comments. Additionally, if you sign into the Services through a third party social networking site or service, your list of \u201cfriends\u201d from that site or service may be automatically imported to the Services, and such \u201cfriends,\u201d if they are also registered users of the Services, may be able to access certain non-public information you have entered in your Services user profile. Again, we do not control the policies and practices of any other third party site or service."),(0,r.kt)("p",null,"Business Transfers: We may choose to buy or sell assets. In these types of transactions, customer information is typically one of the business assets that would be transferred. Also, if we (or our assets) are acquired, or if we go out of business, enter bankruptcy, or go through some other change of control, Personal Information could be one of the assets transferred to or acquired by a third party."),(0,r.kt)("p",null,"Protection of roadmap.sh and Others: We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with law or court order; enforce or apply our terms of use and other agreements; or protect the rights, property, or safety of roadmap.sh, our employees, our users, or others."),(0,r.kt)("h2",null,"Is Personal Information about me secure?"),(0,r.kt)("p",null,"Your account is protected by a password for your privacy and security. If you access your account via a third party site or service, you may have additional or different sign-on protections via that third party site or service. You must prevent unauthorized access to your account and Personal Information by selecting and protecting your password and/or other sign-on mechanism appropriately and limiting access to your computer or device and browser by signing off after you have finished accessing your account. We endeavor to protect the privacy of your account and other Personal Information we hold in our records, but unfortunately, we cannot guarantee complete security. Unauthorized entry or use, hardware or software failure, and other factors, may compromise the security of user information at any time."),(0,r.kt)("h2",null,"What Personal Information can I access?"),(0,r.kt)("p",null,"Through your account settings, you may access, and, in some cases, edit or delete the following information you\u2019ve provided to us:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"first and last name"),(0,r.kt)("li",{parentName:"ul"},"location of residence"),(0,r.kt)("li",{parentName:"ul"},"age or birthday"),(0,r.kt)("li",{parentName:"ul"},"username")),(0,r.kt)("p",null,"The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("p",null,"Under California Civil Code Sections 1798.83-1798.84, California residents are entitled to ask us for a notice identifying the categories of Personal Information which we share with our affiliates and/or third parties for marketing purposes, and providing contact information for such affiliates and/or third parties. If you are a California resident and would like a copy of this notice, please submit a written request to: ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"What choices do I have?"),(0,r.kt)("p",null,"You can always opt not to disclose information to us, but keep in mind some information may be needed to register with us or to take advantage of some of our features."),(0,r.kt)("p",null,"You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com")," and we will disassociate our email address and Twitter account from any content or other information provided to us. Some information may remain in our records after your deletion of such information from your account. We may use any aggregated data derived from or incorporating your Personal Information after you update or delete it, but not in a manner that would identify you personally."),(0,r.kt)("h2",null,"What if I have questions about this policy?"),(0,r.kt)("p",null,"If you have any questions or concerns regarding our privacy policies, please send us a detailed message to ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),", and we will try to resolve your concerns."))}s.isMDXComponent=!0},5606:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Internet"),(0,r.kt)("p",null,"The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.vox.com/2014/6/16/18076282/the-internet",mdxType:"BadgeLink"},"The Internet Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm",mdxType:"BadgeLink"},"How Does the Internet Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"/guides/what-is-internet",mdxType:"BadgeLink"},"Introduction to Internet"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=x3c1ih2NJEg",mdxType:"BadgeLink"},"How does the Internet work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7_LPdttKXPc",mdxType:"BadgeLink"},"How the Internet Works in 5 Minutes"))}u.isMDXComponent=!0},181:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"What is HTTP?"),(0,r.kt)("p",null,"HTTP is the ",(0,r.kt)("inlineCode",{parentName:"p"},"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/",mdxType:"BadgeLink"},"What is HTTP?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview",mdxType:"BadgeLink"},"An overview of HTTP"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://kamranahmed.info/blog/2016/08/13/http-in-depth/",mdxType:"BadgeLink"},"Journey to HTTP/2"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}u.isMDXComponent=!0},6152:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Browsers"),(0,r.kt)("p",null,"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. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/",mdxType:"BadgeLink"},"How Browsers Work"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.browserstack.com/guide/browser-rendering-engine",mdxType:"BadgeLink"},"Role of Rendering Engine in Browsers"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work",mdxType:"BadgeLink"},"Populating the Page: How Browsers Work"))}u.isMDXComponent=!0},3405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DNS"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/",mdxType:"BadgeLink"},"What is DNS?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Wj0od2ag5sk",mdxType:"BadgeLink"},"DNS and How does it Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7lxgpKh_fRY",mdxType:"BadgeLink"},"DNS Records"))}u.isMDXComponent=!0},2222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Domain Name"),(0,r.kt)("p",null,"A domain name is a unique, easy-to-remember address used to access websites, such as \u2018google.com\u2019, and \u2018facebook.com\u2019. Users can connect to websites using domain names thanks to the DNS system."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name",mdxType:"BadgeLink"},"What is a Domain Name?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/",mdxType:"BadgeLink"},"What is a Domain Name? | Domain name vs. URL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Y4cRx19nhJk",mdxType:"BadgeLink"},"A Beginners Guide to How Domain Names Work"))}u.isMDXComponent=!0},8129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hosting"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=htbY9-yggB0",mdxType:"BadgeLink"},"What Is Web Hosting? Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=AXVZYzw8geg",mdxType:"BadgeLink"},"Different Types of Web Hosting Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Kx_1NYYJS7Q",mdxType:"BadgeLink"},"Where to Host a Fullstack Project on a Budget"))}u.isMDXComponent=!0},2633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Internet"),(0,r.kt)("p",null,"The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.vox.com/2014/6/16/18076282/the-internet",mdxType:"BadgeLink"},"The Internet Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm",mdxType:"BadgeLink"},"How Does the Internet Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"/guides/what-is-internet",mdxType:"BadgeLink"},"Introduction to Internet"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=x3c1ih2NJEg",mdxType:"BadgeLink"},"How does the Internet work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7_LPdttKXPc",mdxType:"BadgeLink"},"How the Internet Works in 5 Minutes"))}u.isMDXComponent=!0},7828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML Basics"),(0,r.kt)("p",null,"HTML stands for Hyper Text 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=pQN-pnXPaVg",mdxType:"BadgeLink"},"HTML Full Course - Build a Website Tutorial"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qz0aGYrrlhU",mdxType:"BadgeLink"},"HTML Tutorial for Beginners: HTML Crash Course"))}u.isMDXComponent=!0},258:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Semantic HTML"),(0,r.kt)("p",null,"Semantic element clearly describes its meaning to both the browser and the developer."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/html/html5_semantic_elements.asp",mdxType:"BadgeLink"},"W3Schools: Semantic HTML"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://hackernoon.com/how-to-write-semantic-html-dkq3ulo",mdxType:"BadgeLink"},"How To Write Semantic HTML"))}u.isMDXComponent=!0},757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Forms and validations"))}s.isMDXComponent=!0},1881:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Conventions and best practices"))}s.isMDXComponent=!0},3699:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Accessibility"))}s.isMDXComponent=!0},584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basics of SEO"))}s.isMDXComponent=!0},3913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for Hyper Text 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=pQN-pnXPaVg",mdxType:"BadgeLink"},"HTML Full Course - Build a Website Tutorial"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qz0aGYrrlhU",mdxType:"BadgeLink"},"HTML Tutorial for Beginners: HTML Crash Course"))}u.isMDXComponent=!0},8533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Basics"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools \u2014 Learn CSS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/learn/responsive-web-design/",mdxType:"BadgeLink"},"freeCodeCamp \u2014 Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learn.shayhowe.com/html-css/building-your-first-web-page/",mdxType:"BadgeLink"},"Learn to Code HTML & CSS"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=yfoY53QXEnI",mdxType:"BadgeLink"},"CSS Crash Course For Absolute Beginners"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=D-h8L5hgW-w",mdxType:"BadgeLink"},"HTML and CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=FqmB-Zj2-PA",mdxType:"BadgeLink"},"CSS Masterclass - Tutorial & Course for Beginners"))}u.isMDXComponent=!0},3780:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Making layouts"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://flexboxfroggy.com/",mdxType:"BadgeLink"},"Learn and Practice Flexbox"))}u.isMDXComponent=!0},1118:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Responsive Design"))}s.isMDXComponent=!0},5211:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools \u2014 Learn CSS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/learn/responsive-web-design/",mdxType:"BadgeLink"},"freeCodeCamp \u2014 Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learn.shayhowe.com/html-css/building-your-first-web-page/",mdxType:"BadgeLink"},"Learn to Code HTML & CSS"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=yfoY53QXEnI",mdxType:"BadgeLink"},"CSS Crash Course For Absolute Beginners"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=D-h8L5hgW-w",mdxType:"BadgeLink"},"HTML and CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=FqmB-Zj2-PA",mdxType:"BadgeLink"},"CSS Masterclass - Tutorial & Course for Beginners"))}u.isMDXComponent=!0},617:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Syntax and basic constructs"))}s.isMDXComponent=!0},1569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Learn dom manipulation"))}s.isMDXComponent=!0},4746:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Learn fetch api ajax xhr"))}s.isMDXComponent=!0},6401:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Es6 and modular javascript"))}s.isMDXComponent=!0},2698:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Concepts"))}s.isMDXComponent=!0},8613:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Javascript"))}s.isMDXComponent=!0},2555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basic usage of git"))}s.isMDXComponent=!0},8405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Version control systems"))}s.isMDXComponent=!0},8548:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Github"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com"}),"GitHub")," 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://docs.github.com/en/get-started/quickstart/hello-world",mdxType:"BadgeLink"},"GitHub: Quickstart"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=w3jLJU7DT5E",mdxType:"BadgeLink"},"What is GitHub?"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=wpISo9TNjfU",mdxType:"BadgeLink"},"Git vs. GitHub: What's the difference?"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=RGOj5yH7evk",mdxType:"BadgeLink"},"Git and GitHub for Beginners"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=eulnSXkhE7I",mdxType:"BadgeLink"},"Git and GitHub - CS50 Beyond 2019"))}u.isMDXComponent=!0},1952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gitlab"))}s.isMDXComponent=!0},6145:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bitbucket"))}s.isMDXComponent=!0},493:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo hosting services"))}s.isMDXComponent=!0},2510:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Https"))}s.isMDXComponent=!0},9377:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Content security policy"))}s.isMDXComponent=!0},8705:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cors"))}s.isMDXComponent=!0},8633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Owasp security risks"))}s.isMDXComponent=!0},9012:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web security knowledge"))}s.isMDXComponent=!0},1415:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Npm"))}s.isMDXComponent=!0},6356:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Yarn"))}s.isMDXComponent=!0},8988:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Package managers"))}s.isMDXComponent=!0},6665:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"BEM"),(0,r.kt)("p",null,"The Block, Element, Modifier methodology (commonly referred to as BEM) is a popular naming convention for classes in HTML and CSS. Developed by the team at Yandex, its goal is to help developers better understand the relationship between the HTML and CSS in a given project."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://en.bem.info",mdxType:"BadgeLink"},"BEM Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://en.bem.info/methodology/quick-start",mdxType:"BadgeLink"},"BEM Documentation"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://css-tricks.com/bem-101",mdxType:"BadgeLink"},"BEM 101"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://en.bem.info/tutorials/",mdxType:"BadgeLink"},"BEM Tutorials"))}u.isMDXComponent=!0},1750:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OOCSS"),(0,r.kt)("p",null,"As with any object-based coding method, the purpose of OOCSS or Object Oriented CSS is to encourage code reuse and, ultimately, faster and more efficient stylesheets that are easier to add to and maintain."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://oocss.org/",mdxType:"BadgeLink"},"OOCSS Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2011/12/an-introduction-to-object-oriented-css-oocss/",mdxType:"BadgeLink"},"Introduction to Object Oriented CSS"))}u.isMDXComponent=!0},8887:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Smacss"))}s.isMDXComponent=!0},5220:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css architecture"))}s.isMDXComponent=!0},4447:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Sass"))}s.isMDXComponent=!0},5106:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Postcss"))}s.isMDXComponent=!0},2972:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Less"))}s.isMDXComponent=!0},8365:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css preprocessors"))}s.isMDXComponent=!0},6523:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Npm scripts"))}s.isMDXComponent=!0},8664:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Task runners"))}s.isMDXComponent=!0},6795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Webpack"))}s.isMDXComponent=!0},9500:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Esbuild"))}s.isMDXComponent=!0},5629:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rollup"))}s.isMDXComponent=!0},5648:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Parcel"))}s.isMDXComponent=!0},762:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vite"))}s.isMDXComponent=!0},6459:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Module bundlers"))}s.isMDXComponent=!0},840:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Prettier"))}s.isMDXComponent=!0},2816:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eslint"))}s.isMDXComponent=!0},4453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Standardjs"))}s.isMDXComponent=!0},2310:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Linters formatters"))}s.isMDXComponent=!0},7093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Build tools"))}s.isMDXComponent=!0},7139:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Redux"))}s.isMDXComponent=!0},5783:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Mobx"))}s.isMDXComponent=!0},7810:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Recoil"))}s.isMDXComponent=!0},6199:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React"),(0,r.kt)("p",null,"React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://reactjs.org/",mdxType:"BadgeLink"},"React Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://reactjs.org/tutorial/tutorial.html",mdxType:"BadgeLink"},"Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://egghead.io/courses/the-beginner-s-guide-to-react",mdxType:"BadgeLink"},"The Beginner's Guide to React"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=nTeuhbP7wdE",mdxType:"BadgeLink"},"React JS Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=i793Qm6kv3U",mdxType:"BadgeLink"},"Understanding React's UI Rendering Process"))}u.isMDXComponent=!0},5685:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rxjs"))}s.isMDXComponent=!0},3162:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ngrx"))}s.isMDXComponent=!0},3666:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Angular"))}s.isMDXComponent=!0},549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuex"))}s.isMDXComponent=!0},5277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue js"))}s.isMDXComponent=!0},1473:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Pick a framework"))}s.isMDXComponent=!0},3745:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled components"))}s.isMDXComponent=!0},1720:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css modules"))}s.isMDXComponent=!0},4349:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled jsx"))}s.isMDXComponent=!0},4291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Emotion"))}s.isMDXComponent=!0},9904:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Modern css"))}s.isMDXComponent=!0},1484:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Html templates"))}s.isMDXComponent=!0},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Custom elements"))}s.isMDXComponent=!0},2901:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Shadow dom"))}s.isMDXComponent=!0},8933:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web components"))}s.isMDXComponent=!0},4642:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bootstrap"))}s.isMDXComponent=!0},4505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bulma"))}s.isMDXComponent=!0},4740:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css first"))}s.isMDXComponent=!0},1160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Tailwind CSS"),(0,r.kt)("p",null,"CSS Framework that provides atomic CSS classes to help you style components e.g. ",(0,r.kt)("inlineCode",{parentName:"p"},"flex"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"pt-4"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"text-center")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"rotate-90")," that can be composed to build any design, directly in your markup."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://tailwindcss.com",mdxType:"BadgeLink"},"Tailwind Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"YouTube Channel",href:"https://www.youtube.com/c/TailwindLabs/videos",mdxType:"BadgeLink"},"Official Screencasts"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Watch",href:"https://www.youtube.com/watch?v=hdGsFpZ0J2E",mdxType:"BadgeLink"},"Should You Use Tailwind CSS?"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.codemag.com/Article/2105091/Tailwind-CSS-An-Introduction",mdxType:"BadgeLink"},"Tailwind CSS: An Introduction"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=UBOj6rqRUME",mdxType:"BadgeLink"},"Tailwind CSS Crash Course"))}u.isMDXComponent=!0},6937:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Chakra ui"))}s.isMDXComponent=!0},9120:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Material ui"))}s.isMDXComponent=!0},3694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Radix ui"))}s.isMDXComponent=!0},7562:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Js first"))}s.isMDXComponent=!0},1879:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css frameworks"))}s.isMDXComponent=!0},5996:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jest"))}s.isMDXComponent=!0},2772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React testing library"))}s.isMDXComponent=!0},3431:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cypress"))}s.isMDXComponent=!0},4375:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Enzyme"))}s.isMDXComponent=!0},4946:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Other options"))}s.isMDXComponent=!0},5770:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing your apps"))}s.isMDXComponent=!0},3227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Typescript"))}s.isMDXComponent=!0},9935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flow"))}s.isMDXComponent=!0},8323:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Type checkers"))}s.isMDXComponent=!0},4990:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apis"))}s.isMDXComponent=!0},5089:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Performance"))}s.isMDXComponent=!0},2768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Progressive web apps"))}s.isMDXComponent=!0},9086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next js"))}s.isMDXComponent=!0},4930:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"After js"))}s.isMDXComponent=!0},8747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React js"))}s.isMDXComponent=!0},7815:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Universal"))}s.isMDXComponent=!0},6394:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Angular"))}s.isMDXComponent=!0},2573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"))}s.isMDXComponent=!0},5137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue js"))}s.isMDXComponent=!0},1905:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Server side rendering"))}s.isMDXComponent=!0},410:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apollo"))}s.isMDXComponent=!0},485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relay modern"))}s.isMDXComponent=!0},4133:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Graphql"))}s.isMDXComponent=!0},7935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next js"))}s.isMDXComponent=!0},1291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gatsbyjs"))}s.isMDXComponent=!0},855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"))}s.isMDXComponent=!0},2374:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuepress"))}s.isMDXComponent=!0},1898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jekyll"))}s.isMDXComponent=!0},355:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hugo"))}s.isMDXComponent=!0},2578:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gridsome"))}s.isMDXComponent=!0},476:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eleventy"))}s.isMDXComponent=!0},5470:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Static site generators"))}s.isMDXComponent=!0},2919:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React native"))}s.isMDXComponent=!0},5760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nativescript"))}s.isMDXComponent=!0},9268:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flutter"),(0,r.kt)("p",null,"Flutter is a free and open-source mobile UI framework created by Google and released in May 2017. In a few words, it allows you to create a native mobile application with only one codebase. This means that you can use one programming language and one codebase to create two different apps (for iOS and Android)."),(0,r.kt)("p",null,"Flutter consists of two important parts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"An SDK (Software Development Kit): A collection of tools that are going to help you develop your applications. This includes tools to compile your code into native machine code (code for iOS and Android)."),(0,r.kt)("li",{parentName:"ul"},"A Framework (UI Library based on widgets): A collection of reusable UI elements (buttons, text inputs, sliders, and so on) that you can personalize for your own needs.\nTo develop with Flutter, you will use a programming language called Dart. The language was created by Google in October 2011, but it has improved a lot over these past years.")),(0,r.kt)("p",null,"Dart focuses on front-end development, and you can use it to create mobile and web applications."),(0,r.kt)("p",null,"If you know a bit of programming, Dart is a typed object programming language. You can compare Dart's syntax to JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://flutter.dev",mdxType:"BadgeLink"},"Flutter Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3adda.com/flutter-tutorial",mdxType:"BadgeLink"},"Flutter Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=1ukSR1GRtMU&list=PL4cUxeGkcC9jLYyp2Aoh6hcWuxFDX6PBJ",mdxType:"BadgeLink"},"Flutter Tutorial for Beginners"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3adda.com/flutter-tutorial",mdxType:"BadgeLink"},"Flutter Tutorial"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.tutorialspoint.com/dart_programming/index.htm",mdxType:"BadgeLink"},"Learn Dart Programming"))}u.isMDXComponent=!0},7280:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ionic"))}s.isMDXComponent=!0},388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Mobile applications"))}s.isMDXComponent=!0},7137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Electron"))}s.isMDXComponent=!0},373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Carlo"))}s.isMDXComponent=!0},5588:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Proton native"))}s.isMDXComponent=!0},8773:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Desktop applications"))}s.isMDXComponent=!0},9429:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web assembly"))}s.isMDXComponent=!0},7086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null))}s.isMDXComponent=!0},7083:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a,s=(a="BadgeLink",function(e){return console.warn("Component "+a+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},e))}),i={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},i,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("div",{className:"alert alert-primary",style:{marginBottom:"-10px"}},"This page is incomplete and is being worked upon. Please check back later or ",(0,r.kt)("a",{href:"/signup"},"subscribe")," / ",(0,r.kt)("a",{href:"https://twitter.com/kamranahmedse"},"follow me on twitter")," to get notified. Also, feel free to contribute by suggesting the resources in ",(0,r.kt)("a",{href:"https://github.com/kamranahmedse/developer-roadmap"},"the issues"),"."),(0,r.kt)("h1",null,"Become a Frontend Developer"),(0,r.kt)("p",null,"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. "),(0,r.kt)("h2",null,"Internet and how it works?"),(0,r.kt)("p",null,"Get the basic understanding of internet, browsers, networks and other relevant knowledge. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"/guides/what-is-internet",mdxType:"BadgeLink"},"What is Internet?")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7_LPdttKXPc",mdxType:"BadgeLink"},"How the internet works in 5 minutes")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://kamranahmed.info/blog/2016/08/13/http-in-depth/",mdxType:"BadgeLink"},"What is HTTP and how it evolved?")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://blog.cloudflare.com/http3-the-past-present-and-future/",mdxType:"BadgeLink"},"HTTP/3: the past, the present, and the future")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://kinsta.com/blog/http3/",mdxType:"BadgeLink"},"What Is HTTP/3 \u2013 Lowdown on the Fast New UDP-Based Protocol")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/",mdxType:"BadgeLink"},"How Browsers Work: Behind the scenes of modern web browsers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Rck3BALhI5c",mdxType:"BadgeLink"},"DNS as Fast As Possible")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://howdns.works/",mdxType:"BadgeLink"},"How DNS works?")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"/guides/dns-in-one-picture",mdxType:"BadgeLink"},"DNS in One Picture"))),(0,r.kt)("h2",null,"Learn HTML"),(0,r.kt)("p",null,"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. "),(0,r.kt)("p",null,"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."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=UB1O30fR-EE",mdxType:"BadgeLink"},"HTML Crash Course For Absolute Beginners")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://www.w3schools.com/html/default.asp",mdxType:"BadgeLink"},"W3Schools \u2013 HTML Tutorial")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=pQN-pnXPaVg",mdxType:"BadgeLink"},"HTML Full Course - Build a Website Tutorial")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://hacks.mozilla.org/2016/08/a-few-html-tips/",mdxType:"BadgeLink"},"A few HTML tips")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://hackernoon.com/six-tips-to-set-up-a-better-html-document-ud1033z3z",mdxType:"BadgeLink"},"Six tips to set up a better HTML document")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://www.w3schools.com/html/html5_semantic_elements.asp",mdxType:"BadgeLink"},"HTML Semantic Elements")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/HTML/Element",mdxType:"BadgeLink"},"HTML elements reference"))),(0,r.kt)("h2",null,"Style your pages with CSS"),(0,r.kt)("p",null,"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."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools \u2013 CSS Tutorial")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=yfoY53QXEnI",mdxType:"BadgeLink"},"CSS Crash Course For Absolute Beginners")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Wm6CUkswsNw",mdxType:"BadgeLink"},"Build An HTML5 Website With A Responsive Layout")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/JJSoEo8JSnc?t=46",mdxType:"BadgeLink"},"Flexbox CSS In 20 Minutes"))),(0,r.kt)("h2",null,"Basics of JavaScript"),(0,r.kt)("p",null,"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."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))),(0,r.kt)("h2",null,"Version Control Systems and Git"),(0,r.kt)("p",null,"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 \u2013 if you\u2019ve 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."),(0,r.kt)("p",null,"In this section, you will learn what version control systems are and understand how to use Git which is the de facto VCS. "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"))),(0,r.kt)("p",null,"Now that you know what git is go ahead and create an account on ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com"}),"GitHub")," 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."),(0,r.kt)("h2",null,"Modern JavaScript"),(0,r.kt)("p",null,'In this section you will learn how to use package managers and get started with the "modern JavaScript".'),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Read",href:"https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs (Don't worry if you don't understand some parts of it)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=8Rmj5UY5mJk",mdxType:"BadgeLink"},"What is NPM and how to use it")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=jHDhaSSKmB0",mdxType:"BadgeLink"},"NPM Crash Course"))),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null))}l.isMDXComponent=!0},8093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},5332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},4558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the React ecosystem and to help guide your learning if you are confused. We have another ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"roadmap on the Frontend Development")," that focuses on the frontend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("img",Object.assign({parentName:"p"},{src:"/roadmaps/react.png",alt:null}))),(0,r.kt)("p",null,"Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the picture if suitable."))}s.isMDXComponent=!0},63:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},595:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Angular ecosystem and to help guide your learning if you are confused. We have another ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"roadmap on the Frontend Development")," that focuses on the frontend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("img",Object.assign({parentName:"p"},{src:"/roadmaps/angular.png",alt:null}))),(0,r.kt)("p",null,"Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the picture if suitable."))}s.isMDXComponent=!0},7489:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},5191:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Android development landscape and to help guide your learning if you are confused. Before we start, please note that the roadmap is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the roadmap if suitable."),(0,r.kt)("p",null,"There are multiple ways to develop applications for the android; you can go down the path of hybrid application development where ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://flutter.dev/"}),"flutter"),", ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://reactnative.dev/"}),"react-native"),", or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://www.nativescript.org/"}),"NativeScript")," are the most common contenders. Flutter uses Dart, whereas React Native and Native Script rely on JavaScript. Answering the question of hybrid vs native is out of the scope of this roadmap. This roadmap is focused on the native Android apps development but if you are interested in learning any hybrid framework, my personal preference is ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://reactnative.dev"}),"react-native")," and I would recommend you to checkout the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"Frontend Developer Roadmap"),"."),(0,r.kt)("h2",null,"Complete Roadmap"),(0,r.kt)("p",null,"Here is the full version of the roadmap in a single image and after that we have the broken down version with the resources and links to learn more about each of the boxes."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/roadmap.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/roadmap.svg",alt:null})))),(0,r.kt)("h2",null,"Broken Down Version"),(0,r.kt)("p",null,"Below is the broken down version of the roadmap with links and resources to learn more about each of the items listed in the complete roadmap above."),(0,r.kt)("h2",null,"Pick a Language"),(0,r.kt)("p",null,"For the languages, you can develop android apps either by using Kotlin or Java."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/pick-language.svg"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/pick-language.svg",alt:null})))),(0,r.kt)("p",null,"Although, you can use both ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://en.wikipedia.org/wiki/Kotlin_(programming_language)"}),"Kotlin")," and ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://en.wikipedia.org/wiki/Java_(programming_language)"}),"Java")," to develop native android apps, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://android-developers.googleblog.com/2019/05/google-io-2019-empowering-developers-to-build-experiences-on-Android-Play.html"}),"Google announced in 2019")," to make Kotlin the preferred way of developing android applications. If you were to start learning android development today, Kotlin should be your language of choice."),(0,r.kt)("h2",null,"The Fundamentals"),(0,r.kt)("p",null,"Install the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://developer.android.com/studio"}),"Android Studio")," and learn the basics of Kotlin to get started. "),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/the-fundamentals.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/the-fundamentals.png",alt:null})))),(0,r.kt)("p",null,"We have also listed down some free resources which you can use for the items listed in the image above. If you have some better ones, please do suggest. Also, you don't need to go through all of them, just go through them and pick what you like."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://blog.teamtreehouse.com/absolute-beginners-guide-kotlin"}),"Learn the basics of Kotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/reference/basic-syntax.html"}),"Kotlin Docs")," and ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/tutorials/"}),"Official Kotlin Tutorials")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.studytonight.com/data-structures/introduction-to-data-structures"}),"Data Structures and Algorithms"),". Also ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.tutorialspoint.com/data_structures_algorithms/index.htm"}),"check this"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/reference/collections-overview.html"}),"Kotlin DataStructures")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/bmaslakov/kotlin-algorithm-club"}),"Algorithms and DataStructures in Kotlin"))),(0,r.kt)("h2",null,"Version Control Systems"),(0,r.kt)("p",null,"Version control systems record your changes to the codebase and allow you to recall specific versions later. There are multiple Version Control Systems available but ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://git-scm.com/"}),"Git")," is the most common one these days."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/git-github.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/git-github.png",alt:null})))),(0,r.kt)("p",null,"Here are some of the resources to get you started. Feel free to google and find something else that you find easier."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.udacity.com/course/version-control-with-git--ud123"}),"Udacity \u2014 Version Control with Git")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://guides.github.com/activities/hello-world/"}),"GitHub Hello World"))),(0,r.kt)("h2",null,"Building an Application"),(0,r.kt)("p",null,"Here is the list of items that you are going to need when developing Android applications. Please note that, this is an exhaustive list, and you don't need to know it all from the get-go. Get an idea of the items listed, and just start building some apps and keep the items listed in the back of your mind and have a deep dive when using them. "),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/build-an-application.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/build-an-application.png",alt:null})))),(0,r.kt)("p",null,"To learn more about the items listed in the image above, here are the links to the relevant docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/activities/intro-activities"}),"Using Activities and Activity Life Cycles")),(0,r.kt)("li",{parentName:"ul"},"Building Flexible Interfaces using ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/fragments"}),"Fragments")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/studio/debug"}),"Debugging using Android Studio Debugger")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/work/managed-configurations"}),"Handling App Configurations")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/intents-filters"}),"Using Intents and Intent Filters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://guides.codepath.com/android/Using-Context"}),"Understand Context")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/training/multiple-threads"}),"Learn about Multithreading")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com/6901838-data-privacy-for-android"}),"Data Privacy")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com/5634-securing-network-data-tutorial-for-android"}),"Securing Network Data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/training/dependency-injection"}),"Dependency Injection")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/topics/providers/content-providers"}),"Content Providers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/bumptech/glide"}),"Glide"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://square.github.io/retrofit/"}),"Retrofit"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://firebase.google.com/docs/crashlytics/get-started"}),"Crashlytics"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/google/gson"}),"GSON")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/room"}),"Room"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/navigation/navigation-getting-started"}),"Navigation"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/workmanager"}),"Work Manager"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/livedata"}),"LiveData"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/data-binding"}),"Data Binding")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/ReactiveX/RxJava"}),"RxJava"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/ReactiveX/RxKotlin"}),"RxKotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/performance/memory-overview"}),"Memory Management Overview")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://proandroiddev.com/diving-deeper-into-context-oriented-programming-in-kotlin-3ecb4ec38814"}),"Diving deeper into context-oriented programming in Kotlin")," ")),(0,r.kt)("p",null,"I would highly recommend watching ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"}),"this free course")," from google on Developing Android Apps with Kotlin. Also, here are some of the resources to learn more about the topics listed above."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"}),"Developing Android Apps with Kotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide"}),"Android Developer Guides")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com"}),"Raywenderlich"))),(0,r.kt)("h2",null,"Wrap Up"),(0,r.kt)("p",null,"That wraps it up for the android developer roadmap. Again, remember to not be exhausted by the list; just learn the basics and start working on some project, rest of the learnings will come along the way. Good luck!"),(0,r.kt)("p",null,"For any suggestions, improvements and feedback, feel free to ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"submit an issue")," or reach out to me on twitter ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://twitter.com/kamranahmedse"}),"@kamranahmedse"),"."),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null))}s.isMDXComponent=!0},7890:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},9556:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Python ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/python.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/python.png",alt:null})))))}s.isMDXComponent=!0},8481:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},2388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Go ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/golang.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/golang.png",alt:null})))))}s.isMDXComponent=!0},9101:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},7913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Java ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/java.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/java.png",alt:null})))))}s.isMDXComponent=!0},9673:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},1464:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the DBA landscape and to help guide your learning if you are confused. The roadmap is highly opinionated \u2014 neither, knowing everything listed in the roadmap, nor the order of items given in the roadmap is required to be followed in order to be a DBA."),(0,r.kt)("h2",null,"Learn basic RDBMS terms and concepts"),(0,r.kt)("p",null,"Get basic understanding of Postgres key terms and basic RDBMS concepts."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Object model"),": data types, columns, rows, tables, schemas, databases, queries."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Relational model"),": domains, attributes, tuples, relations, constraints, NULL."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Databases high-level concepts"),": ACID, MVCC, transactions, write-ahead log, query processing."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/13/glossary.html"}),"Postgres Glossary")," "),(0,r.kt)("li",{parentName:"ul"},"SQL and Relational Theory - Christopher J. Date, 2009"),(0,r.kt)("li",{parentName:"ul"},"Database Design and Relational Theory - Christopher J. Date, 2012")))),(0,r.kt)("h2",null,"Learn how to install and run PostgreSQL"),(0,r.kt)("p",null,"Get practical skills of how to set up and run Postgres to get a working environment for further learning."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Using package managers (APT, YUM, etc.)"),(0,r.kt)("li",{parentName:"ul"},"Using ",(0,r.kt)("inlineCode",{parentName:"li"},"docker"),"."),(0,r.kt)("li",{parentName:"ul"},"Managing Postgres service using ",(0,r.kt)("inlineCode",{parentName:"li"},"systemd")," (start, stop, restart, reload)."),(0,r.kt)("li",{parentName:"ul"},"Managing Postgres service using ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_ctl"),", or OS-specific tools (like ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_ctlcluster"),")."),(0,r.kt)("li",{parentName:"ul"},"Connect to Postgres using ",(0,r.kt)("inlineCode",{parentName:"li"},"psql"),"."),(0,r.kt)("li",{parentName:"ul"},"Deploy database service in cloud environment (AWS, GCE, Azure, Heroku, DigitalOcean, etc...)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/download/"}),"Official download and install instructions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://hub.docker.com/_/postgres"}),"Official Docker images")," ")))),(0,r.kt)("h2",null,"Learn SQL concepts"),(0,r.kt)("p",null,"Get practical skills of how to create and manipulate database objects and how to execute queries using ",(0,r.kt)("inlineCode",{parentName:"p"},"psql")," client."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Understand basic data types."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"DML queries"),": querying data, modifying data, filtering data, joining tables.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced topics"),": transactions, CTE, subqueries, lateral join, grouping, set operations."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"DDL queries"),": managing tables and schemas (create, alter, drop)."),(0,r.kt)("li",{parentName:"ul"},"Import and export data using ",(0,r.kt)("inlineCode",{parentName:"li"},"COPY"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.db-fiddle.com/"}),"DB Fiddle")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresqltutorial.com/"}),"PostgreSQL Tutorial")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/tutorial-sql.html"}),"PostgreSQL SQL Getting Started")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql.html"}),"The SQL Language"))))),(0,r.kt)("h2",null,"Learn how to configure Postgres"),(0,r.kt)("p",null,"Get understanding of the main aspects of how Postgres could be configured. Deep understanding of Postgres internals is not yet necessary here."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"postgresql.conf:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Resources usage"),(0,r.kt)("li",{parentName:"ul"},"Write-ahead Log"),(0,r.kt)("li",{parentName:"ul"},"Checkpoints and Background Writer"),(0,r.kt)("li",{parentName:"ul"},"Cost-based vacuum and auto-vacuum"),(0,r.kt)("li",{parentName:"ul"},"Replication"),(0,r.kt)("li",{parentName:"ul"},"Query planner"),(0,r.kt)("li",{parentName:"ul"},"Reporting, logging and statistics"),(0,r.kt)("li",{parentName:"ul"},"Adding extra extensions"),(0,r.kt)("li",{parentName:"ul"},"...keep exploring other configuration options"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://postgresqlco.nf/"}),"Postgresqlco.nf")," ")))),(0,r.kt)("h2",null,"Learn Postgres security concepts"),(0,r.kt)("p",null,"Get understanding about basic security concepts and common ways of how to deploy secure configurations."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Authentication models, roles, pg_hba.conf, SSL settings."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Objects privileges"),": grant/revoke, default privileges."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced topics")," - row-level security, selinux."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/client-authentication.html"}),"Client authentication")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/user-manag.html"}),"Roles and users managements"))))),(0,r.kt)("h2",null,"Develop infrastructure DBA skills"),(0,r.kt)("p",null,"Get practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Replication"),": streaming replication, logical replication"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Backup/recovery tools"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Built-in: ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_dump"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_dumpall"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_restore"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_basebackup")),(0,r.kt)("li",{parentName:"ul"},"3rd-party: ",(0,r.kt)("inlineCode",{parentName:"li"},"barman"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pgbackrest"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_probackup"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"WAL-G")),(0,r.kt)("li",{parentName:"ul"},"Backup validation procedures"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Upgrading procedures"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Minor and major upgrades using ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_upgrade")),(0,r.kt)("li",{parentName:"ul"},"Upgrades using logical replication"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Connection pooling"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Pgbouncer")),(0,r.kt)("li",{parentName:"ul"},"Alternatives: ",(0,r.kt)("inlineCode",{parentName:"li"},"Pgpool-II"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Odyssey"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Pgagroal")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Infrastructure monitoring"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Prometheus"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Zabbix"),", other favourite monitoring solution"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"High availability and cluster management tools"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Patroni")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Alternatives"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Repmgr"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Stolon"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_auto_failover"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"PAF")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Applications Load Balancing and Service Discovery"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Haproxy"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Keepalived"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Consul"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Etcd")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Deploy Postgres on ",(0,r.kt)("inlineCode",{parentName:"strong"},"Kubernetes")),": Simple ",(0,r.kt)("inlineCode",{parentName:"li"},"StatefulSet")," setup, ",(0,r.kt)("inlineCode",{parentName:"li"},"HELM"),", operators"),(0,r.kt)("li",{parentName:"ul"},"Resource usage and provisioning, capacity planning")),(0,r.kt)("h2",null,"Learn how to automate routines"),(0,r.kt)("p",null,"Get practical skills, learn automation tools and automate existing routine tasks."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Automation using shell scripts or any other favourite language (",(0,r.kt)("inlineCode",{parentName:"li"},"Bash"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Python"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Perl"),", etc)"),(0,r.kt)("li",{parentName:"ul"},"Configuration management: ",(0,r.kt)("inlineCode",{parentName:"li"},"Ansible"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Salt"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Chef"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Puppet"))),(0,r.kt)("h2",null,"Develop application DBA skills"),(0,r.kt)("p",null,"Learn theory and get practical skills of how applications should work with Postgres"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Migrations"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"practical patterns and antipatterns"),(0,r.kt)("li",{parentName:"ul"},"tools: ",(0,r.kt)("inlineCode",{parentName:"li"},"liquibase"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"sqitch"),", language-specific tools"))),(0,r.kt)("li",{parentName:"ul"},"Data import/export, bulk loading and processing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Queues"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"practical patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Skytools PGQ")))),(0,r.kt)("li",{parentName:"ul"},"Data partitioning and sharding patterns."),(0,r.kt)("li",{parentName:"ul"},"Database normalization and normal forms."),(0,r.kt)("li",{parentName:"ul"},"Books:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The Art of PostgreSQL - Dimitri Fontaine, 2020")))),(0,r.kt)("h2",null,"Learn Postgres advanced topics"),(0,r.kt)("p",null,"Here is important to continuously extend and develop existing knowledge about Postgres."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Low level internals"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Processes and memory architecture"),(0,r.kt)("li",{parentName:"ul"},"Vacuum processing"),(0,r.kt)("li",{parentName:"ul"},"Buffer management"),(0,r.kt)("li",{parentName:"ul"},"Lock management"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/storage.html"}),"Physical storage and file layout")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/catalogs.html"}),"System catalog")," "))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Fine-grained tuning"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Per-user, per-database settings"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS"}),"Storage parameters")," "),(0,r.kt)("li",{parentName:"ul"},"Workload-dependant tuning: OLTP, OLAP, HTAP"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced SQL topics"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"PL/pgSQL, procedures and functions, triggers"),(0,r.kt)("li",{parentName:"ul"},"Aggregate and window functions"),(0,r.kt)("li",{parentName:"ul"},"Recursive CTE"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.interdb.jp/pg/index.html"}),"The Internals of PostgreSQL")," for database administrators and system developers"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/plpgsql.html"}),"PL/pgSQL Guide"))))),(0,r.kt)("h2",null,"Learn Postgres troubleshooting techniques"),(0,r.kt)("p",null,"Get basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Operating system tools"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"top")," (",(0,r.kt)("inlineCode",{parentName:"li"},"htop"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"atop"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sysstat")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"iotop")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres system views"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pg_stat_activity")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pg_stat_statements")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres tools"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pgcenter")," - ",(0,r.kt)("em",{parentName:"li"},"personal recommendation")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Query analyzing"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql-explain.html"}),"EXPLAIN")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://explain.depesz.com/"}),"Depesz")," online EXPLAIN visualization tool"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://tatiyants.com/pev/#/plans"}),"PEV")," online EXPLAIN visualization tool"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://explain.tensor.ru/"}),"Tensor")," online EXPLAIN visualization tool, RU language only"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Log analyzing"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pgBadger")),(0,r.kt)("li",{parentName:"ul"},"Ad-hoc analyzing using ",(0,r.kt)("inlineCode",{parentName:"li"},"grep"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"awk"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"sed"),", etc."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"External tracing/profiling tools"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"gdb"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"strace"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"perf-tools"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"ebpf"),", core dumps"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Troubleshooting methods"),": USE, RED, Golden signals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.brendangregg.com/linuxperf.html"}),"Linux Performance")," by Brendan Gregg"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.brendangregg.com/usemethod.html"}),"USE Method"))))),(0,r.kt)("h2",null,"Learn SQL optimization technics"),(0,r.kt)("p",null,"Get understanding and practical skills of how to optimize SQL queries."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Indexes, and their use cases"),": B-tree, Hash, GiST, SP-GiST, GIN, BRIN"),(0,r.kt)("li",{parentName:"ul"},"SQL queries patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},"SQL schema design patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://use-the-index-luke.com/"}),"Use the Index, Luke")," - a Guide to Database Performance for Developers"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Books"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010 ")))),(0,r.kt)("h2",null,"Develop architect skills"),(0,r.kt)("p",null,"Get deeper understanding of Postgres use cases and where Postgres is suitable and where is not."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres forks and extensions"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Greenplum"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Timescaledb"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Citus"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Postgres-XL"),", etc."),(0,r.kt)("li",{parentName:"ul"},"RDBMS in general, benefits and limitations"),(0,r.kt)("li",{parentName:"ul"},"Differences between Postgres and other RDBMS and NoSQL databases")),(0,r.kt)("h2",null,"Develop Postgres hacker skills"),(0,r.kt)("p",null,"Get involved to Postgres community and contribute to Postgres; be a useful member of Postgres, and the open source community; use personal experience to help other people."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Daily reading and answering in ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/list/"}),"mailing lists"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"pgsql-general"),(0,r.kt)("li",{parentName:"ul"},"pgsql-admin"),(0,r.kt)("li",{parentName:"ul"},"pgsql-performance"),(0,r.kt)("li",{parentName:"ul"},"pgsql-hackers"),(0,r.kt)("li",{parentName:"ul"},"pgsql-bugs"))),(0,r.kt)("li",{parentName:"ul"},"Reviewing patches"),(0,r.kt)("li",{parentName:"ul"},"Writing patches, attending in ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://commitfest.postgresql.org/"}),"Commitfests"))),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null))}s.isMDXComponent=!0},1545:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},8188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"Roadmap is not ready yet"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the roadmap, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")," "))}s.isMDXComponent=!0},1048:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},4894:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"Roadmap is not ready yet"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the roadmap, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")," "))}s.isMDXComponent=!0},9598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},8712:function(e){"use strict";e.exports=JSON.parse('[{"username":"kamranahmedse","name":"Kamran Ahmed","twitter":"kamranahmedse","picture":"/authors/kamranahmedse.jpeg","bio":"Lead engineer at Tajawal. Lover of all things web and opensource. Created roadmap.sh to help the confused ones."},{"username":"jesse","name":"Jesse Li","twitter":"__jesse_li","picture":"/authors/jesse.png","bio":"Software engineer."},{"username":"dmytrobol","name":"Dmytro Bolkachov","twitter":"dmytrobol","picture":"/authors/dmytrobol.png","bio":"JavaScript Lad, Movie buff and coder interested in everything web related"},{"username":"spekulatius","name":"Peter Thaleikis","twitter":"spekulatius1984","picture":"/authors/spekulatius.jpg","bio":"Developer building side-projects for fun, lover of the web and open source"},{"username":"ebrahimbharmal007","name":"Ebrahim Bharmal","twitter":"BharmalEbrahim","picture":"/authors/ebrahimbharmal007.png","bio":"Love building projects using tools completely new to me. Python forever. Senior at University of Texas at Arlington (2021)"},{"username":"lesovsky","name":"Alexey Lesovsky","bio":"Linux system administrator and PostgreSQL DBA at DataEgret.","picture":"/authors/lesovsky.jpeg"}]')},9552:function(e){"use strict";e.exports=JSON.parse('[{"id":"avoid-render-blocking-javascript-with-async-defer","title":"Async and Defer Script Loading","description":"Learn how to avoid render blocking JavaScript using async and defer scripts.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-09-10T19:59:14.191Z","createdAt":"2021-09-10T19:59:14.191Z"},{"id":"what-are-web-vitals","title":"What are Web Vitals?","description":"Learn what are the core web vitals and how to measure them.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-09-05T19:59:14.191Z","createdAt":"2021-09-05T19:59:14.191Z"},{"id":"what-is-sli-slo-sla","title":"SLIs, SLOs and SLAs","description":"Learn what are different indicators for performance identification of any service.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-08-31T19:59:14.191Z","createdAt":"2021-08-31T19:59:14.191Z"},{"id":"ci-cd","title":"What is CI and CD?","description":"Learn the basics of CI/CD and how to implement that with GitHub Actions.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-07-09T19:59:14.191Z","createdAt":"2021-07-09T19:59:14.191Z"},{"id":"sso","title":"SSO \u2014 Single Sign On","description":"Learn the basics of SAML and understand how does Single Sign On work.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-07-01T19:59:14.191Z","createdAt":"2021-07-01T19:59:14.191Z"},{"id":"oauth","title":"OAuth \u2014 Open Authorization","description":"Learn and understand what is OAuth and how it works","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-28T19:59:14.191Z","createdAt":"2021-06-28T19:59:14.191Z"},{"id":"jwt-authentication","title":"JWT Authentication","description":"Understand what is JWT authentication and how is it implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-20T19:59:14.191Z","createdAt":"2021-06-20T19:59:14.191Z"},{"id":"token-authentication","title":"Token Based Authentication","description":"Understand what is token based authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-02T20:59:14.191Z","createdAt":"2021-06-02T20:59:14.191Z"},{"id":"session-authentication","title":"Session Based Authentication","description":"Understand what is session based authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-26T20:59:14.191Z","createdAt":"2021-05-26T20:59:14.191Z"},{"id":"basic-authentication","title":"Basic Authentication","description":"Understand what is basic authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-19T20:59:14.191Z","createdAt":"2021-05-19T20:59:14.191Z"},{"id":"character-encodings","title":"Character Encodings","description":"Covers the basics of character encodings and explains ASCII vs Unicode","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-14T20:59:14.191Z","createdAt":"2021-05-14T20:59:14.191Z"},{"id":"unfamiliar-codebase","title":"Unfamiliar Codebase","description":"Tips on getting getting familiar with an unfamiliar codebase","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-04T20:59:14.191Z","createdAt":"2021-05-04T20:59:14.191Z"},{"id":"why-build-it-and-they-will-come-wont-work-anymore","title":"Build it and they will come?","description":"Why \u201cbuild it and they will come\u201d alone won\u2019t work anymore","isPro":false,"authorUsername":"spekulatius","updatedAt":"2021-05-04T12:59:14.191Z","createdAt":"2021-05-04T12:59:14.191Z"},{"id":"dhcp-in-one-picture","title":"DHCP in One Picture","description":"Here is what happens when a new device joins the network.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-28T15:48:21.191Z","createdAt":"2021-04-28T15:48:21.191Z"},{"id":"ssl-tls-https-ssh","title":"SSL vs TLS vs SSH","description":"Quick tidbit on the differences between SSL, TLS, HTTPS and SSH","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-22T15:48:21.191Z","createdAt":"2021-04-22T15:48:21.191Z"},{"id":"asymptotic-notation","title":"Asymptotic Notation","description":"Learn the basics of measuring the time and space complexity of algorithms","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-03T15:48:21.191Z","createdAt":"2021-04-03T15:48:21.191Z"},{"id":"big-o-notation","title":"Big-O Notation","description":"Easy to understand explanation of Big-O notation without any fancy terms","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-03-15T15:48:21.191Z","createdAt":"2021-03-15T15:48:21.191Z"},{"id":"random-numbers","title":"Random Numbers: Are they?","description":"Learn how they are generated and why they may not be truly random.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-03-14T15:48:21.191Z","createdAt":"2021-03-14T15:48:21.191Z"},{"id":"scaling-databases","title":"Scaling Databases","description":"Learn the ups and downs of different database scaling strategies","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-02-18T15:48:21.191Z","createdAt":"2021-02-18T15:48:21.191Z"},{"id":"what-is-internet","title":"How does the internet work?","description":"Learn the basics of internet and everything involved with this short video series","isPro":false,"authorUsername":"dmytrobol","updatedAt":"2021-02-29T15:48:21.191Z","createdAt":"2021-02-29T15:48:21.191Z"},{"id":"torrent-client","title":"Building a BitTorrent Client","description":"Learn everything you need to know about BitTorrent by writing a client in Go","isPro":false,"authorUsername":"jesse","updatedAt":"2021-01-17T15:48:21.191Z","createdAt":"2021-01-17T15:48:21.191Z","canonical":"https://blog.jse.li/posts/torrent/"},{"id":"levels-of-seniority","title":"Levels of Seniority","description":"How to Step Up as a Junior, Mid Level or a Senior Developer?","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2020-12-03T12:13:00.860Z","createdAt":"2020-12-03T12:13:00.860Z"},{"id":"design-patterns-for-humans","title":"Design Patterns for Humans","description":"A language agnostic, ultra-simplified explanation to design patterns","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2019-10-09T12:00:00.860Z","createdAt":"2019-01-23T17:00:00.860Z"},{"id":"journey-to-http2","title":"Journey to HTTP/2","description":"The evolution of HTTP. How it all started and where we stand today","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2018-12-04T12:00:00.860Z","updatedAt":"2018-12-04T12:00:00.860Z","isDraft":true},{"id":"dns-in-one-picture","title":"DNS in One Picture","description":"Quick illustrative guide on how a website is found on the internet.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2018-12-04T12:00:00.860Z","createdAt":"2018-12-04T17:00:00.860Z"},{"id":"http-caching","title":"HTTP Caching","description":"Everything you need to know about web caching","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2018-11-29T17:00:00.860Z","updatedAt":"2018-11-29T17:00:00.860Z"},{"id":"history-of-javascript","title":"Brief History of JavaScript","description":"How JavaScript was introduced and evolved over the years","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2017-10-28T17:00:00.860Z","updatedAt":"2017-10-28T17:00:00.860Z"},{"id":"proxy-servers","title":"Proxy Servers","description":"How do proxy servers work and what are forward and reverse proxies?","isPro":false,"authorUsername":"ebrahimbharmal007","createdAt":"2017-10-24T17:00:00.860Z","updatedAt":"2017-10-24T17:00:00.860Z"}]')},1662:function(e){"use strict";e.exports=JSON.parse('[{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a frontend developer","frontend developer","frontend engineer","frontend skills","frontend development","javascript developer","frontend development skills","frontend development skills test","frontend roadmap","frontend engineer roadmap","frontend developer roadmap","become a frontend developer","frontend developer career path","javascript developer","modern javascript developer","node developer","skills for frontend development","learn frontend development","what is frontend development","frontend developer quiz","frontend developer interview questions"]},"title":"Frontend Developer","description":"Step by step guide to becoming a modern frontend developer in 2021","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2021","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"featured":true,"imageUrl":"/roadmaps/frontend.png","jsonUrl":"/project/frontend.json","resourcesPath":"/roadmaps/100-frontend/resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/frontend-roadmap","contentPathsFilePath":"/roadmaps/100-frontend/content-paths.json","id":"frontend","metaPath":"/roadmaps/100-frontend/meta.json","isUpcoming":false},{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","backend development","javascript developer","backend development skills","backend development skills test","backend engineer roadmap","backend developer roadmap","become a backend developer","backend developer career path","javascript developer","modern javascript developer","node developer","skills for backend development","learn backend development","what is backend development","backend developer quiz","backend developer interview questions"]},"title":"Backend Developer","description":"Step by step guide to becoming a modern backend developer in 2021","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2021","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/frontend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},{"seo":{"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":["guide to becoming a devops enginer","devops roadmap","sre roadmap","site reliability engineer roadmap","operations roles","become devops","devops skills","modern devops skills","devops skills test","skills for devops","learn devops","what is devops","what is sre","devops quiz","devops interview questions"]},"title":"DevOps Roadmap","description":"Step by step guide for DevOps, SRE or any other Operations Role in 2021","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2021","featured":true,"imageUrl":"/roadmaps/devops.png","jsonUrl":"/project/devops.json","resourcesPath":"/roadmaps/102-devops/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/devops-roadmap","id":"devops","metaPath":"/roadmaps/102-devops/meta.json","isUpcoming":false},{"seo":{"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":["guide to becoming a react developer","react developer roadmap","react roadmap","become react developer","react developer skills","react skills test","skills for react development","learn react development","what is react","react quiz","react interview questions"]},"title":"React Developer","description":"Everything that is there to learn about React and the ecosystem in 2021.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"landingPath":"/roadmaps/103-react/landscape.md","resourcesPath":"/roadmaps/103-react/resources.md","jsonUrl":"/project/react.json","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/react-roadmap","id":"react","metaPath":"/roadmaps/103-react/meta.json","isUpcoming":false},{"seo":{"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 2021.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"jsonUrl":"/project/angular.json","landingPath":"/roadmaps/104-angular/landscape.md","resourcesPath":"/roadmaps/104-angular/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/angular-roadmap","id":"angular","metaPath":"/roadmaps/104-angular/meta.json","isUpcoming":false},{"seo":{"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 2021","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/android.json","landingPath":"/roadmaps/105-android/landscape.md","resourcesPath":"/roadmaps/105-android/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"android","metaPath":"/roadmaps/105-android/meta.json","isUpcoming":false},{"seo":{"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 2021","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/python.json","resourcesPath":"/roadmaps/106-python/resources.md","landingPath":"/roadmaps/106-python/landscape.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/python-roadmap","versions":["latest"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"python","metaPath":"/roadmaps/106-python/meta.json","isUpcoming":false},{"seo":{"title":"Learn to become a Go 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":["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 2021","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/golang.json","landingPath":"/roadmaps/107-golang/landscape.md","resourcesPath":"/roadmaps/107-golang/resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/go-roadmap","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"golang","metaPath":"/roadmaps/107-golang/meta.json"},{"seo":{"title":"Learn to become a modern Java 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":["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 2021","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/java.json","landingPath":"/roadmaps/108-java/landscape.md","resourcesPath":"/roadmaps/108-java/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/java-roadmap","id":"java","metaPath":"/roadmaps/108-java/meta.json"},{"seo":{"title":"DBA Roadmap: Learn to become a database administrator with PostgreSQL","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":["guide to becoming a database administrator","guide to becoming a DBA","dba roadmap","db administrator roadmap","database administrator roadmap","postgresql roadmap","dba skills","db administrator skills","become dba","postgresql skills","modern dba skills","dba skills test","skills for dba","skills for database administrator","learn dba","what is dba","database administrator quiz","dba interview questions"]},"title":"PostgreSQL DBA","description":"Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2021","landingPath":"/roadmaps/109-postgresql-dba/landscape.md","resourcesPath":"/roadmaps/109-postgresql-dba/resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[],"id":"postgresql-dba","metaPath":"/roadmaps/109-postgresql-dba/meta.json","isUpcoming":false},{"seo":{"title":"AWS Roadmap: Learn to use AWS","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":["guide to aws","aws roadmap","aws skills","aws skills test","skills for aws","cloud development","what is aws","aws quiz","aws interview questions"]},"title":"AWS","description":"Everything that is there to learn about AWS and the ecosystem in 2021.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":true,"featured":true,"landingPath":"/roadmaps/110-aws/landscape.md","resourcesPath":"/roadmaps/110-aws/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"aws","metaPath":"/roadmaps/110-aws/meta.json"},{"seo":{"title":"QA Roadmap: Learn to become a modern QA engineer","description":"Community driven, articles, resources, guides, interview questions, quizzes for modern QA development. Learn to become a modern QA engineer by following the steps, skills, resources and guides listed in this roadmap.","keywords":["guide to becoming a QA engineer","QA engineer","QA skills","QA development skills","QA development skills test","QA engineer roadmap","become a QA engineer","QA engineer career path","skills for QA development","what is QA engineer","QA engineer quiz","QA engineer interview questions"]},"title":"QA Engineer","description":"Steps to follow in order to become a modern QA Engineer in 2021","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2021","isUpcoming":true,"featured":true,"landingPath":"/roadmaps/111-qa/landscape.md","resourcesPath":"/roadmaps/111-qa/resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"},"id":"qa","metaPath":"/roadmaps/111-qa/meta.json"}]')},8359:function(e){"use strict";e.exports=JSON.parse('{"home":"/roadmaps/100-frontend/content/readme.md","internet":"/roadmaps/100-frontend/content/100-internet/readme.md","internet:how-does-the-internet-work":"/roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md","internet:what-is-http":"/roadmaps/100-frontend/content/100-internet/101-what-is-http.md","internet:browsers-and-how-they-work":"/roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md","internet:dns-and-how-it-works":"/roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md","internet:what-is-domain-name":"/roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md","internet:what-is-hosting":"/roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md","html":"/roadmaps/100-frontend/content/101-html/readme.md","html:learn-the-basics":"/roadmaps/100-frontend/content/101-html/100-learn-the-basics.md","html:writing-semantic-html":"/roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md","html:forms-and-validations":"/roadmaps/100-frontend/content/101-html/102-forms-and-validations.md","html:conventions-and-best-practices":"/roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md","html:accessibility":"/roadmaps/100-frontend/content/101-html/104-accessibility.md","html:seo-basics":"/roadmaps/100-frontend/content/101-html/105-seo-basics.md","css":"/roadmaps/100-frontend/content/102-css/readme.md","css:learn-the-basics":"/roadmaps/100-frontend/content/102-css/100-learn-the-basics.md","css:making-layouts":"/roadmaps/100-frontend/content/102-css/101-making-layouts.md","css:responsive-design-and-media-queries":"/roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md","javascript":"/roadmaps/100-frontend/content/103-javascript/readme.md","javascript:syntax-and-basic-constructs":"/roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md","javascript:learn-dom-manipulation":"/roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md","javascript:learn-fetch-api-ajax-xhr":"/roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md","javascript:es6-and-modular-javascript":"/roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md","javascript:concepts":"/roadmaps/100-frontend/content/103-javascript/104-concepts.md","version-control-systems":"/roadmaps/100-frontend/content/104-version-control-systems/readme.md","version-control-systems:basic-usage-of-git":"/roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md","repo-hosting-services":"/roadmaps/100-frontend/content/105-repo-hosting-services/readme.md","repo-hosting-services:github":"/roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md","repo-hosting-services:gitlab":"/roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md","repo-hosting-services:bitbucket":"/roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md","web-security-knowledge":"/roadmaps/100-frontend/content/106-web-security-knowledge/readme.md","web-security-knowledge:cors":"/roadmaps/100-frontend/content/106-web-security-knowledge/102-cors.md","web-security-knowledge:https":"/roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md","web-security-knowledge:content-security-policy":"/roadmaps/100-frontend/content/106-web-security-knowledge/101-content-security-policy.md","web-security-knowledge:owasp-security-risks":"/roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md","package-managers":"/roadmaps/100-frontend/content/107-package-managers/readme.md","package-managers:npm":"/roadmaps/100-frontend/content/107-package-managers/100-npm.md","package-managers:yarn":"/roadmaps/100-frontend/content/107-package-managers/101-yarn.md","css-architecture":"/roadmaps/100-frontend/content/108-css-architecture/readme.md","css-architecture:bem":"/roadmaps/100-frontend/content/108-css-architecture/100-bem.md","css-architecture:oocss":"/roadmaps/100-frontend/content/108-css-architecture/101-oocss.md","css-architecture:smacss":"/roadmaps/100-frontend/content/108-css-architecture/102-smacss.md","css-preprocessors":"/roadmaps/100-frontend/content/109-css-preprocessors/readme.md","css-preprocessors:sass":"/roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md","css-preprocessors:postcss":"/roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md","css-preprocessors:less":"/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md","build-tools":"/roadmaps/100-frontend/content/110-build-tools/readme.md","build-tools:task-runners":"/roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md","build-tools:task-runners:npm-scripts":"/roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md","build-tools:linters-formatters":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md","build-tools:linters-formatters:prettier":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/100-prettier.md","build-tools:linters-formatters:eslint":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/101-eslint.md","build-tools:linters-formatters:standardjs":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md","build-tools:module-bundlers":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md","build-tools:module-bundlers:webpack":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md","build-tools:module-bundlers:esbuild":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md","build-tools:module-bundlers:rollup":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md","build-tools:module-bundlers:parcel":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md","build-tools:module-bundlers:vite":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md","pick-a-framework":"/roadmaps/100-frontend/content/111-pick-a-framework/readme.md","pick-a-framework:react-js":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md","pick-a-framework:react-js:recoil":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md","pick-a-framework:react-js:redux":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md","pick-a-framework:react-js:mobx":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md","pick-a-framework:angular":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md","pick-a-framework:angular:rxjs":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md","pick-a-framework:angular:ngrx":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md","pick-a-framework:vue-js":"/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md","pick-a-framework:vue-js:vuex":"/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md","modern-css":"/roadmaps/100-frontend/content/112-modern-css/readme.md","modern-css:styled-components":"/roadmaps/100-frontend/content/112-modern-css/100-styled-components.md","modern-css:css-modules":"/roadmaps/100-frontend/content/112-modern-css/101-css-modules.md","modern-css:styled-jsx":"/roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md","modern-css:emotion":"/roadmaps/100-frontend/content/112-modern-css/103-emotion.md","web-components":"/roadmaps/100-frontend/content/113-web-components/readme.md","web-components:html-templates":"/roadmaps/100-frontend/content/113-web-components/100-html-templates.md","web-components:custom-elements":"/roadmaps/100-frontend/content/113-web-components/101-custom-elements.md","web-components:shadow-dom":"/roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md","css-frameworks":"/roadmaps/100-frontend/content/114-css-frameworks/readme.md","css-frameworks:js-first":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md","css-frameworks:js-first:chakra-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md","css-frameworks:js-first:material-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md","css-frameworks:js-first:radix-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md","css-frameworks:js-first:tailwind-css":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md","css-frameworks:css-first":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md","css-frameworks:css-first:bootstrap":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md","css-frameworks:css-first:bulma":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md","testing-your-apps":"/roadmaps/100-frontend/content/115-testing-your-apps/readme.md","testing-your-apps:jest":"/roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md","testing-your-apps:react-testing-library":"/roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md","testing-your-apps:cypress":"/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md","testing-your-apps:enzyme":"/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md","testing-your-apps:other-options":"/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md","type-checkers":"/roadmaps/100-frontend/content/116-type-checkers/readme.md","type-checkers:typescript":"/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md","type-checkers:flow":"/roadmaps/100-frontend/content/116-type-checkers/101-flow.md","progressive-web-apps":"/roadmaps/100-frontend/content/117-progressive-web-apps/readme.md","progressive-web-apps:performance":"/roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md","progressive-web-apps:apis":"/roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md","server-side-rendering":"/roadmaps/100-frontend/content/118-server-side-rendering/readme.md","server-side-rendering:react-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md","server-side-rendering:react-js:next-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md","server-side-rendering:react-js:after-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md","server-side-rendering:angular":"/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md","server-side-rendering:angular:universal":"/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md","server-side-rendering:vue-js":"/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md","server-side-rendering:vue-js:nuxt-js":"/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md","graphql":"/roadmaps/100-frontend/content/119-graphql/readme.md","graphql:apollo":"/roadmaps/100-frontend/content/119-graphql/100-apollo.md","graphql:relay-modern":"/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md","static-site-generators":"/roadmaps/100-frontend/content/120-static-site-generators/readme.md","static-site-generators:next-js":"/roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md","static-site-generators:gatsbyjs":"/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md","static-site-generators:nuxt-js":"/roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md","static-site-generators:vuepress":"/roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md","static-site-generators:jekyll":"/roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md","static-site-generators:hugo":"/roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md","static-site-generators:gridsome":"/roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md","static-site-generators:eleventy":"/roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md","mobile-applications":"/roadmaps/100-frontend/content/121-mobile-applications/readme.md","mobile-applications:react-native":"/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md","mobile-applications:nativescript":"/roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md","mobile-applications:flutter":"/roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md","mobile-applications:ionic":"/roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md","desktop-applications":"/roadmaps/100-frontend/content/122-desktop-applications/readme.md","desktop-applications:electron":"/roadmaps/100-frontend/content/122-desktop-applications/100-electron.md","desktop-applications:carlo":"/roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md","desktop-applications:proton-native":"/roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md","web-assembly":"/roadmaps/100-frontend/content/123-web-assembly.md"}')},9258:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a frontend developer","frontend developer","frontend engineer","frontend skills","frontend development","javascript developer","frontend development skills","frontend development skills test","frontend roadmap","frontend engineer roadmap","frontend developer roadmap","become a frontend developer","frontend developer career path","javascript developer","modern javascript developer","node developer","skills for frontend development","learn frontend development","what is frontend development","frontend developer quiz","frontend developer interview questions"]},"title":"Frontend Developer","description":"Step by step guide to becoming a modern frontend developer in 2021","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2021","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"featured":true,"imageUrl":"/roadmaps/frontend.png","jsonUrl":"/project/frontend.json","resourcesPath":"./resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/frontend-roadmap","contentPathsFilePath":"./content-paths.json"}')},6782:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","backend development","javascript developer","backend development skills","backend development skills test","backend engineer roadmap","backend developer roadmap","become a backend developer","backend developer career path","javascript developer","modern javascript developer","node developer","skills for backend development","learn backend development","what is backend development","backend developer quiz","backend developer interview questions"]},"title":"Backend Developer","description":"Step by step guide to becoming a modern backend developer in 2021","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2021","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/frontend.json","resourcesPath":"./resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap"}')},4017:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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":["guide to becoming a devops enginer","devops roadmap","sre roadmap","site reliability engineer roadmap","operations roles","become devops","devops skills","modern devops skills","devops skills test","skills for devops","learn devops","what is devops","what is sre","devops quiz","devops interview questions"]},"title":"DevOps Roadmap","description":"Step by step guide for DevOps, SRE or any other Operations Role in 2021","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2021","featured":true,"imageUrl":"/roadmaps/devops.png","jsonUrl":"/project/devops.json","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/devops-roadmap"}')},8477:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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":["guide to becoming a react developer","react developer roadmap","react roadmap","become react developer","react developer skills","react skills test","skills for react development","learn react development","what is react","react quiz","react interview questions"]},"title":"React Developer","description":"Everything that is there to learn about React and the ecosystem in 2021.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","jsonUrl":"/project/react.json","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/react-roadmap"}')},8834:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"jsonUrl":"/project/angular.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/angular-roadmap"}')},9508:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/android.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},4099:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/python.json","resourcesPath":"./resources.md","landingPath":"./landscape.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/python-roadmap","versions":["latest"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},2737:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Learn to become a Go 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":["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 2021","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/golang.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/go-roadmap","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},2507:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Learn to become a modern Java 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":["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 2021","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/java.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/java-roadmap"}')},8951:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"DBA Roadmap: Learn to become a database administrator with PostgreSQL","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":["guide to becoming a database administrator","guide to becoming a DBA","dba roadmap","db administrator roadmap","database administrator roadmap","postgresql roadmap","dba skills","db administrator skills","become dba","postgresql skills","modern dba skills","dba skills test","skills for dba","skills for database administrator","learn dba","what is dba","database administrator quiz","dba interview questions"]},"title":"PostgreSQL DBA","description":"Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2021","landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[]}')},7559:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"AWS Roadmap: Learn to use AWS","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":["guide to aws","aws roadmap","aws skills","aws skills test","skills for aws","cloud development","what is aws","aws quiz","aws interview questions"]},"title":"AWS","description":"Everything that is there to learn about AWS and the ecosystem in 2021.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},3204:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"QA Roadmap: Learn to become a modern QA engineer","description":"Community driven, articles, resources, guides, interview questions, quizzes for modern QA development. Learn to become a modern QA engineer by following the steps, skills, resources and guides listed in this roadmap.","keywords":["guide to becoming a QA engineer","QA engineer","QA skills","QA development skills","QA development skills test","QA engineer roadmap","become a QA engineer","QA engineer career path","skills for QA development","what is QA engineer","QA engineer quiz","QA engineer interview questions"]},"title":"QA Engineer","description":"Steps to follow in order to become a modern QA Engineer in 2021","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2021","isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"}}')},1797:function(e){"use strict";e.exports=JSON.parse('[{"id":"what-is-eventual-consistency","title":"What is Eventual Consistency?","description":"Learn about the different consistency models in distributed systems","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=rpqsSkTIdAw","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2021-11-30T19:59:14.191Z","createdAt":"2021-11-30T19:59:14.191Z"},{"id":"ssh-ssl-tls","title":"SSH vs TLS vs SSL","description":"Learn the difference between SSH, TLS and SSL","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=k3rFFLmQCuY","authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2021-11-25T19:59:14.191Z","createdAt":"2021-11-25T19:59:14.191Z"},{"id":"async-javascript","title":"Asynchronous JavaScript","description":"Learn how to write asynchronous JavaScript using Async/Await","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=VyIK6SV5f7o","authorUsername":"kamranahmedse","duration":"15 minutes","updatedAt":"2021-11-14T19:59:14.191Z","createdAt":"2021-11-14T19:59:14.191Z"},{"id":"random-number-generators","title":"Random Number Generators","description":"How do random number generators work?","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=nDv3yXdD0rk","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-11-03T19:59:14.191Z","createdAt":"2021-11-03T19:59:14.191Z"},{"id":"big-o-notation","title":"Big O Notation","description":"Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=Z0bH0cMY0E8","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-25T19:59:14.191Z","createdAt":"2021-10-25T19:59:14.191Z"},{"id":"yaml-in-depth","title":"YAML in Depth","description":"Everything you need to know about YAML","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=ImHSpwUlNVc","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-18T19:59:14.191Z","createdAt":"2021-10-18T19:59:14.191Z"},{"id":"floating-point-arithmetic","title":"Floating Point Arithmetic","description":"Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=RIiq4tTt6rI","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2021-10-10T19:59:14.191Z","createdAt":"2021-10-10T19:59:14.191Z"},{"id":"what-is-cap-theorem","title":"What is CAP Theorem?","description":"An illustrated explanation to CAP theorem with examples and proof.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=_RbsFXWRZ10","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-05T19:59:14.191Z","createdAt":"2021-10-05T19:59:14.191Z"},{"id":"acid-explained","title":"ACID Explained","description":"Learn what it means for a database to be ACID compliant with examples.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=yaQ5YMWkxq4","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2021-09-26T19:59:14.191Z","createdAt":"2021-09-26T19:59:14.191Z"},{"id":"transport-protocols-tcp-vs-udp","title":"Transport Protocols: TCP vs UDP","description":"Learn about the Transport Layer of the TCP/IP model and different transport protocols.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=37AFBZv4_6Y","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2020-11-21T19:59:14.191Z","createdAt":"2020-11-21T19:59:14.191Z"},{"id":"tcp-ip-model","title":"TCP/IP Model Explained","description":"Learn what is TCP/IP Model and the different layers involved.","isPro":false,"authorUsername":"kamranahmedse","youtubeLink":"https://www.youtube.com/watch?v=F5rni9fr1yE","duration":"5 minutes","updatedAt":"2020-11-06T19:59:14.191Z","createdAt":"2020-11-06T19:59:14.191Z"},{"id":"osi-model","title":"OSI Model Explained","description":"Learn what is OSI Model and the different layers involved.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=dV8mjZd1OtU","authorUsername":"kamranahmedse","duration":"7 minutes","updatedAt":"2020-10-24T19:59:14.191Z","createdAt":"2020-10-24T19:59:14.191Z"},{"id":"freeze-and-seal-objects-in-javascript","title":"Freeze and Seal in JavaScript","description":"Learn what is OSI Model and the different layers involved.","youtubeLink":"https://www.youtube.com/watch?v=O3uT2l6vgZ8","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-10-16T19:59:14.191Z","createdAt":"2020-10-16T19:59:14.191Z"},{"id":"all-about-http-caching","title":"All about HTTP Caching","description":"Learn what is HTTP caching, places for caching and different caching headers.","youtubeLink":"https://www.youtube.com/watch?v=HiBDZgTNpXY","isPro":false,"authorUsername":"kamranahmedse","duration":"13 minutes","updatedAt":"2020-10-04T19:59:14.191Z","createdAt":"2020-10-04T19:59:14.191Z"},{"id":"content-delivery-networks","title":"Content Delivery Networks","description":"Learn what the CDNs are and the difference between push CDN vs pull CDN.","youtubeLink":"https://www.youtube.com/watch?v=6DXEPcXKQNY","isPro":false,"authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2020-09-26T19:59:14.191Z","createdAt":"2020-09-26T19:59:14.191Z"},{"id":"load-balancers-101","title":"Load Balancers 101","description":"Learn the basics of load balancers, types and different algorithms.","youtubeLink":"https://www.youtube.com/watch?v=galcDRNd5Ow","isPro":false,"authorUsername":"kamranahmedse","duration":"9 minutes","updatedAt":"2020-09-18T19:59:14.191Z","createdAt":"2020-09-18T19:59:14.191Z"},{"id":"dns-records","title":"DNS Records","description":"Learn what the DNS is and how a website is found on the internet.","youtubeLink":"https://www.youtube.com/watch?v=7lxgpKh_fRY","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-08-31T19:59:14.191Z","createdAt":"2020-08-31T19:59:14.191Z"},{"id":"dns-explained","title":"DNS and how does it work?","description":"Learn what the DNS is and how a website is found on the internet.","youtubeLink":"https://www.youtube.com/watch?v=Wj0od2ag5sk","isPro":false,"authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2020-08-17T19:59:14.191Z","createdAt":"2020-08-17T19:59:14.191Z"},{"id":"system-design-101","title":"System Design 101","description":"Learn about all the bits and pieces of system design.","youtubeLink":"https://www.youtube.com/watch?v=Y-Gl4HEyeUQ","isPro":false,"authorUsername":"kamranahmedse","duration":"7 minutes","updatedAt":"2020-08-08T19:59:14.191Z","createdAt":"2020-08-08T19:59:14.191Z"},{"id":"javascript-fetch-api","title":"JavaScript Fetch API","description":"Learn how to use JavaScript\'s Fetch API to interact with remote API.","youtubeLink":"https://www.youtube.com/watch?v=-ZI0ea5O2oA","isPro":false,"authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2020-08-02T19:59:14.191Z","createdAt":"2020-08-02T19:59:14.191Z"},{"id":"scaling-the-unscalable","title":"Scaling the Unscalable","description":"Learn the basics of System Design and understand how to build a scalable application.","youtubeLink":"https://www.youtube.com/watch?v=a2rcgzludDU","isPro":false,"authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2020-07-26T19:59:14.191Z","createdAt":"2020-07-26T19:59:14.191Z"},{"id":"promises-in-javascript","title":"All about Promises in JavaScript","youtubeLink":"https://www.youtube.com/watch?v=BvrkobaCVVE","description":"Learn how to write asynchronous code in JavaScript using promises.","isPro":false,"authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2020-07-20T19:59:14.191Z","createdAt":"2020-07-20T19:59:14.191Z"},{"id":"how-to-use-github-actions","title":"Automate with GitHub Actions","description":"Learn how to implement CI/CD with GitHub Actions","youtubeLink":"https://www.youtube.com/watch?v=nyKZTKQS_EQ","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-07-13T19:59:14.191Z","createdAt":"2020-07-13T19:59:14.191Z"},{"id":"what-is-dependency-injection","title":"What is Dependency Injection?","description":"Learn what is dependency injection and how to write better code with the help of it.","youtubeLink":"https://www.youtube.com/watch?v=0yc2UANSDiw","isPro":false,"authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2020-07-04T19:59:14.191Z","createdAt":"2020-07-04T19:59:14.191Z"},{"id":"how-to-use-css-variables","title":"How to use CSS Variables?","description":"Learn how to write scalable CSS using CSS Variables.","youtubeLink":"https://www.youtube.com/watch?v=lgaxU7CRmxU","isPro":false,"authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2020-07-03T19:59:14.191Z","createdAt":"2020-07-03T19:59:14.191Z"},{"id":"what-is-dom-shadow-dom-virtual-dom","title":"DOM, Shadow DOM, Virtual DOM","description":"Learn what is DOM, Shadow DOM and Virtual DOM and how they work.","youtubeLink":"https://www.youtube.com/watch?v=7Tok22qxPzQ","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-07-20T19:59:14.191Z","createdAt":"2020-07-20T19:59:14.191Z"},{"id":"practical-intro-to-react","title":"Practical Introduction to React","description":"Learn how to create a React Application with practical example.","youtubeLink":"https://www.youtube.com/watch?v=NyG7YJWJd6s&list=PLkZYeFmDuaN3NDLnBG01-sH2-nwn43mYu","isPro":false,"authorUsername":"kamranahmedse","duration":"40 minutes","updatedAt":"2020-07-09T19:59:14.191Z","createdAt":"2020-07-09T19:59:14.191Z"},{"id":"arrays-and-objects-in-javascript","title":"Arrays and Objects in JavaScript","description":"Learn how to manipulate arrays and objects in JavaScript.","youtubeLink":"https://www.youtube.com/watch?v=n3NKGsM3iEw","isPro":false,"authorUsername":"kamranahmedse","duration":"12 minutes","updatedAt":"2020-05-09T19:59:14.191Z","createdAt":"2020-05-09T19:59:14.191Z"}]')}}]); \ No newline at end of file diff --git a/_next/static/chunks/280-90b5a7676c3fcbc6.js b/_next/static/chunks/280-90b5a7676c3fcbc6.js new file mode 100644 index 000000000..feeaddef6 --- /dev/null +++ b/_next/static/chunks/280-90b5a7676c3fcbc6.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[280],{9280:function(e,t,n){var r={"./authors":8712,"./authors.json":8712,"./guides":9552,"./guides.json":9552,"./guides/asymptotic-notation.md":3070,"./guides/avoid-render-blocking-javascript-with-async-defer.md":8829,"./guides/basic-authentication.md":5151,"./guides/big-o-notation.md":5198,"./guides/character-encodings.md":3180,"./guides/ci-cd.md":7354,"./guides/design-patterns-for-humans.md":3406,"./guides/dhcp-in-one-picture.md":3784,"./guides/dns-in-one-picture.md":9937,"./guides/history-of-javascript.md":8003,"./guides/http-caching.md":9128,"./guides/journey-to-http2.md":3045,"./guides/jwt-authentication.md":5772,"./guides/levels-of-seniority.md":3878,"./guides/oauth.md":801,"./guides/project-history.md":6681,"./guides/proxy-servers.md":7035,"./guides/random-numbers.md":513,"./guides/scaling-databases.md":7507,"./guides/session-authentication.md":8676,"./guides/ssl-tls-https-ssh.md":6053,"./guides/sso.md":9809,"./guides/token-authentication.md":5607,"./guides/torrent-client.md":4972,"./guides/unfamiliar-codebase.md":5941,"./guides/upcoming.md":5104,"./guides/what-are-web-vitals.md":3442,"./guides/what-is-internet.md":1470,"./guides/what-is-sli-slo-sla.md":1307,"./guides/why-build-it-and-they-will-come-wont-work-anymore.md":9554,"./pages/about.md":4160,"./pages/privacy.md":5591,"./pages/terms.md":2547,"./roadmaps":1662,"./roadmaps.json":1662,"./roadmaps/100-frontend/content-paths":8359,"./roadmaps/100-frontend/content-paths.json":8359,"./roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md":5606,"./roadmaps/100-frontend/content/100-internet/101-what-is-http.md":181,"./roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md":6152,"./roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md":3405,"./roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md":2222,"./roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md":8129,"./roadmaps/100-frontend/content/100-internet/readme.md":2633,"./roadmaps/100-frontend/content/101-html/100-learn-the-basics.md":7828,"./roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md":258,"./roadmaps/100-frontend/content/101-html/102-forms-and-validations.md":757,"./roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md":1881,"./roadmaps/100-frontend/content/101-html/104-accessibility.md":3699,"./roadmaps/100-frontend/content/101-html/105-seo-basics.md":584,"./roadmaps/100-frontend/content/101-html/readme.md":3913,"./roadmaps/100-frontend/content/102-css/100-learn-the-basics.md":8533,"./roadmaps/100-frontend/content/102-css/101-making-layouts.md":3780,"./roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md":1118,"./roadmaps/100-frontend/content/102-css/readme.md":5211,"./roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md":617,"./roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md":1569,"./roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md":4746,"./roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md":6401,"./roadmaps/100-frontend/content/103-javascript/104-concepts.md":2698,"./roadmaps/100-frontend/content/103-javascript/readme.md":8613,"./roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md":2555,"./roadmaps/100-frontend/content/104-version-control-systems/readme.md":8405,"./roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md":8548,"./roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md":1952,"./roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md":6145,"./roadmaps/100-frontend/content/105-repo-hosting-services/readme.md":493,"./roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md":2510,"./roadmaps/100-frontend/content/106-web-security-knowledge/101-content-security-policy.md":9377,"./roadmaps/100-frontend/content/106-web-security-knowledge/102-cors.md":8705,"./roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md":8633,"./roadmaps/100-frontend/content/106-web-security-knowledge/readme.md":9012,"./roadmaps/100-frontend/content/107-package-managers/100-npm.md":1415,"./roadmaps/100-frontend/content/107-package-managers/101-yarn.md":6356,"./roadmaps/100-frontend/content/107-package-managers/readme.md":8988,"./roadmaps/100-frontend/content/108-css-architecture/100-bem.md":6665,"./roadmaps/100-frontend/content/108-css-architecture/101-oocss.md":1750,"./roadmaps/100-frontend/content/108-css-architecture/102-smacss.md":8887,"./roadmaps/100-frontend/content/108-css-architecture/readme.md":5220,"./roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md":4447,"./roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md":5106,"./roadmaps/100-frontend/content/109-css-preprocessors/102-less.md":2972,"./roadmaps/100-frontend/content/109-css-preprocessors/readme.md":8365,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md":6523,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md":8664,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md":6795,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md":9500,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md":5629,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md":5648,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md":762,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md":6459,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/100-prettier.md":840,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/101-eslint.md":2816,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md":4453,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md":2310,"./roadmaps/100-frontend/content/110-build-tools/readme.md":7093,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md":7139,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md":5783,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md":7810,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md":6199,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md":5685,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md":3162,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md":3666,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md":549,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md":5277,"./roadmaps/100-frontend/content/111-pick-a-framework/readme.md":1473,"./roadmaps/100-frontend/content/112-modern-css/100-styled-components.md":3745,"./roadmaps/100-frontend/content/112-modern-css/101-css-modules.md":1720,"./roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md":4349,"./roadmaps/100-frontend/content/112-modern-css/103-emotion.md":4291,"./roadmaps/100-frontend/content/112-modern-css/readme.md":9904,"./roadmaps/100-frontend/content/113-web-components/100-html-templates.md":1484,"./roadmaps/100-frontend/content/113-web-components/101-custom-elements.md":6625,"./roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md":2901,"./roadmaps/100-frontend/content/113-web-components/readme.md":8933,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md":4642,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md":4505,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md":4740,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md":1160,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md":6937,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md":9120,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md":3694,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md":7562,"./roadmaps/100-frontend/content/114-css-frameworks/readme.md":1879,"./roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md":5996,"./roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md":2772,"./roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md":3431,"./roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md":4375,"./roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md":4946,"./roadmaps/100-frontend/content/115-testing-your-apps/readme.md":5770,"./roadmaps/100-frontend/content/116-type-checkers/100-typescript.md":3227,"./roadmaps/100-frontend/content/116-type-checkers/101-flow.md":9935,"./roadmaps/100-frontend/content/116-type-checkers/readme.md":8323,"./roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md":4990,"./roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md":5089,"./roadmaps/100-frontend/content/117-progressive-web-apps/readme.md":2768,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md":9086,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md":4930,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md":8747,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md":7815,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md":6394,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md":2573,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md":5137,"./roadmaps/100-frontend/content/118-server-side-rendering/readme.md":1905,"./roadmaps/100-frontend/content/119-graphql/100-apollo.md":410,"./roadmaps/100-frontend/content/119-graphql/101-relay-modern.md":485,"./roadmaps/100-frontend/content/119-graphql/readme.md":4133,"./roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md":7935,"./roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md":1291,"./roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md":855,"./roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md":2374,"./roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md":1898,"./roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md":355,"./roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md":2578,"./roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md":476,"./roadmaps/100-frontend/content/120-static-site-generators/readme.md":5470,"./roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md":2919,"./roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md":5760,"./roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md":9268,"./roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md":7280,"./roadmaps/100-frontend/content/121-mobile-applications/readme.md":388,"./roadmaps/100-frontend/content/122-desktop-applications/100-electron.md":7137,"./roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md":373,"./roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md":5588,"./roadmaps/100-frontend/content/122-desktop-applications/readme.md":8773,"./roadmaps/100-frontend/content/123-web-assembly.md":9429,"./roadmaps/100-frontend/content/readme.md":7086,"./roadmaps/100-frontend/meta":9258,"./roadmaps/100-frontend/meta.json":9258,"./roadmaps/100-frontend/resources.md":7083,"./roadmaps/101-backend/meta":6782,"./roadmaps/101-backend/meta.json":6782,"./roadmaps/101-backend/resources.md":8093,"./roadmaps/102-devops/meta":4017,"./roadmaps/102-devops/meta.json":4017,"./roadmaps/102-devops/resources.md":5332,"./roadmaps/103-react/landscape.md":4558,"./roadmaps/103-react/meta":8477,"./roadmaps/103-react/meta.json":8477,"./roadmaps/103-react/resources.md":63,"./roadmaps/104-angular/landscape.md":595,"./roadmaps/104-angular/meta":8834,"./roadmaps/104-angular/meta.json":8834,"./roadmaps/104-angular/resources.md":7489,"./roadmaps/105-android/landscape.md":5191,"./roadmaps/105-android/meta":9508,"./roadmaps/105-android/meta.json":9508,"./roadmaps/105-android/resources.md":7890,"./roadmaps/106-python/landscape.md":9556,"./roadmaps/106-python/meta":4099,"./roadmaps/106-python/meta.json":4099,"./roadmaps/106-python/resources.md":8481,"./roadmaps/107-golang/landscape.md":2388,"./roadmaps/107-golang/meta":2737,"./roadmaps/107-golang/meta.json":2737,"./roadmaps/107-golang/resources.md":9101,"./roadmaps/108-java/landscape.md":7913,"./roadmaps/108-java/meta":2507,"./roadmaps/108-java/meta.json":2507,"./roadmaps/108-java/resources.md":9673,"./roadmaps/109-postgresql-dba/landscape.md":1464,"./roadmaps/109-postgresql-dba/meta":8951,"./roadmaps/109-postgresql-dba/meta.json":8951,"./roadmaps/109-postgresql-dba/resources.md":1545,"./roadmaps/110-aws/landscape.md":8188,"./roadmaps/110-aws/meta":7559,"./roadmaps/110-aws/meta.json":7559,"./roadmaps/110-aws/resources.md":1048,"./roadmaps/111-qa/landscape.md":4894,"./roadmaps/111-qa/meta":3204,"./roadmaps/111-qa/meta.json":3204,"./roadmaps/111-qa/resources.md":9598,"./site":8641,"./site.json":8641,"./videos":1797,"./videos.json":1797,"./videos/acid-explained.md":8974,"./videos/all-about-http-caching.md":3730,"./videos/arrays-and-objects-in-javascript.md":7589,"./videos/async-javascript.md":8001,"./videos/big-o-notation.md":6736,"./videos/content-delivery-networks.md":5489,"./videos/dns-explained.md":9029,"./videos/dns-records.md":4046,"./videos/floating-point-arithmetic.md":7327,"./videos/freeze-and-seal-objects-in-javascript.md":6527,"./videos/how-to-use-css-variables.md":5512,"./videos/how-to-use-github-actions.md":8688,"./videos/javascript-fetch-api.md":965,"./videos/load-balancers-101.md":2012,"./videos/osi-model.md":5495,"./videos/practical-intro-to-react.md":4913,"./videos/promises-in-javascript.md":7e3,"./videos/random-number-generators.md":1516,"./videos/scaling-the-unscalable.md":7850,"./videos/ssh-ssl-tls.md":9345,"./videos/system-design-101.md":5069,"./videos/tcp-ip-model.md":1559,"./videos/transport-protocols-tcp-vs-udp.md":2382,"./videos/what-is-cap-theorem.md":5875,"./videos/what-is-dependency-injection.md":2635,"./videos/what-is-dom-shadow-dom-virtual-dom.md":6095,"./videos/what-is-eventual-consistency.md":2068,"./videos/yaml-in-depth.md":6372};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=9280},4160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",null,"What is roadmap.sh?"),(0,r.kt)("p",null,"Roadmap.sh is the place containing community curated roadmaps, study plans, paths and resources for the budding\ndevelopers. It started as a ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"set of charts to guide the developers"),"\nwho are confused about what should they learn next but that alone wasn't enough so I expanded it into the website to get\nmore contributors involved."),(0,r.kt)("h2",null,"What are the plans for roadmap.sh?"),(0,r.kt)("p",null,"The website started off as\na ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"simple repository containing a few charts")," for developers and\nbased on my personal opinions but it could have been much more than that so I decided to expand it to a website where\npeople can contribute to study plans with their areas of expertise as well, add more roadmaps, write guides etc."),(0,r.kt)("p",null,"We haven't opened up the sign ups for now but we will be doing. My long term plans for this website are to turn it into\na goto place for the developers to seek guidance about their careers, help others, share their journeys, incentivize the\nlearnings, get feedbacks on their projects etc."),(0,r.kt)("h2",null,"How did you build roadmap.sh?"),(0,r.kt)("p",null,"The basic version of the website has been built with ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/zeit/next.js/"}),"Next.js"),", is opensource and can\nbe found on ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"github"),". It was hastily done to get it out in front of the\npeople and get people to start contributing, so it might be rough on the edges, but that is where we need your help."),(0,r.kt)("h2",null,"How does it make money?"),(0,r.kt)("p",null,"It doesn't make any money. I have been using my personal time and budget to build it. I did not create this website with\nany intentions of monetization but as a good will, to help the people get out of the frustration that I was once in."),(0,r.kt)("p",null,"Having said that, I love teaching and my future plans are to be able to work full-time on roadmap.sh for which it has to\nmake enough money to pay for my rent, groceries, bills, travel expenses, etc but even if it doesn't it's likely I'll\ncontinue growing the site however I can. My focus at the moment is not making money from it and just add content that\ncreates value for the people."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Sponsor the efforts by ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/sponsors/kamranahmedse"}),"paying as little as 5$ per month")," or with ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://paypal.me/kamranahmedse"}),"one time payment via paypal"),". Alternatively, reach out to me at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),".")),(0,r.kt)("h2",null,"Can I contribute?"),(0,r.kt)("p",null,"You definitely can, infact you are encouraged to do that. Even your minor contributions such as typo fixes count. The\nsource code of the website can be ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"found on Github"),". Your contributions can\nbe:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Adding a new roadmap"),(0,r.kt)("li",{parentName:"ul"},"Updating existing roadmap"),(0,r.kt)("li",{parentName:"ul"},"Suggesting changes to the existing roadmaps"),(0,r.kt)("li",{parentName:"ul"},"Writing a Guide"),(0,r.kt)("li",{parentName:"ul"},"Updating an existing guide"),(0,r.kt)("li",{parentName:"ul"},"Fixing grammar mistakes, typos on the website or the content"),(0,r.kt)("li",{parentName:"ul"},"Updating the UI of the website"),(0,r.kt)("li",{parentName:"ul"},"Refactoring the codebase"),(0,r.kt)("li",{parentName:"ul"},"Becoming a sponsor")),(0,r.kt)("p",null,"Just make sure\nto ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing"}),"follow the contribution guidelines")," when you\ndecide to contribute."),(0,r.kt)("h2",null,"Can I redistribute the content?"),(0,r.kt)("p",null,"No, the license of the content on this website does not allow you to redistribute any of the content on this website\nanywhere. You can use it for personal use or share the link to the content if you have to but redistribution is not\nallowed."),(0,r.kt)("h2",null,"What is the best way to contact you?"),(0,r.kt)("p",null,"Tweet or send me a message ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://twitter.com/kamranahmedse"}),"@kamranahmedse")," or email me\nat ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),". I get lots of messages so apologies in advance if you don't hear back\nfrom me soon but I do reply to everyone."))}s.isMDXComponent=!0},5591:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Privacy Policy"),(0,r.kt)("p",null,"By using or accessing the Services in any manner, you acknowledge that you accept the practices and policies outlined in this Privacy Policy, and you hereby consent that we will collect, use, and share your information in the following ways. Remember that your use of roadmap.sh\u2019s Services is at all times subject to the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/terms"}),"Terms of Use"),", which incorporates this Privacy Policy. Any terms we use in this Policy without defining them have the definitions given to them in the Terms of Use."),(0,r.kt)("h2",null,"What does this Privacy Policy cover?"),(0,r.kt)("p",null,'This Privacy Policy covers our treatment of personally identifiable information ("Personal Information") that we gather when you are accessing or using our Services, but not to the practices of companies we don\u2019t own or control, or people that we don\u2019t manage. We gather various types of Personal Information from our users, as explained in more detail below, and we use this Personal Information internally in connection with our Services, including to personalize, provide, and improve our services, to allow you to set up a user account and profile, to contact you and allow other users to contact you, to fulfill your requests for certain products and services, and to analyze how you use the Services. In certain cases, we may also share some Personal Information with third parties, but only as described below.'),(0,r.kt)("p",null,"As noted in the Terms of Use, we do not knowingly collect or solicit personal information from anyone under the age of 13. If you are under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn that we have collected personal information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"Will roadmap.sh ever change this Privacy Policy?"),(0,r.kt)("p",null,"We\u2019re constantly trying to improve our Services, so we may need to change this Privacy Policy from time to time as well, but we will alert you to changes by updating the services on the website, placing a notice on the Services, by sending you an email, and/or by some other means. Please note that if you\u2019ve opted not to receive legal notice emails from us (or you haven\u2019t provided us with your email address), those legal notices will still govern your use of the Services, and you are still responsible for reading and understanding them. If you use the Services after any changes to the Privacy Policy have been posted, that means you agree to all of the changes. Use of information we collect now is subject to the Privacy Policy in effect at the time such information is used or collected."),(0,r.kt)("h2",null,"What Information does roadmap.sh Collect?"),(0,r.kt)("p",null,"Information You Provide to Us:"),(0,r.kt)("p",null,"We receive and store any information you knowingly provide to us. For example, through the registration process and/or through your account settings, we may collect Personal Information such as your name, title, email address, phone number, and third-party account credentials (for example, your log-in credentials for Twitter or other third party sites. If you provide your third-party account credentials to us or otherwise sign in to the Services through a third party site or service, you understand some content and/or information in those accounts (\u201cThird Party Account Information\u201d) may be transmitted into your account with us if you authorize such transmissions], and that Third Party Account Information transmitted to our Services is covered by this Privacy Policy. Certain information may be required to register with us or to take advantage of some of our features."),(0,r.kt)("p",null,"We may communicate with you if you\u2019ve provided us the means to do so. For example, if you\u2019ve given us your email address, we may send you promotional email offers on behalf of other businesses, or email you about your use of the Services. Also, we may receive a confirmation when you open an email from us. This confirmation helps us make our communications with you more interesting and improve our services. If you do not want to receive communications from us, please email us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"Information Collected Automatically"),(0,r.kt)("p",null,"Whenever you interact with our Services, we automatically receive and record information on our server logs from your browser or device, which may include your IP address, geolocation data, device identification, \u201ccookie\u201d information, the type of browser and/or device you\u2019re using to access our Services, and the page or feature you requested. \u201cCookies\u201d are identifiers we transfer to your browser or device that allow us to recognize your browser or device and tell us how and when pages and features in our Services are visited and by how many people. You may be able to change the preferences on your browser or device to prevent or limit your device\u2019s acceptance of cookies, but this may prevent you from taking advantage of some of our features. Our advertising partners may also transmit cookies to your browser or device, when you click on ads that appear on the Services. Also if you click on a link to a third party website or service, such third party may also transmit cookies to you. Again, this Privacy Policy does not cover the use of cookies by any third parties, and we aren\u2019t responsible for their privacy policies and practices."),(0,r.kt)("p",null,"When we collect the usage information described above, we only use this data in aggregate form, and not in a manner that would identify you personally. For example, this aggregate data can tell us how often users use a particular feature of the Services, and we can use that knowledge to make the Services interesting to as many users as possible."),(0,r.kt)("h2",null,"Will roadmap.sh Share Any of the Personal Information it Receives?"),(0,r.kt)("p",null,"We may share your Personal Information with third parties as described in this section:"),(0,r.kt)("p",null,"Information that\u2019s no longer personally identifiable. We may anonymize your Personal Information so that you are not individually identified, and provide that information to our partners. We may also provide aggregate usage information to our partners, who may use such information to understand how often and in what ways people use our Services, so that they, too, can provide you with an optimal online experience. However, we never disclose aggregate information to a partner in a manner that would identify you personally, as an individual."),(0,r.kt)("p",null,"Advertisers: We may allow advertisers and/or merchant partners (\u201cAdvertisers\u201d) to choose the demographic information of users who will see their advertisements and/or promotional offers and you agree that we may provide any of the information we have collected from you in non-personally identifiable form to an Advertiser, in order for that Advertiser to select the appropriate audience for those advertisements and/or offers. For example, we might use the fact you are located in San Francisco to show you ads or offers for San Francisco businesses, but we will not tell such businesses who you are. Note that if an advertiser asks us to show an ad to a certain audience or audience segment and you respond to that ad, the advertiser may conclude that you fit the description of the audience they were trying to reach."),(0,r.kt)("p",null,"We may deliver a file to you through the Services (known as a \u201cweb beacon\u201d) from an ad network. Web beacons allow ad networks to provide anonymized, aggregated auditing, research and reporting for us and for advertisers. Web beacons also enable ad networks to serve targeted advertisements to you when you visit other websites. Because your web browser must request these advertisements and web beacons from the ad network\u2019s servers, these companies can view, edit, or set their own cookies, just as if you had requested a web page from their site. You may be able to opt-out of web beacon tracking by adjusting the settings on your browser."),(0,r.kt)("p",null,"Affiliated Businesses: In certain situations, businesses or third party websites we\u2019re affiliated with may sell or provide products or services to you through or in connection with the Services (either alone or jointly with us). You can recognize when an affiliated business is associated with such a transaction or service, and we will share your Personal Information with that affiliated business only to the extent that it is related to such transaction or service. One such service may include the ability for you to automatically transmit Third Party Account Information to your Services profile or to automatically transmit information in your Services profile to your third party account; for example, you may sign into your roadmap.sh account using your Twitter account. We have no control over the policies and practices of third party websites or businesses as to privacy or anything else, so if you choose to take part in any transaction or service relating to an affiliated website or business, please review all such business\u2019 or websites\u2019 policies."),(0,r.kt)("p",null,"Our Agents: We employ other companies and people to perform tasks on our behalf and need to share your information with them to provide products or services to you. Unless we tell you differently, our agents do not have any right to use the Personal Information we share with them beyond what is necessary to assist us."),(0,r.kt)("p",null,"User Profiles and Submissions: Certain user profile information, including your name, location, and any video or image content that such user has uploaded to the Services, may be displayed to other users to facilitate user interaction within the Services or address your request for our services. Please remember that any content you upload to your public user profile, along with any Personal Information or content that you voluntarily disclose online in a manner other users can view (on discussion boards, in messages and chat areas, etc.) becomes publicly available, and can be collected and used by anyone. Your user name may also be displayed to other users if and when you send messages or comments or upload images or videos through the Services and other users can contact you through messages and comments. Additionally, if you sign into the Services through a third party social networking site or service, your list of \u201cfriends\u201d from that site or service may be automatically imported to the Services, and such \u201cfriends,\u201d if they are also registered users of the Services, may be able to access certain non-public information you have entered in your Services user profile. Again, we do not control the policies and practices of any other third party site or service."),(0,r.kt)("p",null,"Business Transfers: We may choose to buy or sell assets. In these types of transactions, customer information is typically one of the business assets that would be transferred. Also, if we (or our assets) are acquired, or if we go out of business, enter bankruptcy, or go through some other change of control, Personal Information could be one of the assets transferred to or acquired by a third party."),(0,r.kt)("p",null,"Protection of roadmap.sh and Others: We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with law or court order; enforce or apply our terms of use and other agreements; or protect the rights, property, or safety of roadmap.sh, our employees, our users, or others."),(0,r.kt)("h2",null,"Is Personal Information about me secure?"),(0,r.kt)("p",null,"Your account is protected by a password for your privacy and security. If you access your account via a third party site or service, you may have additional or different sign-on protections via that third party site or service. You must prevent unauthorized access to your account and Personal Information by selecting and protecting your password and/or other sign-on mechanism appropriately and limiting access to your computer or device and browser by signing off after you have finished accessing your account. We endeavor to protect the privacy of your account and other Personal Information we hold in our records, but unfortunately, we cannot guarantee complete security. Unauthorized entry or use, hardware or software failure, and other factors, may compromise the security of user information at any time."),(0,r.kt)("h2",null,"What Personal Information can I access?"),(0,r.kt)("p",null,"Through your account settings, you may access, and, in some cases, edit or delete the following information you\u2019ve provided to us:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"first and last name"),(0,r.kt)("li",{parentName:"ul"},"location of residence"),(0,r.kt)("li",{parentName:"ul"},"age or birthday"),(0,r.kt)("li",{parentName:"ul"},"username")),(0,r.kt)("p",null,"The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("p",null,"Under California Civil Code Sections 1798.83-1798.84, California residents are entitled to ask us for a notice identifying the categories of Personal Information which we share with our affiliates and/or third parties for marketing purposes, and providing contact information for such affiliates and/or third parties. If you are a California resident and would like a copy of this notice, please submit a written request to: ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),"."),(0,r.kt)("h2",null,"What choices do I have?"),(0,r.kt)("p",null,"You can always opt not to disclose information to us, but keep in mind some information may be needed to register with us or to take advantage of some of our features."),(0,r.kt)("p",null,"You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting us at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com")," and we will disassociate our email address and Twitter account from any content or other information provided to us. Some information may remain in our records after your deletion of such information from your account. We may use any aggregated data derived from or incorporating your Personal Information after you update or delete it, but not in a manner that would identify you personally."),(0,r.kt)("h2",null,"What if I have questions about this policy?"),(0,r.kt)("p",null,"If you have any questions or concerns regarding our privacy policies, please send us a detailed message to ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"mailto:kamranahmed.se@gmail.com"}),"kamranahmed.se@gmail.com"),", and we will try to resolve your concerns."))}s.isMDXComponent=!0},5606:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Internet"),(0,r.kt)("p",null,"The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.vox.com/2014/6/16/18076282/the-internet",mdxType:"BadgeLink"},"The Internet Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm",mdxType:"BadgeLink"},"How Does the Internet Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"/guides/what-is-internet",mdxType:"BadgeLink"},"Introduction to Internet"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=x3c1ih2NJEg",mdxType:"BadgeLink"},"How does the Internet work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7_LPdttKXPc",mdxType:"BadgeLink"},"How the Internet Works in 5 Minutes"))}u.isMDXComponent=!0},181:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"What is HTTP?"),(0,r.kt)("p",null,"HTTP is the ",(0,r.kt)("inlineCode",{parentName:"p"},"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/",mdxType:"BadgeLink"},"What is HTTP?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview",mdxType:"BadgeLink"},"An overview of HTTP"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://kamranahmed.info/blog/2016/08/13/http-in-depth/",mdxType:"BadgeLink"},"Journey to HTTP/2"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}u.isMDXComponent=!0},6152:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Browsers"),(0,r.kt)("p",null,"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. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/",mdxType:"BadgeLink"},"How Browsers Work"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.browserstack.com/guide/browser-rendering-engine",mdxType:"BadgeLink"},"Role of Rendering Engine in Browsers"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work",mdxType:"BadgeLink"},"Populating the Page: How Browsers Work"))}u.isMDXComponent=!0},3405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DNS"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/",mdxType:"BadgeLink"},"What is DNS?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Wj0od2ag5sk",mdxType:"BadgeLink"},"DNS and How does it Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7lxgpKh_fRY",mdxType:"BadgeLink"},"DNS Records"))}u.isMDXComponent=!0},2222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Domain Name"),(0,r.kt)("p",null,"A domain name is a unique, easy-to-remember address used to access websites, such as \u2018google.com\u2019, and \u2018facebook.com\u2019. Users can connect to websites using domain names thanks to the DNS system."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name",mdxType:"BadgeLink"},"What is a Domain Name?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/",mdxType:"BadgeLink"},"What is a Domain Name? | Domain name vs. URL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Y4cRx19nhJk",mdxType:"BadgeLink"},"A Beginners Guide to How Domain Names Work"))}u.isMDXComponent=!0},8129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hosting"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=htbY9-yggB0",mdxType:"BadgeLink"},"What Is Web Hosting? Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=AXVZYzw8geg",mdxType:"BadgeLink"},"Different Types of Web Hosting Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Kx_1NYYJS7Q",mdxType:"BadgeLink"},"Where to Host a Fullstack Project on a Budget"))}u.isMDXComponent=!0},2633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Internet"),(0,r.kt)("p",null,"The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.vox.com/2014/6/16/18076282/the-internet",mdxType:"BadgeLink"},"The Internet Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm",mdxType:"BadgeLink"},"How Does the Internet Work?"),(0,r.kt)(i,{badgeText:"Watch",href:"/guides/what-is-internet",mdxType:"BadgeLink"},"Introduction to Internet"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=x3c1ih2NJEg",mdxType:"BadgeLink"},"How does the Internet work?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7_LPdttKXPc",mdxType:"BadgeLink"},"How the Internet Works in 5 Minutes"))}u.isMDXComponent=!0},7828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML Basics"),(0,r.kt)("p",null,"HTML stands for Hyper Text 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=pQN-pnXPaVg",mdxType:"BadgeLink"},"HTML Full Course - Build a Website Tutorial"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qz0aGYrrlhU",mdxType:"BadgeLink"},"HTML Tutorial for Beginners: HTML Crash Course"))}u.isMDXComponent=!0},258:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Semantic HTML"),(0,r.kt)("p",null,"Semantic element clearly describes its meaning to both the browser and the developer."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/html/html5_semantic_elements.asp",mdxType:"BadgeLink"},"W3Schools: Semantic HTML"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://hackernoon.com/how-to-write-semantic-html-dkq3ulo",mdxType:"BadgeLink"},"How To Write Semantic HTML"))}u.isMDXComponent=!0},757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Forms and validations"))}s.isMDXComponent=!0},1881:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Conventions and best practices"))}s.isMDXComponent=!0},3699:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Accessibility"))}s.isMDXComponent=!0},584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basics of SEO"))}s.isMDXComponent=!0},3913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for Hyper Text 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=pQN-pnXPaVg",mdxType:"BadgeLink"},"HTML Full Course - Build a Website Tutorial"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qz0aGYrrlhU",mdxType:"BadgeLink"},"HTML Tutorial for Beginners: HTML Crash Course"))}u.isMDXComponent=!0},8533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Basics"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools \u2014 Learn CSS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/learn/responsive-web-design/",mdxType:"BadgeLink"},"freeCodeCamp \u2014 Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learn.shayhowe.com/html-css/building-your-first-web-page/",mdxType:"BadgeLink"},"Learn to Code HTML & CSS"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=yfoY53QXEnI",mdxType:"BadgeLink"},"CSS Crash Course For Absolute Beginners"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=D-h8L5hgW-w",mdxType:"BadgeLink"},"HTML and CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=FqmB-Zj2-PA",mdxType:"BadgeLink"},"CSS Masterclass - Tutorial & Course for Beginners"))}u.isMDXComponent=!0},3780:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Making layouts"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://flexboxfroggy.com/",mdxType:"BadgeLink"},"Learn and Practice Flexbox"))}u.isMDXComponent=!0},1118:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Responsive Design"))}s.isMDXComponent=!0},5211:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools \u2014 Learn CSS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/learn/responsive-web-design/",mdxType:"BadgeLink"},"freeCodeCamp \u2014 Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learn.shayhowe.com/html-css/building-your-first-web-page/",mdxType:"BadgeLink"},"Learn to Code HTML & CSS"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=yfoY53QXEnI",mdxType:"BadgeLink"},"CSS Crash Course For Absolute Beginners"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=D-h8L5hgW-w",mdxType:"BadgeLink"},"HTML and CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=FqmB-Zj2-PA",mdxType:"BadgeLink"},"CSS Masterclass - Tutorial & Course for Beginners"))}u.isMDXComponent=!0},617:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Syntax and basic constructs"))}s.isMDXComponent=!0},1569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Learn dom manipulation"))}s.isMDXComponent=!0},4746:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Learn fetch api ajax xhr"))}s.isMDXComponent=!0},6401:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Es6 and modular javascript"))}s.isMDXComponent=!0},2698:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Concepts"))}s.isMDXComponent=!0},8613:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a,s=(a="BadgeLink",function(e){return console.warn("Component "+a+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},e))}),i={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},i,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"JavaScript"),(0,r.kt)("p",null,"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."),(0,r.kt)(s,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(s,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))}l.isMDXComponent=!0},2555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a,s=(a="BadgeLink",function(e){return console.warn("Component "+a+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},e))}),i={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},i,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Git"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://git-scm.com/"}),"Git")," is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"))}l.isMDXComponent=!0},8405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a,s=(a="BadgeLink",function(e){return console.warn("Component "+a+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},e))}),i={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},i,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Version Control Systems"),(0,r.kt)("p",null,"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 \u2013 if you\u2019ve 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."),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(s,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"))}l.isMDXComponent=!0},8548:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Github"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com"}),"GitHub")," 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."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",href:"https://docs.github.com/en/get-started/quickstart/hello-world",mdxType:"BadgeLink"},"GitHub: Quickstart"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=w3jLJU7DT5E",mdxType:"BadgeLink"},"What is GitHub?"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=wpISo9TNjfU",mdxType:"BadgeLink"},"Git vs. GitHub: What's the difference?"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=RGOj5yH7evk",mdxType:"BadgeLink"},"Git and GitHub for Beginners"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"yellow",href:"https://www.youtube.com/watch?v=eulnSXkhE7I",mdxType:"BadgeLink"},"Git and GitHub - CS50 Beyond 2019"))}u.isMDXComponent=!0},1952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gitlab"))}s.isMDXComponent=!0},6145:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bitbucket"))}s.isMDXComponent=!0},493:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo hosting services"))}s.isMDXComponent=!0},2510:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Https"))}s.isMDXComponent=!0},9377:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Content security policy"))}s.isMDXComponent=!0},8705:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cors"))}s.isMDXComponent=!0},8633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Owasp security risks"))}s.isMDXComponent=!0},9012:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web security knowledge"))}s.isMDXComponent=!0},1415:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Npm"))}s.isMDXComponent=!0},6356:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Yarn"))}s.isMDXComponent=!0},8988:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Package managers"))}s.isMDXComponent=!0},6665:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"BEM"),(0,r.kt)("p",null,"The Block, Element, Modifier methodology (commonly referred to as BEM) is a popular naming convention for classes in HTML and CSS. Developed by the team at Yandex, its goal is to help developers better understand the relationship between the HTML and CSS in a given project."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://en.bem.info",mdxType:"BadgeLink"},"BEM Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://en.bem.info/methodology/quick-start",mdxType:"BadgeLink"},"BEM Documentation"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://css-tricks.com/bem-101",mdxType:"BadgeLink"},"BEM 101"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://en.bem.info/tutorials/",mdxType:"BadgeLink"},"BEM Tutorials"))}u.isMDXComponent=!0},1750:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OOCSS"),(0,r.kt)("p",null,"As with any object-based coding method, the purpose of OOCSS or Object Oriented CSS is to encourage code reuse and, ultimately, faster and more efficient stylesheets that are easier to add to and maintain."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://oocss.org/",mdxType:"BadgeLink"},"OOCSS Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2011/12/an-introduction-to-object-oriented-css-oocss/",mdxType:"BadgeLink"},"Introduction to Object Oriented CSS"))}u.isMDXComponent=!0},8887:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Smacss"))}s.isMDXComponent=!0},5220:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css architecture"))}s.isMDXComponent=!0},4447:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Sass"))}s.isMDXComponent=!0},5106:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Postcss"))}s.isMDXComponent=!0},2972:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Less"))}s.isMDXComponent=!0},8365:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css preprocessors"))}s.isMDXComponent=!0},6523:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Npm scripts"))}s.isMDXComponent=!0},8664:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Task runners"))}s.isMDXComponent=!0},6795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Webpack"))}s.isMDXComponent=!0},9500:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Esbuild"))}s.isMDXComponent=!0},5629:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rollup"))}s.isMDXComponent=!0},5648:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Parcel"))}s.isMDXComponent=!0},762:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vite"))}s.isMDXComponent=!0},6459:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Module bundlers"))}s.isMDXComponent=!0},840:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Prettier"))}s.isMDXComponent=!0},2816:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eslint"))}s.isMDXComponent=!0},4453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Standardjs"))}s.isMDXComponent=!0},2310:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Linters formatters"))}s.isMDXComponent=!0},7093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Build tools"))}s.isMDXComponent=!0},7139:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Redux"))}s.isMDXComponent=!0},5783:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Mobx"))}s.isMDXComponent=!0},7810:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Recoil"))}s.isMDXComponent=!0},6199:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React"),(0,r.kt)("p",null,"React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://reactjs.org/",mdxType:"BadgeLink"},"React Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://reactjs.org/tutorial/tutorial.html",mdxType:"BadgeLink"},"Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://egghead.io/courses/the-beginner-s-guide-to-react",mdxType:"BadgeLink"},"The Beginner's Guide to React"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=nTeuhbP7wdE",mdxType:"BadgeLink"},"React JS Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=i793Qm6kv3U",mdxType:"BadgeLink"},"Understanding React's UI Rendering Process"))}u.isMDXComponent=!0},5685:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rxjs"))}s.isMDXComponent=!0},3162:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ngrx"))}s.isMDXComponent=!0},3666:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Angular"))}s.isMDXComponent=!0},549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuex"))}s.isMDXComponent=!0},5277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue js"))}s.isMDXComponent=!0},1473:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Pick a framework"))}s.isMDXComponent=!0},3745:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled components"))}s.isMDXComponent=!0},1720:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css modules"))}s.isMDXComponent=!0},4349:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled jsx"))}s.isMDXComponent=!0},4291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Emotion"))}s.isMDXComponent=!0},9904:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Modern css"))}s.isMDXComponent=!0},1484:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Html templates"))}s.isMDXComponent=!0},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Custom elements"))}s.isMDXComponent=!0},2901:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Shadow dom"))}s.isMDXComponent=!0},8933:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web components"))}s.isMDXComponent=!0},4642:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bootstrap"))}s.isMDXComponent=!0},4505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bulma"))}s.isMDXComponent=!0},4740:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css first"))}s.isMDXComponent=!0},1160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Tailwind CSS"),(0,r.kt)("p",null,"CSS Framework that provides atomic CSS classes to help you style components e.g. ",(0,r.kt)("inlineCode",{parentName:"p"},"flex"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"pt-4"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"text-center")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"rotate-90")," that can be composed to build any design, directly in your markup."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://tailwindcss.com",mdxType:"BadgeLink"},"Tailwind Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"YouTube Channel",href:"https://www.youtube.com/c/TailwindLabs/videos",mdxType:"BadgeLink"},"Official Screencasts"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Watch",href:"https://www.youtube.com/watch?v=hdGsFpZ0J2E",mdxType:"BadgeLink"},"Should You Use Tailwind CSS?"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.codemag.com/Article/2105091/Tailwind-CSS-An-Introduction",mdxType:"BadgeLink"},"Tailwind CSS: An Introduction"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=UBOj6rqRUME",mdxType:"BadgeLink"},"Tailwind CSS Crash Course"))}u.isMDXComponent=!0},6937:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Chakra ui"))}s.isMDXComponent=!0},9120:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Material ui"))}s.isMDXComponent=!0},3694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Radix ui"))}s.isMDXComponent=!0},7562:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Js first"))}s.isMDXComponent=!0},1879:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Css frameworks"))}s.isMDXComponent=!0},5996:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jest"))}s.isMDXComponent=!0},2772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React testing library"))}s.isMDXComponent=!0},3431:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cypress"))}s.isMDXComponent=!0},4375:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Enzyme"))}s.isMDXComponent=!0},4946:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Other options"))}s.isMDXComponent=!0},5770:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing your apps"))}s.isMDXComponent=!0},3227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Typescript"))}s.isMDXComponent=!0},9935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flow"))}s.isMDXComponent=!0},8323:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Type checkers"))}s.isMDXComponent=!0},4990:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apis"))}s.isMDXComponent=!0},5089:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Performance"))}s.isMDXComponent=!0},2768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Progressive web apps"))}s.isMDXComponent=!0},9086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next js"))}s.isMDXComponent=!0},4930:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"After js"))}s.isMDXComponent=!0},8747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React js"))}s.isMDXComponent=!0},7815:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Universal"))}s.isMDXComponent=!0},6394:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Angular"))}s.isMDXComponent=!0},2573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"))}s.isMDXComponent=!0},5137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue js"))}s.isMDXComponent=!0},1905:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Server side rendering"))}s.isMDXComponent=!0},410:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apollo"))}s.isMDXComponent=!0},485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relay modern"))}s.isMDXComponent=!0},4133:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Graphql"))}s.isMDXComponent=!0},7935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next js"))}s.isMDXComponent=!0},1291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gatsbyjs"))}s.isMDXComponent=!0},855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"))}s.isMDXComponent=!0},2374:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuepress"))}s.isMDXComponent=!0},1898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jekyll"))}s.isMDXComponent=!0},355:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hugo"))}s.isMDXComponent=!0},2578:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Gridsome"))}s.isMDXComponent=!0},476:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eleventy"))}s.isMDXComponent=!0},5470:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Static site generators"))}s.isMDXComponent=!0},2919:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React native"))}s.isMDXComponent=!0},5760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nativescript"))}s.isMDXComponent=!0},9268:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=function(e){return function(t){return console.warn("Component "+e+" was not imported, exported, or provided by MDXProvider as global scope"),(0,r.kt)("div",Object.assign({},t))}},s=a("ResourceGroupTitle"),i=a("BadgeLink"),l={};function u(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flutter"),(0,r.kt)("p",null,"Flutter is a free and open-source mobile UI framework created by Google and released in May 2017. In a few words, it allows you to create a native mobile application with only one codebase. This means that you can use one programming language and one codebase to create two different apps (for iOS and Android)."),(0,r.kt)("p",null,"Flutter consists of two important parts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"An SDK (Software Development Kit): A collection of tools that are going to help you develop your applications. This includes tools to compile your code into native machine code (code for iOS and Android)."),(0,r.kt)("li",{parentName:"ul"},"A Framework (UI Library based on widgets): A collection of reusable UI elements (buttons, text inputs, sliders, and so on) that you can personalize for your own needs.\nTo develop with Flutter, you will use a programming language called Dart. The language was created by Google in October 2011, but it has improved a lot over these past years.")),(0,r.kt)("p",null,"Dart focuses on front-end development, and you can use it to create mobile and web applications."),(0,r.kt)("p",null,"If you know a bit of programming, Dart is a typed object programming language. You can compare Dart's syntax to JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://flutter.dev",mdxType:"BadgeLink"},"Flutter Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3adda.com/flutter-tutorial",mdxType:"BadgeLink"},"Flutter Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=1ukSR1GRtMU&list=PL4cUxeGkcC9jLYyp2Aoh6hcWuxFDX6PBJ",mdxType:"BadgeLink"},"Flutter Tutorial for Beginners"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3adda.com/flutter-tutorial",mdxType:"BadgeLink"},"Flutter Tutorial"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.tutorialspoint.com/dart_programming/index.htm",mdxType:"BadgeLink"},"Learn Dart Programming"))}u.isMDXComponent=!0},7280:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ionic"))}s.isMDXComponent=!0},388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Mobile applications"))}s.isMDXComponent=!0},7137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Electron"))}s.isMDXComponent=!0},373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Carlo"))}s.isMDXComponent=!0},5588:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Proton native"))}s.isMDXComponent=!0},8773:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Desktop applications"))}s.isMDXComponent=!0},9429:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web assembly"))}s.isMDXComponent=!0},7086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null))}s.isMDXComponent=!0},7083:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("br",null),(0,r.kt)("p",null,"The resources have been moved to the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"interactive frontend roadmap")," \u2014 try clicking any nodes!"))}s.isMDXComponent=!0},8093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},5332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},4558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the React ecosystem and to help guide your learning if you are confused. We have another ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"roadmap on the Frontend Development")," that focuses on the frontend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("img",Object.assign({parentName:"p"},{src:"/roadmaps/react.png",alt:null}))),(0,r.kt)("p",null,"Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the picture if suitable."))}s.isMDXComponent=!0},63:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},595:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Angular ecosystem and to help guide your learning if you are confused. We have another ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"roadmap on the Frontend Development")," that focuses on the frontend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("img",Object.assign({parentName:"p"},{src:"/roadmaps/angular.png",alt:null}))),(0,r.kt)("p",null,"Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the picture if suitable."))}s.isMDXComponent=!0},7489:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},5191:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Android development landscape and to help guide your learning if you are confused. Before we start, please note that the roadmap is opinionated, and you might have different opinions than those of the author. Having said that, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap/issues/new"}),"we would love to hear your opinions")," and incorporate them in the roadmap if suitable."),(0,r.kt)("p",null,"There are multiple ways to develop applications for the android; you can go down the path of hybrid application development where ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://flutter.dev/"}),"flutter"),", ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://reactnative.dev/"}),"react-native"),", or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://www.nativescript.org/"}),"NativeScript")," are the most common contenders. Flutter uses Dart, whereas React Native and Native Script rely on JavaScript. Answering the question of hybrid vs native is out of the scope of this roadmap. This roadmap is focused on the native Android apps development but if you are interested in learning any hybrid framework, my personal preference is ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://reactnative.dev"}),"react-native")," and I would recommend you to checkout the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/frontend"}),"Frontend Developer Roadmap"),"."),(0,r.kt)("h2",null,"Complete Roadmap"),(0,r.kt)("p",null,"Here is the full version of the roadmap in a single image and after that we have the broken down version with the resources and links to learn more about each of the boxes."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/roadmap.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/roadmap.svg",alt:null})))),(0,r.kt)("h2",null,"Broken Down Version"),(0,r.kt)("p",null,"Below is the broken down version of the roadmap with links and resources to learn more about each of the items listed in the complete roadmap above."),(0,r.kt)("h2",null,"Pick a Language"),(0,r.kt)("p",null,"For the languages, you can develop android apps either by using Kotlin or Java."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/pick-language.svg"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/pick-language.svg",alt:null})))),(0,r.kt)("p",null,"Although, you can use both ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://en.wikipedia.org/wiki/Kotlin_(programming_language)"}),"Kotlin")," and ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://en.wikipedia.org/wiki/Java_(programming_language)"}),"Java")," to develop native android apps, ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://android-developers.googleblog.com/2019/05/google-io-2019-empowering-developers-to-build-experiences-on-Android-Play.html"}),"Google announced in 2019")," to make Kotlin the preferred way of developing android applications. If you were to start learning android development today, Kotlin should be your language of choice."),(0,r.kt)("h2",null,"The Fundamentals"),(0,r.kt)("p",null,"Install the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://developer.android.com/studio"}),"Android Studio")," and learn the basics of Kotlin to get started. "),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/the-fundamentals.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/the-fundamentals.png",alt:null})))),(0,r.kt)("p",null,"We have also listed down some free resources which you can use for the items listed in the image above. If you have some better ones, please do suggest. Also, you don't need to go through all of them, just go through them and pick what you like."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://blog.teamtreehouse.com/absolute-beginners-guide-kotlin"}),"Learn the basics of Kotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/reference/basic-syntax.html"}),"Kotlin Docs")," and ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/tutorials/"}),"Official Kotlin Tutorials")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.studytonight.com/data-structures/introduction-to-data-structures"}),"Data Structures and Algorithms"),". Also ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.tutorialspoint.com/data_structures_algorithms/index.htm"}),"check this"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://kotlinlang.org/docs/reference/collections-overview.html"}),"Kotlin DataStructures")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/bmaslakov/kotlin-algorithm-club"}),"Algorithms and DataStructures in Kotlin"))),(0,r.kt)("h2",null,"Version Control Systems"),(0,r.kt)("p",null,"Version control systems record your changes to the codebase and allow you to recall specific versions later. There are multiple Version Control Systems available but ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://git-scm.com/"}),"Git")," is the most common one these days."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/git-github.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/git-github.png",alt:null})))),(0,r.kt)("p",null,"Here are some of the resources to get you started. Feel free to google and find something else that you find easier."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.udacity.com/course/version-control-with-git--ud123"}),"Udacity \u2014 Version Control with Git")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://guides.github.com/activities/hello-world/"}),"GitHub Hello World"))),(0,r.kt)("h2",null,"Building an Application"),(0,r.kt)("p",null,"Here is the list of items that you are going to need when developing Android applications. Please note that, this is an exhaustive list, and you don't need to know it all from the get-go. Get an idea of the items listed, and just start building some apps and keep the items listed in the back of your mind and have a deep dive when using them. "),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/android/build-an-application.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/android/build-an-application.png",alt:null})))),(0,r.kt)("p",null,"To learn more about the items listed in the image above, here are the links to the relevant docs"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/activities/intro-activities"}),"Using Activities and Activity Life Cycles")),(0,r.kt)("li",{parentName:"ul"},"Building Flexible Interfaces using ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/fragments"}),"Fragments")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/studio/debug"}),"Debugging using Android Studio Debugger")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/work/managed-configurations"}),"Handling App Configurations")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/components/intents-filters"}),"Using Intents and Intent Filters")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://guides.codepath.com/android/Using-Context"}),"Understand Context")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/training/multiple-threads"}),"Learn about Multithreading")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com/6901838-data-privacy-for-android"}),"Data Privacy")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com/5634-securing-network-data-tutorial-for-android"}),"Securing Network Data")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/training/dependency-injection"}),"Dependency Injection")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/topics/providers/content-providers"}),"Content Providers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/bumptech/glide"}),"Glide"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://square.github.io/retrofit/"}),"Retrofit"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://firebase.google.com/docs/crashlytics/get-started"}),"Crashlytics"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/google/gson"}),"GSON")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/room"}),"Room"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide/navigation/navigation-getting-started"}),"Navigation"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/workmanager"}),"Work Manager"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/architecture/livedata"}),"LiveData"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/libraries/data-binding"}),"Data Binding")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/ReactiveX/RxJava"}),"RxJava"),", ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://github.com/ReactiveX/RxKotlin"}),"RxKotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/topic/performance/memory-overview"}),"Memory Management Overview")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://proandroiddev.com/diving-deeper-into-context-oriented-programming-in-kotlin-3ecb4ec38814"}),"Diving deeper into context-oriented programming in Kotlin")," ")),(0,r.kt)("p",null,"I would highly recommend watching ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"}),"this free course")," from google on Developing Android Apps with Kotlin. Also, here are some of the resources to learn more about the topics listed above."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"}),"Developing Android Apps with Kotlin")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://developer.android.com/guide"}),"Android Developer Guides")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.raywenderlich.com"}),"Raywenderlich"))),(0,r.kt)("h2",null,"Wrap Up"),(0,r.kt)("p",null,"That wraps it up for the android developer roadmap. Again, remember to not be exhausted by the list; just learn the basics and start working on some project, rest of the learnings will come along the way. Good luck!"),(0,r.kt)("p",null,"For any suggestions, improvements and feedback, feel free to ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/developer-roadmap"}),"submit an issue")," or reach out to me on twitter ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://twitter.com/kamranahmedse"}),"@kamranahmedse"),"."),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null))}s.isMDXComponent=!0},7890:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},9556:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Python ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/python.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/python.png",alt:null})))))}s.isMDXComponent=!0},8481:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},2388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Go ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/golang.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/golang.png",alt:null})))))}s.isMDXComponent=!0},9101:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},7913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the Java ecosystem and to help guide your learning if you are confused. We have another roadmap on the ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/backend"}),"Backend Development")," that focuses on the backend development if you are interested in that."),(0,r.kt)("p",null,"Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things."),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps/java.png"}),(0,r.kt)("img",Object.assign({parentName:"a"},{src:"/roadmaps/java.png",alt:null})))))}s.isMDXComponent=!0},9673:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},1464:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The intent of this guide is to give you an idea about the DBA landscape and to help guide your learning if you are confused. The roadmap is highly opinionated \u2014 neither, knowing everything listed in the roadmap, nor the order of items given in the roadmap is required to be followed in order to be a DBA."),(0,r.kt)("h2",null,"Learn basic RDBMS terms and concepts"),(0,r.kt)("p",null,"Get basic understanding of Postgres key terms and basic RDBMS concepts."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Object model"),": data types, columns, rows, tables, schemas, databases, queries."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Relational model"),": domains, attributes, tuples, relations, constraints, NULL."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Databases high-level concepts"),": ACID, MVCC, transactions, write-ahead log, query processing."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/13/glossary.html"}),"Postgres Glossary")," "),(0,r.kt)("li",{parentName:"ul"},"SQL and Relational Theory - Christopher J. Date, 2009"),(0,r.kt)("li",{parentName:"ul"},"Database Design and Relational Theory - Christopher J. Date, 2012")))),(0,r.kt)("h2",null,"Learn how to install and run PostgreSQL"),(0,r.kt)("p",null,"Get practical skills of how to set up and run Postgres to get a working environment for further learning."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Using package managers (APT, YUM, etc.)"),(0,r.kt)("li",{parentName:"ul"},"Using ",(0,r.kt)("inlineCode",{parentName:"li"},"docker"),"."),(0,r.kt)("li",{parentName:"ul"},"Managing Postgres service using ",(0,r.kt)("inlineCode",{parentName:"li"},"systemd")," (start, stop, restart, reload)."),(0,r.kt)("li",{parentName:"ul"},"Managing Postgres service using ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_ctl"),", or OS-specific tools (like ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_ctlcluster"),")."),(0,r.kt)("li",{parentName:"ul"},"Connect to Postgres using ",(0,r.kt)("inlineCode",{parentName:"li"},"psql"),"."),(0,r.kt)("li",{parentName:"ul"},"Deploy database service in cloud environment (AWS, GCE, Azure, Heroku, DigitalOcean, etc...)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/download/"}),"Official download and install instructions")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://hub.docker.com/_/postgres"}),"Official Docker images")," ")))),(0,r.kt)("h2",null,"Learn SQL concepts"),(0,r.kt)("p",null,"Get practical skills of how to create and manipulate database objects and how to execute queries using ",(0,r.kt)("inlineCode",{parentName:"p"},"psql")," client."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Understand basic data types."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"DML queries"),": querying data, modifying data, filtering data, joining tables.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced topics"),": transactions, CTE, subqueries, lateral join, grouping, set operations."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"DDL queries"),": managing tables and schemas (create, alter, drop)."),(0,r.kt)("li",{parentName:"ul"},"Import and export data using ",(0,r.kt)("inlineCode",{parentName:"li"},"COPY"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.db-fiddle.com/"}),"DB Fiddle")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresqltutorial.com/"}),"PostgreSQL Tutorial")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/tutorial-sql.html"}),"PostgreSQL SQL Getting Started")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql.html"}),"The SQL Language"))))),(0,r.kt)("h2",null,"Learn how to configure Postgres"),(0,r.kt)("p",null,"Get understanding of the main aspects of how Postgres could be configured. Deep understanding of Postgres internals is not yet necessary here."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"postgresql.conf:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Resources usage"),(0,r.kt)("li",{parentName:"ul"},"Write-ahead Log"),(0,r.kt)("li",{parentName:"ul"},"Checkpoints and Background Writer"),(0,r.kt)("li",{parentName:"ul"},"Cost-based vacuum and auto-vacuum"),(0,r.kt)("li",{parentName:"ul"},"Replication"),(0,r.kt)("li",{parentName:"ul"},"Query planner"),(0,r.kt)("li",{parentName:"ul"},"Reporting, logging and statistics"),(0,r.kt)("li",{parentName:"ul"},"Adding extra extensions"),(0,r.kt)("li",{parentName:"ul"},"...keep exploring other configuration options"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://postgresqlco.nf/"}),"Postgresqlco.nf")," ")))),(0,r.kt)("h2",null,"Learn Postgres security concepts"),(0,r.kt)("p",null,"Get understanding about basic security concepts and common ways of how to deploy secure configurations."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Authentication models, roles, pg_hba.conf, SSL settings."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Objects privileges"),": grant/revoke, default privileges."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced topics")," - row-level security, selinux."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/client-authentication.html"}),"Client authentication")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/user-manag.html"}),"Roles and users managements"))))),(0,r.kt)("h2",null,"Develop infrastructure DBA skills"),(0,r.kt)("p",null,"Get practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Replication"),": streaming replication, logical replication"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Backup/recovery tools"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Built-in: ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_dump"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_dumpall"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_restore"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_basebackup")),(0,r.kt)("li",{parentName:"ul"},"3rd-party: ",(0,r.kt)("inlineCode",{parentName:"li"},"barman"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pgbackrest"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_probackup"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"WAL-G")),(0,r.kt)("li",{parentName:"ul"},"Backup validation procedures"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Upgrading procedures"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Minor and major upgrades using ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_upgrade")),(0,r.kt)("li",{parentName:"ul"},"Upgrades using logical replication"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Connection pooling"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Pgbouncer")),(0,r.kt)("li",{parentName:"ul"},"Alternatives: ",(0,r.kt)("inlineCode",{parentName:"li"},"Pgpool-II"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Odyssey"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Pgagroal")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Infrastructure monitoring"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Prometheus"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Zabbix"),", other favourite monitoring solution"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"High availability and cluster management tools"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Patroni")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Alternatives"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Repmgr"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Stolon"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"pg_auto_failover"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"PAF")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Applications Load Balancing and Service Discovery"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Haproxy"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Keepalived"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Consul"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Etcd")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Deploy Postgres on ",(0,r.kt)("inlineCode",{parentName:"strong"},"Kubernetes")),": Simple ",(0,r.kt)("inlineCode",{parentName:"li"},"StatefulSet")," setup, ",(0,r.kt)("inlineCode",{parentName:"li"},"HELM"),", operators"),(0,r.kt)("li",{parentName:"ul"},"Resource usage and provisioning, capacity planning")),(0,r.kt)("h2",null,"Learn how to automate routines"),(0,r.kt)("p",null,"Get practical skills, learn automation tools and automate existing routine tasks."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Automation using shell scripts or any other favourite language (",(0,r.kt)("inlineCode",{parentName:"li"},"Bash"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Python"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Perl"),", etc)"),(0,r.kt)("li",{parentName:"ul"},"Configuration management: ",(0,r.kt)("inlineCode",{parentName:"li"},"Ansible"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Salt"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Chef"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Puppet"))),(0,r.kt)("h2",null,"Develop application DBA skills"),(0,r.kt)("p",null,"Learn theory and get practical skills of how applications should work with Postgres"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Migrations"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"practical patterns and antipatterns"),(0,r.kt)("li",{parentName:"ul"},"tools: ",(0,r.kt)("inlineCode",{parentName:"li"},"liquibase"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"sqitch"),", language-specific tools"))),(0,r.kt)("li",{parentName:"ul"},"Data import/export, bulk loading and processing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Queues"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"practical patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Skytools PGQ")))),(0,r.kt)("li",{parentName:"ul"},"Data partitioning and sharding patterns."),(0,r.kt)("li",{parentName:"ul"},"Database normalization and normal forms."),(0,r.kt)("li",{parentName:"ul"},"Books:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"The Art of PostgreSQL - Dimitri Fontaine, 2020")))),(0,r.kt)("h2",null,"Learn Postgres advanced topics"),(0,r.kt)("p",null,"Here is important to continuously extend and develop existing knowledge about Postgres."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Low level internals"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Processes and memory architecture"),(0,r.kt)("li",{parentName:"ul"},"Vacuum processing"),(0,r.kt)("li",{parentName:"ul"},"Buffer management"),(0,r.kt)("li",{parentName:"ul"},"Lock management"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/storage.html"}),"Physical storage and file layout")," "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/catalogs.html"}),"System catalog")," "))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Fine-grained tuning"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Per-user, per-database settings"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS"}),"Storage parameters")," "),(0,r.kt)("li",{parentName:"ul"},"Workload-dependant tuning: OLTP, OLAP, HTAP"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Advanced SQL topics"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"PL/pgSQL, procedures and functions, triggers"),(0,r.kt)("li",{parentName:"ul"},"Aggregate and window functions"),(0,r.kt)("li",{parentName:"ul"},"Recursive CTE"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.interdb.jp/pg/index.html"}),"The Internals of PostgreSQL")," for database administrators and system developers"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/plpgsql.html"}),"PL/pgSQL Guide"))))),(0,r.kt)("h2",null,"Learn Postgres troubleshooting techniques"),(0,r.kt)("p",null,"Get basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Operating system tools"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"top")," (",(0,r.kt)("inlineCode",{parentName:"li"},"htop"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"atop"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sysstat")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"iotop")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres system views"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pg_stat_activity")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pg_stat_statements")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres tools"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pgcenter")," - ",(0,r.kt)("em",{parentName:"li"},"personal recommendation")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Query analyzing"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/docs/current/sql-explain.html"}),"EXPLAIN")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://explain.depesz.com/"}),"Depesz")," online EXPLAIN visualization tool"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://tatiyants.com/pev/#/plans"}),"PEV")," online EXPLAIN visualization tool"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://explain.tensor.ru/"}),"Tensor")," online EXPLAIN visualization tool, RU language only"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Log analyzing"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pgBadger")),(0,r.kt)("li",{parentName:"ul"},"Ad-hoc analyzing using ",(0,r.kt)("inlineCode",{parentName:"li"},"grep"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"awk"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"sed"),", etc."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"External tracing/profiling tools"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"gdb"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"strace"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"perf-tools"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"ebpf"),", core dumps"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Troubleshooting methods"),": USE, RED, Golden signals"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.brendangregg.com/linuxperf.html"}),"Linux Performance")," by Brendan Gregg"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"http://www.brendangregg.com/usemethod.html"}),"USE Method"))))),(0,r.kt)("h2",null,"Learn SQL optimization technics"),(0,r.kt)("p",null,"Get understanding and practical skills of how to optimize SQL queries."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Indexes, and their use cases"),": B-tree, Hash, GiST, SP-GiST, GIN, BRIN"),(0,r.kt)("li",{parentName:"ul"},"SQL queries patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},"SQL schema design patterns and anti-patterns"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Links"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://use-the-index-luke.com/"}),"Use the Index, Luke")," - a Guide to Database Performance for Developers"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Books"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010 ")))),(0,r.kt)("h2",null,"Develop architect skills"),(0,r.kt)("p",null,"Get deeper understanding of Postgres use cases and where Postgres is suitable and where is not."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Postgres forks and extensions"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Greenplum"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Timescaledb"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Citus"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"Postgres-XL"),", etc."),(0,r.kt)("li",{parentName:"ul"},"RDBMS in general, benefits and limitations"),(0,r.kt)("li",{parentName:"ul"},"Differences between Postgres and other RDBMS and NoSQL databases")),(0,r.kt)("h2",null,"Develop Postgres hacker skills"),(0,r.kt)("p",null,"Get involved to Postgres community and contribute to Postgres; be a useful member of Postgres, and the open source community; use personal experience to help other people."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Daily reading and answering in ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://www.postgresql.org/list/"}),"mailing lists"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"pgsql-general"),(0,r.kt)("li",{parentName:"ul"},"pgsql-admin"),(0,r.kt)("li",{parentName:"ul"},"pgsql-performance"),(0,r.kt)("li",{parentName:"ul"},"pgsql-hackers"),(0,r.kt)("li",{parentName:"ul"},"pgsql-bugs"))),(0,r.kt)("li",{parentName:"ul"},"Reviewing patches"),(0,r.kt)("li",{parentName:"ul"},"Writing patches, attending in ",(0,r.kt)("a",Object.assign({parentName:"li"},{href:"https://commitfest.postgresql.org/"}),"Commitfests"))),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("br",null))}s.isMDXComponent=!0},1545:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},8188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"Roadmap is not ready yet"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the roadmap, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")," "))}s.isMDXComponent=!0},1048:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},4894:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"Roadmap is not ready yet"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the roadmap, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")," "))}s.isMDXComponent=!0},9598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(7294);var r=n(4137);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},a,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("strong",{parentName:"p"},"We are still preparing the resources"),". Please check back later or ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"subscribe to get notified"),".")),(0,r.kt)("p",null,"While we prepare the list, follow this simple advice to learn anything"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Just ",(0,r.kt)("strong",{parentName:"p"},"pick a project and start working on it"),", you will learn all that you need along the way.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u2192")," ","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/roadmaps"}),"All Roadmaps")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/guides"}),"Programming guides")," ","\xa0","\u2022","\xa0"," ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"/signup"}),"Subscribe")))}s.isMDXComponent=!0},8712:function(e){"use strict";e.exports=JSON.parse('[{"username":"kamranahmedse","name":"Kamran Ahmed","twitter":"kamranahmedse","picture":"/authors/kamranahmedse.jpeg","bio":"Lead engineer at Tajawal. Lover of all things web and opensource. Created roadmap.sh to help the confused ones."},{"username":"jesse","name":"Jesse Li","twitter":"__jesse_li","picture":"/authors/jesse.png","bio":"Software engineer."},{"username":"dmytrobol","name":"Dmytro Bolkachov","twitter":"dmytrobol","picture":"/authors/dmytrobol.png","bio":"JavaScript Lad, Movie buff and coder interested in everything web related"},{"username":"spekulatius","name":"Peter Thaleikis","twitter":"spekulatius1984","picture":"/authors/spekulatius.jpg","bio":"Developer building side-projects for fun, lover of the web and open source"},{"username":"ebrahimbharmal007","name":"Ebrahim Bharmal","twitter":"BharmalEbrahim","picture":"/authors/ebrahimbharmal007.png","bio":"Love building projects using tools completely new to me. Python forever. Senior at University of Texas at Arlington (2021)"},{"username":"lesovsky","name":"Alexey Lesovsky","bio":"Linux system administrator and PostgreSQL DBA at DataEgret.","picture":"/authors/lesovsky.jpeg"}]')},9552:function(e){"use strict";e.exports=JSON.parse('[{"id":"avoid-render-blocking-javascript-with-async-defer","title":"Async and Defer Script Loading","description":"Learn how to avoid render blocking JavaScript using async and defer scripts.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-09-10T19:59:14.191Z","createdAt":"2021-09-10T19:59:14.191Z"},{"id":"what-are-web-vitals","title":"What are Web Vitals?","description":"Learn what are the core web vitals and how to measure them.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-09-05T19:59:14.191Z","createdAt":"2021-09-05T19:59:14.191Z"},{"id":"what-is-sli-slo-sla","title":"SLIs, SLOs and SLAs","description":"Learn what are different indicators for performance identification of any service.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-08-31T19:59:14.191Z","createdAt":"2021-08-31T19:59:14.191Z"},{"id":"ci-cd","title":"What is CI and CD?","description":"Learn the basics of CI/CD and how to implement that with GitHub Actions.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-07-09T19:59:14.191Z","createdAt":"2021-07-09T19:59:14.191Z"},{"id":"sso","title":"SSO \u2014 Single Sign On","description":"Learn the basics of SAML and understand how does Single Sign On work.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-07-01T19:59:14.191Z","createdAt":"2021-07-01T19:59:14.191Z"},{"id":"oauth","title":"OAuth \u2014 Open Authorization","description":"Learn and understand what is OAuth and how it works","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-28T19:59:14.191Z","createdAt":"2021-06-28T19:59:14.191Z"},{"id":"jwt-authentication","title":"JWT Authentication","description":"Understand what is JWT authentication and how is it implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-20T19:59:14.191Z","createdAt":"2021-06-20T19:59:14.191Z"},{"id":"token-authentication","title":"Token Based Authentication","description":"Understand what is token based authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-06-02T20:59:14.191Z","createdAt":"2021-06-02T20:59:14.191Z"},{"id":"session-authentication","title":"Session Based Authentication","description":"Understand what is session based authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-26T20:59:14.191Z","createdAt":"2021-05-26T20:59:14.191Z"},{"id":"basic-authentication","title":"Basic Authentication","description":"Understand what is basic authentication and how it is implemented","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-19T20:59:14.191Z","createdAt":"2021-05-19T20:59:14.191Z"},{"id":"character-encodings","title":"Character Encodings","description":"Covers the basics of character encodings and explains ASCII vs Unicode","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-14T20:59:14.191Z","createdAt":"2021-05-14T20:59:14.191Z"},{"id":"unfamiliar-codebase","title":"Unfamiliar Codebase","description":"Tips on getting getting familiar with an unfamiliar codebase","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-05-04T20:59:14.191Z","createdAt":"2021-05-04T20:59:14.191Z"},{"id":"why-build-it-and-they-will-come-wont-work-anymore","title":"Build it and they will come?","description":"Why \u201cbuild it and they will come\u201d alone won\u2019t work anymore","isPro":false,"authorUsername":"spekulatius","updatedAt":"2021-05-04T12:59:14.191Z","createdAt":"2021-05-04T12:59:14.191Z"},{"id":"dhcp-in-one-picture","title":"DHCP in One Picture","description":"Here is what happens when a new device joins the network.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-28T15:48:21.191Z","createdAt":"2021-04-28T15:48:21.191Z"},{"id":"ssl-tls-https-ssh","title":"SSL vs TLS vs SSH","description":"Quick tidbit on the differences between SSL, TLS, HTTPS and SSH","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-22T15:48:21.191Z","createdAt":"2021-04-22T15:48:21.191Z"},{"id":"asymptotic-notation","title":"Asymptotic Notation","description":"Learn the basics of measuring the time and space complexity of algorithms","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-04-03T15:48:21.191Z","createdAt":"2021-04-03T15:48:21.191Z"},{"id":"big-o-notation","title":"Big-O Notation","description":"Easy to understand explanation of Big-O notation without any fancy terms","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-03-15T15:48:21.191Z","createdAt":"2021-03-15T15:48:21.191Z"},{"id":"random-numbers","title":"Random Numbers: Are they?","description":"Learn how they are generated and why they may not be truly random.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-03-14T15:48:21.191Z","createdAt":"2021-03-14T15:48:21.191Z"},{"id":"scaling-databases","title":"Scaling Databases","description":"Learn the ups and downs of different database scaling strategies","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2021-02-18T15:48:21.191Z","createdAt":"2021-02-18T15:48:21.191Z"},{"id":"what-is-internet","title":"How does the internet work?","description":"Learn the basics of internet and everything involved with this short video series","isPro":false,"authorUsername":"dmytrobol","updatedAt":"2021-02-29T15:48:21.191Z","createdAt":"2021-02-29T15:48:21.191Z"},{"id":"torrent-client","title":"Building a BitTorrent Client","description":"Learn everything you need to know about BitTorrent by writing a client in Go","isPro":false,"authorUsername":"jesse","updatedAt":"2021-01-17T15:48:21.191Z","createdAt":"2021-01-17T15:48:21.191Z","canonical":"https://blog.jse.li/posts/torrent/"},{"id":"levels-of-seniority","title":"Levels of Seniority","description":"How to Step Up as a Junior, Mid Level or a Senior Developer?","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2020-12-03T12:13:00.860Z","createdAt":"2020-12-03T12:13:00.860Z"},{"id":"design-patterns-for-humans","title":"Design Patterns for Humans","description":"A language agnostic, ultra-simplified explanation to design patterns","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2019-10-09T12:00:00.860Z","createdAt":"2019-01-23T17:00:00.860Z"},{"id":"journey-to-http2","title":"Journey to HTTP/2","description":"The evolution of HTTP. How it all started and where we stand today","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2018-12-04T12:00:00.860Z","updatedAt":"2018-12-04T12:00:00.860Z","isDraft":true},{"id":"dns-in-one-picture","title":"DNS in One Picture","description":"Quick illustrative guide on how a website is found on the internet.","isPro":false,"authorUsername":"kamranahmedse","updatedAt":"2018-12-04T12:00:00.860Z","createdAt":"2018-12-04T17:00:00.860Z"},{"id":"http-caching","title":"HTTP Caching","description":"Everything you need to know about web caching","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2018-11-29T17:00:00.860Z","updatedAt":"2018-11-29T17:00:00.860Z"},{"id":"history-of-javascript","title":"Brief History of JavaScript","description":"How JavaScript was introduced and evolved over the years","isPro":false,"authorUsername":"kamranahmedse","createdAt":"2017-10-28T17:00:00.860Z","updatedAt":"2017-10-28T17:00:00.860Z"},{"id":"proxy-servers","title":"Proxy Servers","description":"How do proxy servers work and what are forward and reverse proxies?","isPro":false,"authorUsername":"ebrahimbharmal007","createdAt":"2017-10-24T17:00:00.860Z","updatedAt":"2017-10-24T17:00:00.860Z"}]')},1662:function(e){"use strict";e.exports=JSON.parse('[{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a frontend developer","frontend developer","frontend engineer","frontend skills","frontend development","javascript developer","frontend development skills","frontend development skills test","frontend roadmap","frontend engineer roadmap","frontend developer roadmap","become a frontend developer","frontend developer career path","javascript developer","modern javascript developer","node developer","skills for frontend development","learn frontend development","what is frontend development","frontend developer quiz","frontend developer interview questions"]},"title":"Frontend Developer","description":"Step by step guide to becoming a modern frontend developer in 2021","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2021","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"featured":true,"imageUrl":"/roadmaps/frontend.png","jsonUrl":"/project/frontend.json","resourcesPath":"/roadmaps/100-frontend/resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/frontend-roadmap","contentPathsFilePath":"/roadmaps/100-frontend/content-paths.json","id":"frontend","metaPath":"/roadmaps/100-frontend/meta.json","isUpcoming":false},{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","backend development","javascript developer","backend development skills","backend development skills test","backend engineer roadmap","backend developer roadmap","become a backend developer","backend developer career path","javascript developer","modern javascript developer","node developer","skills for backend development","learn backend development","what is backend development","backend developer quiz","backend developer interview questions"]},"title":"Backend Developer","description":"Step by step guide to becoming a modern backend developer in 2021","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2021","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/frontend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},{"seo":{"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":["guide to becoming a devops enginer","devops roadmap","sre roadmap","site reliability engineer roadmap","operations roles","become devops","devops skills","modern devops skills","devops skills test","skills for devops","learn devops","what is devops","what is sre","devops quiz","devops interview questions"]},"title":"DevOps Roadmap","description":"Step by step guide for DevOps, SRE or any other Operations Role in 2021","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2021","featured":true,"imageUrl":"/roadmaps/devops.png","jsonUrl":"/project/devops.json","resourcesPath":"/roadmaps/102-devops/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/devops-roadmap","id":"devops","metaPath":"/roadmaps/102-devops/meta.json","isUpcoming":false},{"seo":{"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":["guide to becoming a react developer","react developer roadmap","react roadmap","become react developer","react developer skills","react skills test","skills for react development","learn react development","what is react","react quiz","react interview questions"]},"title":"React Developer","description":"Everything that is there to learn about React and the ecosystem in 2021.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"landingPath":"/roadmaps/103-react/landscape.md","resourcesPath":"/roadmaps/103-react/resources.md","jsonUrl":"/project/react.json","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/react-roadmap","id":"react","metaPath":"/roadmaps/103-react/meta.json","isUpcoming":false},{"seo":{"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 2021.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"jsonUrl":"/project/angular.json","landingPath":"/roadmaps/104-angular/landscape.md","resourcesPath":"/roadmaps/104-angular/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/angular-roadmap","id":"angular","metaPath":"/roadmaps/104-angular/meta.json","isUpcoming":false},{"seo":{"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 2021","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/android.json","landingPath":"/roadmaps/105-android/landscape.md","resourcesPath":"/roadmaps/105-android/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"android","metaPath":"/roadmaps/105-android/meta.json","isUpcoming":false},{"seo":{"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 2021","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/python.json","resourcesPath":"/roadmaps/106-python/resources.md","landingPath":"/roadmaps/106-python/landscape.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/python-roadmap","versions":["latest"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"python","metaPath":"/roadmaps/106-python/meta.json","isUpcoming":false},{"seo":{"title":"Learn to become a Go 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":["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 2021","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/golang.json","landingPath":"/roadmaps/107-golang/landscape.md","resourcesPath":"/roadmaps/107-golang/resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/go-roadmap","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"golang","metaPath":"/roadmaps/107-golang/meta.json"},{"seo":{"title":"Learn to become a modern Java 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":["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 2021","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/java.json","landingPath":"/roadmaps/108-java/landscape.md","resourcesPath":"/roadmaps/108-java/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/java-roadmap","id":"java","metaPath":"/roadmaps/108-java/meta.json"},{"seo":{"title":"DBA Roadmap: Learn to become a database administrator with PostgreSQL","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":["guide to becoming a database administrator","guide to becoming a DBA","dba roadmap","db administrator roadmap","database administrator roadmap","postgresql roadmap","dba skills","db administrator skills","become dba","postgresql skills","modern dba skills","dba skills test","skills for dba","skills for database administrator","learn dba","what is dba","database administrator quiz","dba interview questions"]},"title":"PostgreSQL DBA","description":"Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2021","landingPath":"/roadmaps/109-postgresql-dba/landscape.md","resourcesPath":"/roadmaps/109-postgresql-dba/resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[],"id":"postgresql-dba","metaPath":"/roadmaps/109-postgresql-dba/meta.json","isUpcoming":false},{"seo":{"title":"AWS Roadmap: Learn to use AWS","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":["guide to aws","aws roadmap","aws skills","aws skills test","skills for aws","cloud development","what is aws","aws quiz","aws interview questions"]},"title":"AWS","description":"Everything that is there to learn about AWS and the ecosystem in 2021.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":true,"featured":true,"landingPath":"/roadmaps/110-aws/landscape.md","resourcesPath":"/roadmaps/110-aws/resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"id":"aws","metaPath":"/roadmaps/110-aws/meta.json"},{"seo":{"title":"QA Roadmap: Learn to become a modern QA engineer","description":"Community driven, articles, resources, guides, interview questions, quizzes for modern QA development. Learn to become a modern QA engineer by following the steps, skills, resources and guides listed in this roadmap.","keywords":["guide to becoming a QA engineer","QA engineer","QA skills","QA development skills","QA development skills test","QA engineer roadmap","become a QA engineer","QA engineer career path","skills for QA development","what is QA engineer","QA engineer quiz","QA engineer interview questions"]},"title":"QA Engineer","description":"Steps to follow in order to become a modern QA Engineer in 2021","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2021","isUpcoming":true,"featured":true,"landingPath":"/roadmaps/111-qa/landscape.md","resourcesPath":"/roadmaps/111-qa/resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"},"id":"qa","metaPath":"/roadmaps/111-qa/meta.json"}]')},8359:function(e){"use strict";e.exports=JSON.parse('{"home":"/roadmaps/100-frontend/content/readme.md","internet":"/roadmaps/100-frontend/content/100-internet/readme.md","internet:how-does-the-internet-work":"/roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md","internet:what-is-http":"/roadmaps/100-frontend/content/100-internet/101-what-is-http.md","internet:browsers-and-how-they-work":"/roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md","internet:dns-and-how-it-works":"/roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md","internet:what-is-domain-name":"/roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md","internet:what-is-hosting":"/roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md","html":"/roadmaps/100-frontend/content/101-html/readme.md","html:learn-the-basics":"/roadmaps/100-frontend/content/101-html/100-learn-the-basics.md","html:writing-semantic-html":"/roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md","html:forms-and-validations":"/roadmaps/100-frontend/content/101-html/102-forms-and-validations.md","html:conventions-and-best-practices":"/roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md","html:accessibility":"/roadmaps/100-frontend/content/101-html/104-accessibility.md","html:seo-basics":"/roadmaps/100-frontend/content/101-html/105-seo-basics.md","css":"/roadmaps/100-frontend/content/102-css/readme.md","css:learn-the-basics":"/roadmaps/100-frontend/content/102-css/100-learn-the-basics.md","css:making-layouts":"/roadmaps/100-frontend/content/102-css/101-making-layouts.md","css:responsive-design-and-media-queries":"/roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md","javascript":"/roadmaps/100-frontend/content/103-javascript/readme.md","javascript:syntax-and-basic-constructs":"/roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md","javascript:learn-dom-manipulation":"/roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md","javascript:learn-fetch-api-ajax-xhr":"/roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md","javascript:es6-and-modular-javascript":"/roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md","javascript:concepts":"/roadmaps/100-frontend/content/103-javascript/104-concepts.md","version-control-systems":"/roadmaps/100-frontend/content/104-version-control-systems/readme.md","version-control-systems:basic-usage-of-git":"/roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md","repo-hosting-services":"/roadmaps/100-frontend/content/105-repo-hosting-services/readme.md","repo-hosting-services:github":"/roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md","repo-hosting-services:gitlab":"/roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md","repo-hosting-services:bitbucket":"/roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md","web-security-knowledge":"/roadmaps/100-frontend/content/106-web-security-knowledge/readme.md","web-security-knowledge:cors":"/roadmaps/100-frontend/content/106-web-security-knowledge/102-cors.md","web-security-knowledge:https":"/roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md","web-security-knowledge:content-security-policy":"/roadmaps/100-frontend/content/106-web-security-knowledge/101-content-security-policy.md","web-security-knowledge:owasp-security-risks":"/roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md","package-managers":"/roadmaps/100-frontend/content/107-package-managers/readme.md","package-managers:npm":"/roadmaps/100-frontend/content/107-package-managers/100-npm.md","package-managers:yarn":"/roadmaps/100-frontend/content/107-package-managers/101-yarn.md","css-architecture":"/roadmaps/100-frontend/content/108-css-architecture/readme.md","css-architecture:bem":"/roadmaps/100-frontend/content/108-css-architecture/100-bem.md","css-architecture:oocss":"/roadmaps/100-frontend/content/108-css-architecture/101-oocss.md","css-architecture:smacss":"/roadmaps/100-frontend/content/108-css-architecture/102-smacss.md","css-preprocessors":"/roadmaps/100-frontend/content/109-css-preprocessors/readme.md","css-preprocessors:sass":"/roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md","css-preprocessors:postcss":"/roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md","css-preprocessors:less":"/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md","build-tools":"/roadmaps/100-frontend/content/110-build-tools/readme.md","build-tools:task-runners":"/roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md","build-tools:task-runners:npm-scripts":"/roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md","build-tools:linters-formatters":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md","build-tools:linters-formatters:prettier":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/100-prettier.md","build-tools:linters-formatters:eslint":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/101-eslint.md","build-tools:linters-formatters:standardjs":"/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md","build-tools:module-bundlers":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md","build-tools:module-bundlers:webpack":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md","build-tools:module-bundlers:esbuild":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md","build-tools:module-bundlers:rollup":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md","build-tools:module-bundlers:parcel":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md","build-tools:module-bundlers:vite":"/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md","pick-a-framework":"/roadmaps/100-frontend/content/111-pick-a-framework/readme.md","pick-a-framework:react-js":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md","pick-a-framework:react-js:recoil":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md","pick-a-framework:react-js:redux":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md","pick-a-framework:react-js:mobx":"/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md","pick-a-framework:angular":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md","pick-a-framework:angular:rxjs":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md","pick-a-framework:angular:ngrx":"/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md","pick-a-framework:vue-js":"/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md","pick-a-framework:vue-js:vuex":"/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md","modern-css":"/roadmaps/100-frontend/content/112-modern-css/readme.md","modern-css:styled-components":"/roadmaps/100-frontend/content/112-modern-css/100-styled-components.md","modern-css:css-modules":"/roadmaps/100-frontend/content/112-modern-css/101-css-modules.md","modern-css:styled-jsx":"/roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md","modern-css:emotion":"/roadmaps/100-frontend/content/112-modern-css/103-emotion.md","web-components":"/roadmaps/100-frontend/content/113-web-components/readme.md","web-components:html-templates":"/roadmaps/100-frontend/content/113-web-components/100-html-templates.md","web-components:custom-elements":"/roadmaps/100-frontend/content/113-web-components/101-custom-elements.md","web-components:shadow-dom":"/roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md","css-frameworks":"/roadmaps/100-frontend/content/114-css-frameworks/readme.md","css-frameworks:js-first":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md","css-frameworks:js-first:chakra-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md","css-frameworks:js-first:material-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md","css-frameworks:js-first:radix-ui":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md","css-frameworks:js-first:tailwind-css":"/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md","css-frameworks:css-first":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md","css-frameworks:css-first:bootstrap":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md","css-frameworks:css-first:bulma":"/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md","testing-your-apps":"/roadmaps/100-frontend/content/115-testing-your-apps/readme.md","testing-your-apps:jest":"/roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md","testing-your-apps:react-testing-library":"/roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md","testing-your-apps:cypress":"/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md","testing-your-apps:enzyme":"/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md","testing-your-apps:other-options":"/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md","type-checkers":"/roadmaps/100-frontend/content/116-type-checkers/readme.md","type-checkers:typescript":"/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md","type-checkers:flow":"/roadmaps/100-frontend/content/116-type-checkers/101-flow.md","progressive-web-apps":"/roadmaps/100-frontend/content/117-progressive-web-apps/readme.md","progressive-web-apps:performance":"/roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md","progressive-web-apps:apis":"/roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md","server-side-rendering":"/roadmaps/100-frontend/content/118-server-side-rendering/readme.md","server-side-rendering:react-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md","server-side-rendering:react-js:next-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md","server-side-rendering:react-js:after-js":"/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md","server-side-rendering:angular":"/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md","server-side-rendering:angular:universal":"/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md","server-side-rendering:vue-js":"/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md","server-side-rendering:vue-js:nuxt-js":"/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md","graphql":"/roadmaps/100-frontend/content/119-graphql/readme.md","graphql:apollo":"/roadmaps/100-frontend/content/119-graphql/100-apollo.md","graphql:relay-modern":"/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md","static-site-generators":"/roadmaps/100-frontend/content/120-static-site-generators/readme.md","static-site-generators:next-js":"/roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md","static-site-generators:gatsbyjs":"/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md","static-site-generators:nuxt-js":"/roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md","static-site-generators:vuepress":"/roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md","static-site-generators:jekyll":"/roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md","static-site-generators:hugo":"/roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md","static-site-generators:gridsome":"/roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md","static-site-generators:eleventy":"/roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md","mobile-applications":"/roadmaps/100-frontend/content/121-mobile-applications/readme.md","mobile-applications:react-native":"/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md","mobile-applications:nativescript":"/roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md","mobile-applications:flutter":"/roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md","mobile-applications:ionic":"/roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md","desktop-applications":"/roadmaps/100-frontend/content/122-desktop-applications/readme.md","desktop-applications:electron":"/roadmaps/100-frontend/content/122-desktop-applications/100-electron.md","desktop-applications:carlo":"/roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md","desktop-applications:proton-native":"/roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md","web-assembly":"/roadmaps/100-frontend/content/123-web-assembly.md"}')},9258:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a frontend developer","frontend developer","frontend engineer","frontend skills","frontend development","javascript developer","frontend development skills","frontend development skills test","frontend roadmap","frontend engineer roadmap","frontend developer roadmap","become a frontend developer","frontend developer career path","javascript developer","modern javascript developer","node developer","skills for frontend development","learn frontend development","what is frontend development","frontend developer quiz","frontend developer interview questions"]},"title":"Frontend Developer","description":"Step by step guide to becoming a modern frontend developer in 2021","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2021","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"featured":true,"imageUrl":"/roadmaps/frontend.png","jsonUrl":"/project/frontend.json","resourcesPath":"./resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/frontend-roadmap","contentPathsFilePath":"./content-paths.json"}')},6782:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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.","keywords":["guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","backend development","javascript developer","backend development skills","backend development skills test","backend engineer roadmap","backend developer roadmap","become a backend developer","backend developer career path","javascript developer","modern javascript developer","node developer","skills for backend development","learn backend development","what is backend development","backend developer quiz","backend developer interview questions"]},"title":"Backend Developer","description":"Step by step guide to becoming a modern backend developer in 2021","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2021","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/frontend.json","resourcesPath":"./resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap"}')},4017:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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":["guide to becoming a devops enginer","devops roadmap","sre roadmap","site reliability engineer roadmap","operations roles","become devops","devops skills","modern devops skills","devops skills test","skills for devops","learn devops","what is devops","what is sre","devops quiz","devops interview questions"]},"title":"DevOps Roadmap","description":"Step by step guide for DevOps, SRE or any other Operations Role in 2021","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2021","featured":true,"imageUrl":"/roadmaps/devops.png","jsonUrl":"/project/devops.json","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/devops-roadmap"}')},8477:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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":["guide to becoming a react developer","react developer roadmap","react roadmap","become react developer","react developer skills","react skills test","skills for react development","learn react development","what is react","react quiz","react interview questions"]},"title":"React Developer","description":"Everything that is there to learn about React and the ecosystem in 2021.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","jsonUrl":"/project/react.json","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/react-roadmap"}')},8834:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2021","isTextHeavy":false,"isCommunity":false,"featured":true,"jsonUrl":"/project/angular.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/angular-roadmap"}')},9508:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/android.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},4099:function(e){"use strict";e.exports=JSON.parse('{"seo":{"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 2021","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2021","isTextHeavy":true,"isCommunity":false,"featured":true,"jsonUrl":"/project/python.json","resourcesPath":"./resources.md","landingPath":"./landscape.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/python-roadmap","versions":["latest"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},2737:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Learn to become a Go 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":["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 2021","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/golang.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","pdfUrl":"https://kamranahmedse.gumroad.com/l/go-roadmap","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},2507:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Learn to become a modern Java 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":["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 2021","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":false,"featured":true,"jsonUrl":"/project/java.json","landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/java-roadmap"}')},8951:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"DBA Roadmap: Learn to become a database administrator with PostgreSQL","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":["guide to becoming a database administrator","guide to becoming a DBA","dba roadmap","db administrator roadmap","database administrator roadmap","postgresql roadmap","dba skills","db administrator skills","become dba","postgresql skills","modern dba skills","dba skills test","skills for dba","skills for database administrator","learn dba","what is dba","database administrator quiz","dba interview questions"]},"title":"PostgreSQL DBA","description":"Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2021","landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[]}')},7559:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"AWS Roadmap: Learn to use AWS","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":["guide to aws","aws roadmap","aws skills","aws skills test","skills for aws","cloud development","what is aws","aws quiz","aws interview questions"]},"title":"AWS","description":"Everything that is there to learn about AWS and the ecosystem in 2021.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2021","isTextHeavy":false,"isCommunity":false,"isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","versions":["latest","2018","2017"],"author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"}}')},3204:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"QA Roadmap: Learn to become a modern QA engineer","description":"Community driven, articles, resources, guides, interview questions, quizzes for modern QA development. Learn to become a modern QA engineer by following the steps, skills, resources and guides listed in this roadmap.","keywords":["guide to becoming a QA engineer","QA engineer","QA skills","QA development skills","QA development skills test","QA engineer roadmap","become a QA engineer","QA engineer career path","skills for QA development","what is QA engineer","QA engineer quiz","QA engineer interview questions"]},"title":"QA Engineer","description":"Steps to follow in order to become a modern QA Engineer in 2021","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2021","isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"}}')},1797:function(e){"use strict";e.exports=JSON.parse('[{"id":"what-is-eventual-consistency","title":"What is Eventual Consistency?","description":"Learn about the different consistency models in distributed systems","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=rpqsSkTIdAw","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2021-11-30T19:59:14.191Z","createdAt":"2021-11-30T19:59:14.191Z"},{"id":"ssh-ssl-tls","title":"SSH vs TLS vs SSL","description":"Learn the difference between SSH, TLS and SSL","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=k3rFFLmQCuY","authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2021-11-25T19:59:14.191Z","createdAt":"2021-11-25T19:59:14.191Z"},{"id":"async-javascript","title":"Asynchronous JavaScript","description":"Learn how to write asynchronous JavaScript using Async/Await","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=VyIK6SV5f7o","authorUsername":"kamranahmedse","duration":"15 minutes","updatedAt":"2021-11-14T19:59:14.191Z","createdAt":"2021-11-14T19:59:14.191Z"},{"id":"random-number-generators","title":"Random Number Generators","description":"How do random number generators work?","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=nDv3yXdD0rk","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-11-03T19:59:14.191Z","createdAt":"2021-11-03T19:59:14.191Z"},{"id":"big-o-notation","title":"Big O Notation","description":"Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=Z0bH0cMY0E8","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-25T19:59:14.191Z","createdAt":"2021-10-25T19:59:14.191Z"},{"id":"yaml-in-depth","title":"YAML in Depth","description":"Everything you need to know about YAML","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=ImHSpwUlNVc","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-18T19:59:14.191Z","createdAt":"2021-10-18T19:59:14.191Z"},{"id":"floating-point-arithmetic","title":"Floating Point Arithmetic","description":"Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=RIiq4tTt6rI","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2021-10-10T19:59:14.191Z","createdAt":"2021-10-10T19:59:14.191Z"},{"id":"what-is-cap-theorem","title":"What is CAP Theorem?","description":"An illustrated explanation to CAP theorem with examples and proof.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=_RbsFXWRZ10","authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2021-10-05T19:59:14.191Z","createdAt":"2021-10-05T19:59:14.191Z"},{"id":"acid-explained","title":"ACID Explained","description":"Learn what it means for a database to be ACID compliant with examples.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=yaQ5YMWkxq4","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2021-09-26T19:59:14.191Z","createdAt":"2021-09-26T19:59:14.191Z"},{"id":"transport-protocols-tcp-vs-udp","title":"Transport Protocols: TCP vs UDP","description":"Learn about the Transport Layer of the TCP/IP model and different transport protocols.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=37AFBZv4_6Y","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2020-11-21T19:59:14.191Z","createdAt":"2020-11-21T19:59:14.191Z"},{"id":"tcp-ip-model","title":"TCP/IP Model Explained","description":"Learn what is TCP/IP Model and the different layers involved.","isPro":false,"authorUsername":"kamranahmedse","youtubeLink":"https://www.youtube.com/watch?v=F5rni9fr1yE","duration":"5 minutes","updatedAt":"2020-11-06T19:59:14.191Z","createdAt":"2020-11-06T19:59:14.191Z"},{"id":"osi-model","title":"OSI Model Explained","description":"Learn what is OSI Model and the different layers involved.","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=dV8mjZd1OtU","authorUsername":"kamranahmedse","duration":"7 minutes","updatedAt":"2020-10-24T19:59:14.191Z","createdAt":"2020-10-24T19:59:14.191Z"},{"id":"freeze-and-seal-objects-in-javascript","title":"Freeze and Seal in JavaScript","description":"Learn what is OSI Model and the different layers involved.","youtubeLink":"https://www.youtube.com/watch?v=O3uT2l6vgZ8","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-10-16T19:59:14.191Z","createdAt":"2020-10-16T19:59:14.191Z"},{"id":"all-about-http-caching","title":"All about HTTP Caching","description":"Learn what is HTTP caching, places for caching and different caching headers.","youtubeLink":"https://www.youtube.com/watch?v=HiBDZgTNpXY","isPro":false,"authorUsername":"kamranahmedse","duration":"13 minutes","updatedAt":"2020-10-04T19:59:14.191Z","createdAt":"2020-10-04T19:59:14.191Z"},{"id":"content-delivery-networks","title":"Content Delivery Networks","description":"Learn what the CDNs are and the difference between push CDN vs pull CDN.","youtubeLink":"https://www.youtube.com/watch?v=6DXEPcXKQNY","isPro":false,"authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2020-09-26T19:59:14.191Z","createdAt":"2020-09-26T19:59:14.191Z"},{"id":"load-balancers-101","title":"Load Balancers 101","description":"Learn the basics of load balancers, types and different algorithms.","youtubeLink":"https://www.youtube.com/watch?v=galcDRNd5Ow","isPro":false,"authorUsername":"kamranahmedse","duration":"9 minutes","updatedAt":"2020-09-18T19:59:14.191Z","createdAt":"2020-09-18T19:59:14.191Z"},{"id":"dns-records","title":"DNS Records","description":"Learn what the DNS is and how a website is found on the internet.","youtubeLink":"https://www.youtube.com/watch?v=7lxgpKh_fRY","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-08-31T19:59:14.191Z","createdAt":"2020-08-31T19:59:14.191Z"},{"id":"dns-explained","title":"DNS and how does it work?","description":"Learn what the DNS is and how a website is found on the internet.","youtubeLink":"https://www.youtube.com/watch?v=Wj0od2ag5sk","isPro":false,"authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2020-08-17T19:59:14.191Z","createdAt":"2020-08-17T19:59:14.191Z"},{"id":"system-design-101","title":"System Design 101","description":"Learn about all the bits and pieces of system design.","youtubeLink":"https://www.youtube.com/watch?v=Y-Gl4HEyeUQ","isPro":false,"authorUsername":"kamranahmedse","duration":"7 minutes","updatedAt":"2020-08-08T19:59:14.191Z","createdAt":"2020-08-08T19:59:14.191Z"},{"id":"javascript-fetch-api","title":"JavaScript Fetch API","description":"Learn how to use JavaScript\'s Fetch API to interact with remote API.","youtubeLink":"https://www.youtube.com/watch?v=-ZI0ea5O2oA","isPro":false,"authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2020-08-02T19:59:14.191Z","createdAt":"2020-08-02T19:59:14.191Z"},{"id":"scaling-the-unscalable","title":"Scaling the Unscalable","description":"Learn the basics of System Design and understand how to build a scalable application.","youtubeLink":"https://www.youtube.com/watch?v=a2rcgzludDU","isPro":false,"authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2020-07-26T19:59:14.191Z","createdAt":"2020-07-26T19:59:14.191Z"},{"id":"promises-in-javascript","title":"All about Promises in JavaScript","youtubeLink":"https://www.youtube.com/watch?v=BvrkobaCVVE","description":"Learn how to write asynchronous code in JavaScript using promises.","isPro":false,"authorUsername":"kamranahmedse","duration":"8 minutes","updatedAt":"2020-07-20T19:59:14.191Z","createdAt":"2020-07-20T19:59:14.191Z"},{"id":"how-to-use-github-actions","title":"Automate with GitHub Actions","description":"Learn how to implement CI/CD with GitHub Actions","youtubeLink":"https://www.youtube.com/watch?v=nyKZTKQS_EQ","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-07-13T19:59:14.191Z","createdAt":"2020-07-13T19:59:14.191Z"},{"id":"what-is-dependency-injection","title":"What is Dependency Injection?","description":"Learn what is dependency injection and how to write better code with the help of it.","youtubeLink":"https://www.youtube.com/watch?v=0yc2UANSDiw","isPro":false,"authorUsername":"kamranahmedse","duration":"3 minutes","updatedAt":"2020-07-04T19:59:14.191Z","createdAt":"2020-07-04T19:59:14.191Z"},{"id":"how-to-use-css-variables","title":"How to use CSS Variables?","description":"Learn how to write scalable CSS using CSS Variables.","youtubeLink":"https://www.youtube.com/watch?v=lgaxU7CRmxU","isPro":false,"authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2020-07-03T19:59:14.191Z","createdAt":"2020-07-03T19:59:14.191Z"},{"id":"what-is-dom-shadow-dom-virtual-dom","title":"DOM, Shadow DOM, Virtual DOM","description":"Learn what is DOM, Shadow DOM and Virtual DOM and how they work.","youtubeLink":"https://www.youtube.com/watch?v=7Tok22qxPzQ","isPro":false,"authorUsername":"kamranahmedse","duration":"6 minutes","updatedAt":"2020-07-20T19:59:14.191Z","createdAt":"2020-07-20T19:59:14.191Z"},{"id":"practical-intro-to-react","title":"Practical Introduction to React","description":"Learn how to create a React Application with practical example.","youtubeLink":"https://www.youtube.com/watch?v=NyG7YJWJd6s&list=PLkZYeFmDuaN3NDLnBG01-sH2-nwn43mYu","isPro":false,"authorUsername":"kamranahmedse","duration":"40 minutes","updatedAt":"2020-07-09T19:59:14.191Z","createdAt":"2020-07-09T19:59:14.191Z"},{"id":"arrays-and-objects-in-javascript","title":"Arrays and Objects in JavaScript","description":"Learn how to manipulate arrays and objects in JavaScript.","youtubeLink":"https://www.youtube.com/watch?v=n3NKGsM3iEw","isPro":false,"authorUsername":"kamranahmedse","duration":"12 minutes","updatedAt":"2020-05-09T19:59:14.191Z","createdAt":"2020-05-09T19:59:14.191Z"}]')}}]); \ No newline at end of file diff --git a/_next/static/chunks/714-86c6e14669113664.js b/_next/static/chunks/714-86c6e14669113664.js deleted file mode 100644 index 2eea04637..000000000 --- a/_next/static/chunks/714-86c6e14669113664.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[714],{4866:function(e,n,t){t.d(n,{v:function(){return l}});var o=t(5893),r=t(5115),i=t(8641),a=t(5657);t(7294);function l(){return(0,o.jsxs)(r.xv,{_hover:{textDecoration:"none",color:"blue.700","& .new-badge":{bg:"blue.700"}},as:r.rU,href:i.url.youtube,d:"block",target:"_blank",color:"red.700",fontSize:"sm",mb:"10px",fontWeight:500,onClick:function(){return(0,a.B)({category:"Subscription",action:"Clicked the YouTube banner",label:"YouTube Alert on Roadmap"})},children:[(0,o.jsx)(r.Ct,{transition:"all 300ms",className:"new-badge",mr:"7px",colorScheme:"red",variant:"solid",children:"New"}),(0,o.jsx)(r.xv,{textDecoration:"underline",as:"span",d:["none","inline"],children:"Roadmap topics to be covered on our YouTube Channel"}),(0,o.jsx)(r.xv,{textDecoration:"underline",as:"span",d:["inline","none"],children:"Topic videos being made on YouTube"}),(0,o.jsx)(r.xv,{as:"span",ml:"5px",children:"\xbb"})]})}},1177:function(e,n,t){t.d(n,{h:function(){return c}});var o=t(5893),r=t(4866),i=t(5115),a=t(5193),l=t(1277);t(7294);function c(e){var n=e.roadmap;return(0,o.jsx)(i.xu,{pt:["25px","20px","45px"],pb:["20px","15px","30px"],borderBottomWidth:1,mb:"30px",children:(0,o.jsxs)(i.W2,{maxW:"container.md",position:"relative",children:[(0,o.jsx)(r.v,{}),(0,o.jsx)(i.X6,{as:"h1",color:"black",fontSize:["28px","33px","40px"],fontWeight:700,mb:["2px","2px","5px"],children:n.title}),(0,o.jsx)(i.xv,{fontSize:["13px","14px","15px"],children:n.description}),(0,o.jsx)(i.kC,{justifyContent:"space-between",alignItems:"center",mt:"20px",children:(0,o.jsxs)(i.Kq,{isInline:!0,children:[(0,o.jsxs)(a.zx,{d:["flex","flex"],as:i.rU,href:"/roadmaps",size:"xs",py:"14px",px:"10px",colorScheme:"teal",variant:"solid",_hover:{textDecoration:"none"},children:["\u2190",(0,o.jsx)(i.xv,{as:"span",d:["none","inline"],ml:"5px",children:"All Roadmaps"})]}),n.pdfUrl&&(0,o.jsx)(a.zx,{as:i.rU,href:n.pdfUrl,target:"_blank",size:"xs",py:"14px",px:"10px",leftIcon:(0,o.jsx)(l._8,{}),colorScheme:"yellow",variant:"solid",_hover:{textDecoration:"none"},children:"Download"}),(0,o.jsx)(a.zx,{as:i.rU,href:"/signup",size:"xs",py:"14px",px:"10px",variant:"solid",colorScheme:"yellow",leftIcon:(0,o.jsx)(l.Km,{}),_hover:{textDecoration:"none"},children:"Subscribe"})]})}),"frontend"===n.id&&(0,o.jsxs)(i.xv,{mt:"30px",mb:["-37px","-32px","-47px"],fontWeight:500,fontSize:"14px",bg:"white",borderWidth:1,p:"5px 7px",rounded:"3px",children:[(0,o.jsx)(i.Ct,{pos:"relative",top:"-1px",mr:"6px",colorScheme:"yellow",children:"New"}),"Resources are here, try clicking any nodes."]})]})})}},2903:function(e,n,t){t.r(n),t.d(n,{__N_SSG:function(){return g},default:function(){return y}});var o=t(5893),r=t(5115),i=t(1739),a=t(2438),l=t(1832),c=t(600),s=t(6673),d=t(2348),u=t(202),p=(t(7294),t(1277)),f=t(8641),x=t(5193);function v(e){var n=e.href;return(0,o.jsxs)(r.xu,{my:"30px",children:[(0,o.jsx)(r.iz,{mb:"15px",orientation:"horizontal"}),(0,o.jsx)(r.xv,{lineHeight:"23px",fontWeight:500,fontSize:"14px",color:"gray.500",mb:"10px",children:"This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic."}),(0,o.jsx)(x.zx,{size:"sm",py:"20px",as:r.rU,href:n,target:"_blank",isFullWidth:!0,colorScheme:"gray",_hover:{textDecoration:"none",bg:"gray.200"},children:"Edit this Page"})]})}function h(e){var n=e.roadmap,i=e.group;if(!n.contentPathsFilePath)return null;var a=n.contentPathsFilePath.replace(/^\//,""),l=(t(9280)("./".concat(a))[i]||"").replace(/^\//,""),c=t(9280)("./".concat(l)).default;return(0,o.jsx)(r.xu,{children:(0,o.jsxs)(d.Z,{children:[(0,o.jsx)(c,{}),(0,o.jsx)(v,{href:"".concat(f.url.repoData,"/").concat(l)})]})})}function m(e){var n=e.roadmap,t=e.group.split(":");return(0,o.jsxs)(i.aG,{fontWeight:"medium",fontSize:"sm",separator:(0,o.jsx)(p.XC,{color:"gray.500"}),children:[(0,o.jsx)(i.gN,{children:(0,o.jsx)(i.At,{color:"blue.500",href:"/".concat(n.id),children:n.featuredTitle})}),t.map((function(e,r){return(0,o.jsx)(i.gN,{isCurrentPage:r===t.length-1,children:(0,o.jsx)(i.At,{textTransform:"capitalize",color:"blue.500",href:"/".concat(n.id,"/").concat(t.slice(0,r+1).join(":")),children:e.split("-").join(" ")})},e)}))]})}var g=!0;function y(e){var n,t,i=e.roadmap,d=e.group,p=e.isOutlet;return void 0!==p&&p?(0,o.jsx)(h,{roadmap:i,group:d}):(0,o.jsxs)(r.xu,{bg:"white",minH:"100vh",children:[(0,o.jsx)(a.e,{}),(0,o.jsx)(u.Z,{title:(null===i||void 0===i||null===(n=i.seo)||void 0===n?void 0:n.title)||i.title,description:(null===i||void 0===i||null===(t=i.seo)||void 0===t?void 0:t.description)||i.description,keywords:(null===i||void 0===i?void 0:i.seo.keywords)||[]}),(0,o.jsxs)(r.W2,{my:"60px",maxW:"container.md",position:"relative",children:[(0,o.jsx)(m,{roadmap:i,group:d}),(0,o.jsx)(h,{roadmap:i,group:d})]}),(0,o.jsx)(l.z,{}),(0,o.jsx)(c.q,{}),(0,o.jsx)(s.$,{})]})}},1714:function(e,n,t){t.r(n),t.d(n,{InteractiveRoadmapRenderer:function(){return L},__N_SSG:function(){return A},default:function(){return N}});var o=t(5893),r=t(2730),i=t(7294),a=t(5115),l=t(2438),c=t(1832),s=t(600),d=t(6673),u=t(202),p=t(8520),f=t.n(p);function x(e){return(e||"").replace(/^\d+-/,"")}function v(e,n,t){var o=void 0===n?{}:n,r=document.createElementNS("http://www.w3.org/2000/svg",e);for(var i in o)o.hasOwnProperty(i)&&r.setAttribute(i,o[i]);return t&&t.appendChild(r),r}var h=2.7,m={black:["#000"],gray:["#000","#333","#666","#999","#ccc","#ddd","#eee"],white:["#fff"],red:["#cf2a27","#ea9999","#eo6666","#cc0000","#990000","#660000"],orange:["#ff9900","#f9cb9c","#f6b26b","#e69138","#b45f06","#783f04"],yellow:["#ffff00","#ffe599","#ffd966","#f1c232","#bf9000","#7f6000"],green:["#009e0f","#b6d7a8","#93c47d","#6aa84f","#38761d","#274e13"],cyan:["#00ffff","#a2c4c9","#76a5af","#45818e","#134f5c","#0c343d"],blue:["#2b78e4","#9fc5f8","#6fa8dc","#597eaa","#085394","#073763"],purple:["#9900ff","#b4a7d6","#8e7cc3","#674ea7","#351c75","#20124d"],pink:["#ff00ff","#d5a6bd","#c27ba0","#a64d79","#741b47","#4c1130"]};function g(e,n){for(var t=0;t>8&255,t=255&e;return"rgb(".concat(e>>16&255,",").concat(n,",").concat(t,")")}(e)}},{key:"parseFontProperties",value:function(e){var n,t,o;return{style:(null===(n=e.properties)||void 0===n?void 0:n.italic)?"italic":"normal",weight:(null===(t=e.properties)||void 0===t?void 0:t.bold)?"bold":"normal",size:(null===(o=e.properties)||void 0===o?void 0:o.size)?e.properties.size+"px":"13px",family:this.fontFamily}}},{key:"measureText",value:function(e,n){return this.canvasRenderingContext2D.font=n,this.canvasRenderingContext2D.measureText(e)}},{key:"drawRectangle",value:function(e,n){var t,o,r,i,a,l;v("rect",{x:parseInt(e.x)+1.35,y:parseInt(e.y)+1.35,width:parseInt(null!==(i=e.w)&&void 0!==i?i:e.measuredW)-h,height:parseInt(null!==(a=e.h)&&void 0!==a?a:e.measuredH)-h,rx:2,fill:this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"255,255,255"),"fill-opacity":null!==(l=null===(o=e.properties)||void 0===o?void 0:o.backgroundAlpha)&&void 0!==l?l:1,stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.borderColor,"0,0,0"),"stroke-width":h},n)}},{key:"addText",value:function(e,n,t,o){var r,i,a=null!==(r=e.properties.text)&&void 0!==r?r:"",l=parseInt(e.x),c=parseInt(e.y),s=this.parseFontProperties(e),d=this.measureText(a,"".concat(s.style," ").concat(s.weight," ").concat(s.size," ").concat(s.family)),u=v("text",{x:"center"===o?l+(null!==(i=e.w)&&void 0!==i?i:e.measuredW)/2-d.width/2:l,y:c+e.measuredH/2+d.actualBoundingBoxAscent/2,fill:t,"font-style":s.style,"font-weight":s.weight,"font-size":s.size},n);a.includes("{color:")?a.split(/{color:|{color}/).forEach((function(e){if(e.includes("}")){var n=b(e.split("}"),2),t=n[0],o=n[1];if(!t.startsWith("#")){var r=parseInt(t.slice(-1));t=isNaN(r)?m[t][0]:m[t][r]}v("tspan",{fill:t},u).textContent=o}else v("tspan",{},u).textContent=e})):v("tspan",{},u).textContent=a}},{key:"TextArea",value:function(e,n){this.drawRectangle(e,n)}},{key:"Canvas",value:function(e,n){this.drawRectangle(e,n)}},{key:"Label",value:function(e,n){var t;this.addText(e,n,this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"0,0,0"),"left")}},{key:"TextInput",value:function(e,n){var t;this.drawRectangle(e,n),this.addText(e,n,this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.textColor,"0,0,0"),"center")}},{key:"Arrow",value:function(e,n){var t,o,r,i,a=parseInt(e.x),l=parseInt(e.y),c=e.properties,s=c.p0,d=c.p1,u=c.p2;"dotted"===(null===(t=e.properties)||void 0===t?void 0:t.stroke)?i="0.8 12":"dashed"===(null===(o=e.properties)||void 0===o?void 0:o.stroke)&&(i="28 46");var p=(u.x-s.x)*d.x,f=(u.y-s.y)*d.x;v("path",{d:"M".concat(a+s.x," ").concat(l+s.y,"Q").concat(a+s.x+p+f*d.y*3.6," ").concat(l+s.y+f+-p*d.y*3.6," ").concat(a+u.x," ").concat(l+u.y),fill:"none",stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.color,"0,0,0"),"stroke-width":4,"stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":i},n)}},{key:"Icon",value:function(e,n){var t,o=parseInt(e.x),r=parseInt(e.y),i=10;v("circle",{cx:o+i,cy:r+i,r:i,fill:this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"0,0,0")},n),"check-circle"===e.properties.icon.ID&&v("path",{d:"M".concat(o+4.5," ").concat(r+i,"L").concat(o+8.5," ").concat(r+i+4," ").concat(o+15," ").concat(r+i-2.5),fill:"none",stroke:"#fff","stroke-width":3.5,"stroke-linecap":"round","stroke-linejoin":"round"},n)}},{key:"HRule",value:function(e,n){var t,o,r,i,a,l=parseInt(e.x),c=parseInt(e.y);"dotted"===(null===(t=e.properties)||void 0===t?void 0:t.stroke)?i="0.8, 8":"dashed"===(null===(o=e.properties)||void 0===o?void 0:o.stroke)&&(i="18, 30"),v("path",{d:"M".concat(l," ").concat(c,"L").concat(l+parseInt(null!==(a=e.w)&&void 0!==a?a:e.measuredW)," ").concat(c),fill:"none",stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.color,"0,0,0"),"stroke-width":h,"stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":i},n)}},{key:"__group__",value:function(e,n){var t,o=this,r=null===e||void 0===e||null===(t=e.properties)||void 0===t?void 0:t.controlName,i=x(r),a="done"===localStorage.getItem(i),l=v("g",function(e){for(var n=1;n>8&255,t=255&e;return"rgb(".concat(e>>16&255,",").concat(n,",").concat(t,")")}(e)}},{key:"parseFontProperties",value:function(e){var n,t,o;return{style:(null===(n=e.properties)||void 0===n?void 0:n.italic)?"italic":"normal",weight:(null===(t=e.properties)||void 0===t?void 0:t.bold)?"bold":"normal",size:(null===(o=e.properties)||void 0===o?void 0:o.size)?e.properties.size+"px":"13px",family:this.fontFamily}}},{key:"measureText",value:function(e,n){return this.canvasRenderingContext2D.font=n,this.canvasRenderingContext2D.measureText(e)}},{key:"drawRectangle",value:function(e,n){var t,o,r,i,a,l;h("rect",{x:parseInt(e.x)+1.35,y:parseInt(e.y)+1.35,width:parseInt(null!==(i=e.w)&&void 0!==i?i:e.measuredW)-m,height:parseInt(null!==(a=e.h)&&void 0!==a?a:e.measuredH)-m,rx:2,fill:this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"255,255,255"),"fill-opacity":null!==(l=null===(o=e.properties)||void 0===o?void 0:o.backgroundAlpha)&&void 0!==l?l:1,stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.borderColor,"0,0,0"),"stroke-width":m},n)}},{key:"addText",value:function(e,n,t,o){var r,i,a=null!==(r=e.properties.text)&&void 0!==r?r:"",l=parseInt(e.x),c=parseInt(e.y),s=this.parseFontProperties(e),d=this.measureText(a,"".concat(s.style," ").concat(s.weight," ").concat(s.size," ").concat(s.family)),u=h("text",{x:"center"===o?l+(null!==(i=e.w)&&void 0!==i?i:e.measuredW)/2-d.width/2:l,y:c+e.measuredH/2+d.actualBoundingBoxAscent/2,fill:t,"font-style":s.style,"font-weight":s.weight,"font-size":s.size},n);a.includes("{color:")?a.split(/{color:|{color}/).forEach((function(e){if(e.includes("}")){var n=j(e.split("}"),2),t=n[0],o=n[1];if(!t.startsWith("#")){var r=parseInt(t.slice(-1));t=isNaN(r)?g[t][0]:g[t][r]}h("tspan",{fill:t},u).textContent=o}else h("tspan",{},u).textContent=e})):h("tspan",{},u).textContent=a}},{key:"TextArea",value:function(e,n){this.drawRectangle(e,n)}},{key:"Canvas",value:function(e,n){this.drawRectangle(e,n)}},{key:"Label",value:function(e,n){var t;this.addText(e,n,this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"0,0,0"),"left")}},{key:"TextInput",value:function(e,n){var t;this.drawRectangle(e,n),this.addText(e,n,this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.textColor,"0,0,0"),"center")}},{key:"Arrow",value:function(e,n){var t,o,r,i,a=parseInt(e.x),l=parseInt(e.y),c=e.properties,s=c.p0,d=c.p1,u=c.p2;"dotted"===(null===(t=e.properties)||void 0===t?void 0:t.stroke)?i="0.8 12":"dashed"===(null===(o=e.properties)||void 0===o?void 0:o.stroke)&&(i="28 46");var p=(u.x-s.x)*d.x,f=(u.y-s.y)*d.x;h("path",{d:"M".concat(a+s.x," ").concat(l+s.y,"Q").concat(a+s.x+p+f*d.y*3.6," ").concat(l+s.y+f+-p*d.y*3.6," ").concat(a+u.x," ").concat(l+u.y),fill:"none",stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.color,"0,0,0"),"stroke-width":4,"stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":i},n)}},{key:"Icon",value:function(e,n){var t,o=parseInt(e.x),r=parseInt(e.y),i=10;h("circle",{cx:o+i,cy:r+i,r:i,fill:this.parseColor(null===(t=e.properties)||void 0===t?void 0:t.color,"0,0,0")},n),"check-circle"===e.properties.icon.ID&&h("path",{d:"M".concat(o+4.5," ").concat(r+i,"L").concat(o+8.5," ").concat(r+i+4," ").concat(o+15," ").concat(r+i-2.5),fill:"none",stroke:"#fff","stroke-width":3.5,"stroke-linecap":"round","stroke-linejoin":"round"},n)}},{key:"HRule",value:function(e,n){var t,o,r,i,a,l=parseInt(e.x),c=parseInt(e.y);"dotted"===(null===(t=e.properties)||void 0===t?void 0:t.stroke)?i="0.8, 8":"dashed"===(null===(o=e.properties)||void 0===o?void 0:o.stroke)&&(i="18, 30"),h("path",{d:"M".concat(l," ").concat(c,"L").concat(l+parseInt(null!==(a=e.w)&&void 0!==a?a:e.measuredW)," ").concat(c),fill:"none",stroke:this.parseColor(null===(r=e.properties)||void 0===r?void 0:r.color,"0,0,0"),"stroke-width":m,"stroke-linecap":"round","stroke-linejoin":"round","stroke-dasharray":i},n)}},{key:"__group__",value:function(e,n){var t,o=this,r=null===e||void 0===e||null===(t=e.properties)||void 0===t?void 0:t.controlName,i=v(r),a="done"===localStorage.getItem(i),l=h("g",function(e){for(var n=1;n

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +from me soon but I do reply to everyone.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/android.html b/android.html index f0db242e4..a20591465 100644 --- a/android.html +++ b/android.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe

The intent of this guide is to give you an idea about the Android development landscape and to help guide your learning if you are confused. Before we start, please note that the roadmap is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the roadmap if suitable.

There are multiple ways to develop applications for the android; you can go down the path of hybrid application development where flutter, react-native, or NativeScript are the most common contenders. Flutter uses Dart, whereas React Native and Native Script rely on JavaScript. Answering the question of hybrid vs native is out of the scope of this roadmap. This roadmap is focused on the native Android apps development but if you are interested in learning any hybrid framework, my personal preference is react-native and I would recommend you to checkout the Frontend Developer Roadmap.

Complete Roadmap

Here is the full version of the roadmap in a single image and after that we have the broken down version with the resources and links to learn more about each of the boxes.

Broken Down Version

Below is the broken down version of the roadmap with links and resources to learn more about each of the items listed in the complete roadmap above.

Pick a Language

For the languages, you can develop android apps either by using Kotlin or Java.

Although, you can use both Kotlin and Java to develop native android apps, Google announced in 2019 to make Kotlin the preferred way of developing android applications. If you were to start learning android development today, Kotlin should be your language of choice.

The Fundamentals

Install the Android Studio and learn the basics of Kotlin to get started.

We have also listed down some free resources which you can use for the items listed in the image above. If you have some better ones, please do suggest. Also, you don't need to go through all of them, just go through them and pick what you like.

Version Control Systems

Version control systems record your changes to the codebase and allow you to recall specific versions later. There are multiple Version Control Systems available but Git is the most common one these days.

Here are some of the resources to get you started. Feel free to google and find something else that you find easier.

Building an Application

Here is the list of items that you are going to need when developing Android applications. Please note that, this is an exhaustive list, and you don't need to know it all from the get-go. Get an idea of the items listed, and just start building some apps and keep the items listed in the back of your mind and have a deep dive when using them.

To learn more about the items listed in the image above, here are the links to the relevant docs

I would highly recommend watching this free course from google on Developing Android Apps with Kotlin. Also, here are some of the resources to learn more about the topics listed above.

Wrap Up

That wraps it up for the android developer roadmap. Again, remember to not be exhausted by the list; just learn the basics and start working on some project, rest of the learnings will come along the way. Good luck!

For any suggestions, improvements and feedback, feel free to submit an issue or reach out to me on twitter @kamranahmedse.




Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe

The intent of this guide is to give you an idea about the Android development landscape and to help guide your learning if you are confused. Before we start, please note that the roadmap is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the roadmap if suitable.

There are multiple ways to develop applications for the android; you can go down the path of hybrid application development where flutter, react-native, or NativeScript are the most common contenders. Flutter uses Dart, whereas React Native and Native Script rely on JavaScript. Answering the question of hybrid vs native is out of the scope of this roadmap. This roadmap is focused on the native Android apps development but if you are interested in learning any hybrid framework, my personal preference is react-native and I would recommend you to checkout the Frontend Developer Roadmap.

Complete Roadmap

Here is the full version of the roadmap in a single image and after that we have the broken down version with the resources and links to learn more about each of the boxes.

Broken Down Version

Below is the broken down version of the roadmap with links and resources to learn more about each of the items listed in the complete roadmap above.

Pick a Language

For the languages, you can develop android apps either by using Kotlin or Java.

Although, you can use both Kotlin and Java to develop native android apps, Google announced in 2019 to make Kotlin the preferred way of developing android applications. If you were to start learning android development today, Kotlin should be your language of choice.

The Fundamentals

Install the Android Studio and learn the basics of Kotlin to get started.

We have also listed down some free resources which you can use for the items listed in the image above. If you have some better ones, please do suggest. Also, you don't need to go through all of them, just go through them and pick what you like.

Version Control Systems

Version control systems record your changes to the codebase and allow you to recall specific versions later. There are multiple Version Control Systems available but Git is the most common one these days.

Here are some of the resources to get you started. Feel free to google and find something else that you find easier.

Building an Application

Here is the list of items that you are going to need when developing Android applications. Please note that, this is an exhaustive list, and you don't need to know it all from the get-go. Get an idea of the items listed, and just start building some apps and keep the items listed in the back of your mind and have a deep dive when using them.

To learn more about the items listed in the image above, here are the links to the relevant docs

I would highly recommend watching this free course from google on Developing Android Apps with Kotlin. Also, here are some of the resources to learn more about the topics listed above.

Wrap Up

That wraps it up for the android developer roadmap. Again, remember to not be exhausted by the list; just learn the basics and start working on some project, rest of the learnings will come along the way. Good luck!

For any suggestions, improvements and feedback, feel free to submit an issue or reach out to me on twitter @kamranahmedse.




Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/android/android.html b/android/android.html index d2b758faf..a6136a7b5 100644 --- a/android/android.html +++ b/android/android.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/android/interactive.html b/android/interactive.html index 882293113..ce9c780fb 100644 --- a/android/interactive.html +++ b/android/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/android/resources.html b/android/resources.html index 5fd150a22..3b4c0c5d7 100644 --- a/android/resources.html +++ b/android/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Android Developer

Step by step guide to becoming an Android developer in 2021

All RoadmapsSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/angular.html b/angular.html index 5af38b0d7..a09245b5a 100644 --- a/angular.html +++ b/angular.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe

The intent of this guide is to give you an idea about the Angular ecosystem and to help guide your learning if you are confused. We have another roadmap on the Frontend Development that focuses on the frontend development if you are interested in that.

Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the picture if suitable.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe

The intent of this guide is to give you an idea about the Angular ecosystem and to help guide your learning if you are confused. We have another roadmap on the Frontend Development that focuses on the frontend development if you are interested in that.

Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the picture if suitable.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/angular/angular.html b/angular/angular.html index 08baed825..b4b858e02 100644 --- a/angular/angular.html +++ b/angular/angular.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/angular/interactive.html b/angular/interactive.html index 6444fc88f..2e67c7cf5 100644 --- a/angular/interactive.html +++ b/angular/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/angular/resources.html b/angular/resources.html index a970719ef..0890b96c9 100644 --- a/angular/resources.html +++ b/angular/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Angular Developer

Everything that is there to learn about Angular and the ecosystem in 2021.

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/aws.html b/aws.html index b8acefe37..d62afea95 100644 --- a/aws.html +++ b/aws.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

Roadmap is not ready yet. Please check back later or subscribe to get notified.

While we prepare the roadmap, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

Roadmap is not ready yet. Please check back later or subscribe to get notified.

While we prepare the roadmap, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/aws/aws.html b/aws/aws.html index af1f24098..847419f08 100644 --- a/aws/aws.html +++ b/aws/aws.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/aws/interactive.html b/aws/interactive.html index b4e30c63d..7bcbe541f 100644 --- a/aws/interactive.html +++ b/aws/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/aws/resources.html b/aws/resources.html index 72ebef932..05d3d77e4 100644 --- a/aws/resources.html +++ b/aws/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

AWS

Everything that is there to learn about AWS and the ecosystem in 2021.

All RoadmapsSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/backend.html b/backend.html index 376317a23..a9f5ddddd 100644 --- a/backend.html +++ b/backend.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe
Backend Developer

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe
Backend Developer

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/backend/backend.html b/backend/backend.html index d7ab60e7b..badacb7dc 100644 --- a/backend/backend.html +++ b/backend/backend.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/backend/interactive.html b/backend/interactive.html index 19becc6fc..682d3abef 100644 --- a/backend/interactive.html +++ b/backend/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/backend/resources.html b/backend/resources.html index ff6dde23c..ba5c336a1 100644 --- a/backend/resources.html +++ b/backend/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Backend Developer

Step by step guide to becoming a modern backend developer in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/devops.html b/devops.html index 3fb18922d..c15f93ced 100644 --- a/devops.html +++ b/devops.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe
DevOps Roadmap

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe
DevOps Roadmap

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/devops/devops.html b/devops/devops.html index 29faf3551..3ab701d87 100644 --- a/devops/devops.html +++ b/devops/devops.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/devops/interactive.html b/devops/interactive.html index 8959dff83..dab970dff 100644 --- a/devops/interactive.html +++ b/devops/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/devops/resources.html b/devops/resources.html index 28622d651..9de1a1ad5 100644 --- a/devops/resources.html +++ b/devops/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

DevOps Roadmap

Step by step guide for DevOps, SRE or any other Operations Role in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend.html b/frontend.html index 37d81c7a6..d7f5cb7e5 100644 --- a/frontend.html +++ b/frontend.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools.html b/frontend/build-tools.html index 2e9e401fc..70b457b60 100644 --- a/frontend/build-tools.html +++ b/frontend/build-tools.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Build tools


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Build tools


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:linters-formatters.html b/frontend/build-tools:linters-formatters.html index a0a34fe1d..da912ee92 100644 --- a/frontend/build-tools:linters-formatters.html +++ b/frontend/build-tools:linters-formatters.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Linters formatters


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Linters formatters


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:linters-formatters:eslint.html b/frontend/build-tools:linters-formatters:eslint.html index 0563e147f..2a310ec05 100644 --- a/frontend/build-tools:linters-formatters:eslint.html +++ b/frontend/build-tools:linters-formatters:eslint.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Eslint


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Eslint


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:linters-formatters:prettier.html b/frontend/build-tools:linters-formatters:prettier.html index fee787fd4..10212a57a 100644 --- a/frontend/build-tools:linters-formatters:prettier.html +++ b/frontend/build-tools:linters-formatters:prettier.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Prettier


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Prettier


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:linters-formatters:standardjs.html b/frontend/build-tools:linters-formatters:standardjs.html index 05d0fb9ef..d0c5a7f2e 100644 --- a/frontend/build-tools:linters-formatters:standardjs.html +++ b/frontend/build-tools:linters-formatters:standardjs.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Standardjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Standardjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers.html b/frontend/build-tools:module-bundlers.html index 1133cf746..36bf5fb43 100644 --- a/frontend/build-tools:module-bundlers.html +++ b/frontend/build-tools:module-bundlers.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Module bundlers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Module bundlers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers:esbuild.html b/frontend/build-tools:module-bundlers:esbuild.html index bdb30bb72..28bb7fbd8 100644 --- a/frontend/build-tools:module-bundlers:esbuild.html +++ b/frontend/build-tools:module-bundlers:esbuild.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Esbuild


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Esbuild


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers:parcel.html b/frontend/build-tools:module-bundlers:parcel.html index a349988f0..89f93ff86 100644 --- a/frontend/build-tools:module-bundlers:parcel.html +++ b/frontend/build-tools:module-bundlers:parcel.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Parcel


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Parcel


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers:rollup.html b/frontend/build-tools:module-bundlers:rollup.html index 86a698aee..b5cb95512 100644 --- a/frontend/build-tools:module-bundlers:rollup.html +++ b/frontend/build-tools:module-bundlers:rollup.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rollup


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rollup


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers:vite.html b/frontend/build-tools:module-bundlers:vite.html index 02f6ee985..1f150b73b 100644 --- a/frontend/build-tools:module-bundlers:vite.html +++ b/frontend/build-tools:module-bundlers:vite.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vite


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vite


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:module-bundlers:webpack.html b/frontend/build-tools:module-bundlers:webpack.html index a5a620cd3..827933242 100644 --- a/frontend/build-tools:module-bundlers:webpack.html +++ b/frontend/build-tools:module-bundlers:webpack.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Webpack


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Webpack


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:task-runners.html b/frontend/build-tools:task-runners.html index 2d0bf649b..64848c2e6 100644 --- a/frontend/build-tools:task-runners.html +++ b/frontend/build-tools:task-runners.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Task runners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Task runners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/build-tools:task-runners:npm-scripts.html b/frontend/build-tools:task-runners:npm-scripts.html index 5c40ffb0c..52b2a4e83 100644 --- a/frontend/build-tools:task-runners:npm-scripts.html +++ b/frontend/build-tools:task-runners:npm-scripts.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Npm scripts


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Npm scripts


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-architecture.html b/frontend/css-architecture.html index 2f66ebf16..2ad27e986 100644 --- a/frontend/css-architecture.html +++ b/frontend/css-architecture.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css architecture


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css architecture


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-architecture:bem.html b/frontend/css-architecture:bem.html index c01ac75c9..d2b3827f3 100644 --- a/frontend/css-architecture:bem.html +++ b/frontend/css-architecture:bem.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

BEM

The Block, Element, Modifier methodology (commonly referred to as BEM) is a popular naming convention for classes in HTML and CSS. Developed by the team at Yandex, its goal is to help developers better understand the relationship between the HTML and CSS in a given project.

Free Content

Official WebsiteBEM Official Website

Official DocumentationBEM Documentation

ReadBEM 101

ReadBEM Tutorials


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

BEM

The Block, Element, Modifier methodology (commonly referred to as BEM) is a popular naming convention for classes in HTML and CSS. Developed by the team at Yandex, its goal is to help developers better understand the relationship between the HTML and CSS in a given project.

Free Content

Official WebsiteBEM Official Website

Official DocumentationBEM Documentation

ReadBEM 101

ReadBEM Tutorials


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-architecture:oocss.html b/frontend/css-architecture:oocss.html index 623f7b3bf..ecadd882a 100644 --- a/frontend/css-architecture:oocss.html +++ b/frontend/css-architecture:oocss.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

OOCSS

As with any object-based coding method, the purpose of OOCSS or Object Oriented CSS is to encourage code reuse and, ultimately, faster and more efficient stylesheets that are easier to add to and maintain.

Free Content

Official WebsiteOOCSS Official Website

ReadIntroduction to Object Oriented CSS


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

OOCSS

As with any object-based coding method, the purpose of OOCSS or Object Oriented CSS is to encourage code reuse and, ultimately, faster and more efficient stylesheets that are easier to add to and maintain.

Free Content

Official WebsiteOOCSS Official Website

ReadIntroduction to Object Oriented CSS


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-architecture:smacss.html b/frontend/css-architecture:smacss.html index 67d213fd0..e1c37087e 100644 --- a/frontend/css-architecture:smacss.html +++ b/frontend/css-architecture:smacss.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Smacss


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Smacss


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks.html b/frontend/css-frameworks.html index b979ad004..b9098146d 100644 --- a/frontend/css-frameworks.html +++ b/frontend/css-frameworks.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css frameworks


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css frameworks


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:css-first.html b/frontend/css-frameworks:css-first.html index 5a833aefd..aeffc5d8c 100644 --- a/frontend/css-frameworks:css-first.html +++ b/frontend/css-frameworks:css-first.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css first


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css first


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:css-first:bootstrap.html b/frontend/css-frameworks:css-first:bootstrap.html index aa04c4e24..99ca313a8 100644 --- a/frontend/css-frameworks:css-first:bootstrap.html +++ b/frontend/css-frameworks:css-first:bootstrap.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bootstrap


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bootstrap


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:css-first:bulma.html b/frontend/css-frameworks:css-first:bulma.html index b3be6a739..975622a99 100644 --- a/frontend/css-frameworks:css-first:bulma.html +++ b/frontend/css-frameworks:css-first:bulma.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bulma


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bulma


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:js-first.html b/frontend/css-frameworks:js-first.html index 3922a52ff..6048eeb9e 100644 --- a/frontend/css-frameworks:js-first.html +++ b/frontend/css-frameworks:js-first.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Js first


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Js first


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:js-first:chakra-ui.html b/frontend/css-frameworks:js-first:chakra-ui.html index 2e6b131d4..31eafae66 100644 --- a/frontend/css-frameworks:js-first:chakra-ui.html +++ b/frontend/css-frameworks:js-first:chakra-ui.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Chakra ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Chakra ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:js-first:material-ui.html b/frontend/css-frameworks:js-first:material-ui.html index adec2886a..c9a239294 100644 --- a/frontend/css-frameworks:js-first:material-ui.html +++ b/frontend/css-frameworks:js-first:material-ui.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Material ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Material ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:js-first:radix-ui.html b/frontend/css-frameworks:js-first:radix-ui.html index 0049355f0..5637f598d 100644 --- a/frontend/css-frameworks:js-first:radix-ui.html +++ b/frontend/css-frameworks:js-first:radix-ui.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Radix ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Radix ui


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-frameworks:js-first:tailwind-css.html b/frontend/css-frameworks:js-first:tailwind-css.html index e608ebc43..a50feab88 100644 --- a/frontend/css-frameworks:js-first:tailwind-css.html +++ b/frontend/css-frameworks:js-first:tailwind-css.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Tailwind CSS

CSS Framework that provides atomic CSS classes to help you style components e.g. flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.

Free Content

Framework WebsiteTailwind Website

YouTube ChannelOfficial Screencasts

WatchShould You Use Tailwind CSS?

ReadTailwind CSS: An Introduction

CourseTailwind CSS Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Tailwind CSS

CSS Framework that provides atomic CSS classes to help you style components e.g. flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.

Free Content

Framework WebsiteTailwind Website

YouTube ChannelOfficial Screencasts

WatchShould You Use Tailwind CSS?

ReadTailwind CSS: An Introduction

CourseTailwind CSS Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-preprocessors.html b/frontend/css-preprocessors.html index afacfa1b7..b1b4306df 100644 --- a/frontend/css-preprocessors.html +++ b/frontend/css-preprocessors.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css preprocessors


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css preprocessors


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-preprocessors:less.html b/frontend/css-preprocessors:less.html index 67f7a9cd1..dea14e7db 100644 --- a/frontend/css-preprocessors:less.html +++ b/frontend/css-preprocessors:less.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Less


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Less


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-preprocessors:postcss.html b/frontend/css-preprocessors:postcss.html index 34ae23630..09ff48f2c 100644 --- a/frontend/css-preprocessors:postcss.html +++ b/frontend/css-preprocessors:postcss.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Postcss


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Postcss


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css-preprocessors:sass.html b/frontend/css-preprocessors:sass.html index 1247fdecb..bee5d29ec 100644 --- a/frontend/css-preprocessors:sass.html +++ b/frontend/css-preprocessors:sass.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Sass


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Sass


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css.html b/frontend/css.html index d19deb751..6f6b68131 100644 --- a/frontend/css.html +++ b/frontend/css.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS

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.

Free Content

ReadW3Schools — Learn CSS

ReadfreeCodeCamp — Responsive Web Design

ReadLearn to Code HTML & CSS

CourseCSS Crash Course For Absolute Beginners

CourseHTML and CSS Tutorial

CourseCSS Masterclass - Tutorial & Course for Beginners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS

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.

Free Content

ReadW3Schools — Learn CSS

ReadfreeCodeCamp — Responsive Web Design

ReadLearn to Code HTML & CSS

CourseCSS Crash Course For Absolute Beginners

CourseHTML and CSS Tutorial

CourseCSS Masterclass - Tutorial & Course for Beginners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css:learn-the-basics.html b/frontend/css:learn-the-basics.html index e11713098..e502fb488 100644 --- a/frontend/css:learn-the-basics.html +++ b/frontend/css:learn-the-basics.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS Basics

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.

Free Content

ReadW3Schools — Learn CSS

ReadfreeCodeCamp — Responsive Web Design

ReadLearn to Code HTML & CSS

CourseCSS Crash Course For Absolute Beginners

CourseHTML and CSS Tutorial

CourseCSS Masterclass - Tutorial & Course for Beginners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS Basics

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.

Free Content

ReadW3Schools — Learn CSS

ReadfreeCodeCamp — Responsive Web Design

ReadLearn to Code HTML & CSS

CourseCSS Crash Course For Absolute Beginners

CourseHTML and CSS Tutorial

CourseCSS Masterclass - Tutorial & Course for Beginners


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css:making-layouts.html b/frontend/css:making-layouts.html index 93d021704..64dc1debd 100644 --- a/frontend/css:making-layouts.html +++ b/frontend/css:making-layouts.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Making layouts

Free Content

ReadLearn and Practice Flexbox


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Making layouts

Free Content

ReadLearn and Practice Flexbox


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/css:responsive-design-and-media-queries.html b/frontend/css:responsive-design-and-media-queries.html index c3d4f5e3d..9b021fc0b 100644 --- a/frontend/css:responsive-design-and-media-queries.html +++ b/frontend/css:responsive-design-and-media-queries.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Responsive Design


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Responsive Design


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/desktop-applications.html b/frontend/desktop-applications.html index d11789eda..b84059952 100644 --- a/frontend/desktop-applications.html +++ b/frontend/desktop-applications.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Desktop applications


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Desktop applications


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/desktop-applications:carlo.html b/frontend/desktop-applications:carlo.html index 2dc6d1183..1752a549d 100644 --- a/frontend/desktop-applications:carlo.html +++ b/frontend/desktop-applications:carlo.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Carlo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Carlo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/desktop-applications:electron.html b/frontend/desktop-applications:electron.html index f0a17120c..05cfd55b4 100644 --- a/frontend/desktop-applications:electron.html +++ b/frontend/desktop-applications:electron.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Electron


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Electron


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/desktop-applications:proton-native.html b/frontend/desktop-applications:proton-native.html index 4cd427066..41d2ed33a 100644 --- a/frontend/desktop-applications:proton-native.html +++ b/frontend/desktop-applications:proton-native.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Proton native


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Proton native


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/graphql.html b/frontend/graphql.html index 2403a2c82..e75cad4c7 100644 --- a/frontend/graphql.html +++ b/frontend/graphql.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Graphql


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Graphql


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/graphql:apollo.html b/frontend/graphql:apollo.html index 9df4901e4..a2274d106 100644 --- a/frontend/graphql:apollo.html +++ b/frontend/graphql:apollo.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apollo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apollo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/graphql:relay-modern.html b/frontend/graphql:relay-modern.html index dfa47951c..816262fe7 100644 --- a/frontend/graphql:relay-modern.html +++ b/frontend/graphql:relay-modern.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Relay modern


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Relay modern


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/home.html b/frontend/home.html index 08e9ee702..5319f0822 100644 --- a/frontend/home.html +++ b/frontend/home.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html.html b/frontend/html.html index bef70d6e7..a7cda27c7 100644 --- a/frontend/html.html +++ b/frontend/html.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML

HTML stands for Hyper Text 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.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML

HTML stands for Hyper Text 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.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:accessibility.html b/frontend/html:accessibility.html index afce46bef..04b3bfff9 100644 --- a/frontend/html:accessibility.html +++ b/frontend/html:accessibility.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Accessibility


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Accessibility


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:conventions-and-best-practices.html b/frontend/html:conventions-and-best-practices.html index 74512083e..0a690821d 100644 --- a/frontend/html:conventions-and-best-practices.html +++ b/frontend/html:conventions-and-best-practices.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Conventions and best practices


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Conventions and best practices


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:forms-and-validations.html b/frontend/html:forms-and-validations.html index 5e27fd1f9..8e8fe612b 100644 --- a/frontend/html:forms-and-validations.html +++ b/frontend/html:forms-and-validations.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Forms and validations


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Forms and validations


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:learn-the-basics.html b/frontend/html:learn-the-basics.html index e41f8fa26..7cb4ce245 100644 --- a/frontend/html:learn-the-basics.html +++ b/frontend/html:learn-the-basics.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML Basics

HTML stands for Hyper Text 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.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML Basics

HTML stands for Hyper Text 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.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:seo-basics.html b/frontend/html:seo-basics.html index ce8a7cf26..6a3b31ce0 100644 --- a/frontend/html:seo-basics.html +++ b/frontend/html:seo-basics.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basics of SEO


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basics of SEO


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/html:writing-semantic-html.html b/frontend/html:writing-semantic-html.html index 99ae971f5..2c917b2e9 100644 --- a/frontend/html:writing-semantic-html.html +++ b/frontend/html:writing-semantic-html.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Semantic HTML

Semantic element clearly describes its meaning to both the browser and the developer.

Free Content

ReadW3Schools: Semantic HTML

ReadHow To Write Semantic HTML


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Semantic HTML

Semantic element clearly describes its meaning to both the browser and the developer.

Free Content

ReadW3Schools: Semantic HTML

ReadHow To Write Semantic HTML


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/interactive.html b/frontend/interactive.html index 7861739f9..1d6fb5d1e 100644 --- a/frontend/interactive.html +++ b/frontend/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet.html b/frontend/internet.html index 41c3f252a..60f530c71 100644 --- a/frontend/internet.html +++ b/frontend/internet.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Internet

The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

Free Content

ReadThe Internet Explained

ReadHow Does the Internet Work?

WatchIntroduction to Internet

WatchHow does the Internet work?

WatchHow the Internet Works in 5 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Internet

The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

Free Content

ReadThe Internet Explained

ReadHow Does the Internet Work?

WatchIntroduction to Internet

WatchHow does the Internet work?

WatchHow the Internet Works in 5 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:browsers-and-how-they-work.html b/frontend/internet:browsers-and-how-they-work.html index 6a6b579d2..999dacb47 100644 --- a/frontend/internet:browsers-and-how-they-work.html +++ b/frontend/internet:browsers-and-how-they-work.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Browsers

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.

Free Content

ReadHow Browsers Work

ReadRole of Rendering Engine in Browsers

ReadPopulating the Page: How Browsers Work


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Browsers

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.

Free Content

ReadHow Browsers Work

ReadRole of Rendering Engine in Browsers

ReadPopulating the Page: How Browsers Work


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:dns-and-how-it-works.html b/frontend/internet:dns-and-how-it-works.html index 2fb14c4a9..f020750ff 100644 --- a/frontend/internet:dns-and-how-it-works.html +++ b/frontend/internet:dns-and-how-it-works.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

DNS

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.

Free Content

ReadWhat is DNS?

WatchDNS and How does it Work?

WatchDNS Records


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

DNS

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.

Free Content

ReadWhat is DNS?

WatchDNS and How does it Work?

WatchDNS Records


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:how-does-the-internet-work.html b/frontend/internet:how-does-the-internet-work.html index 831c5113b..0ffcfd0ae 100644 --- a/frontend/internet:how-does-the-internet-work.html +++ b/frontend/internet:how-does-the-internet-work.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Internet

The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

Free Content

ReadThe Internet Explained

ReadHow Does the Internet Work?

WatchIntroduction to Internet

WatchHow does the Internet work?

WatchHow the Internet Works in 5 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Internet

The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

Free Content

ReadThe Internet Explained

ReadHow Does the Internet Work?

WatchIntroduction to Internet

WatchHow does the Internet work?

WatchHow the Internet Works in 5 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:what-is-domain-name.html b/frontend/internet:what-is-domain-name.html index b30e56bd1..f06e7a60e 100644 --- a/frontend/internet:what-is-domain-name.html +++ b/frontend/internet:what-is-domain-name.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Domain Name

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.

Free Content

ReadWhat is a Domain Name?

ReadWhat is a Domain Name? | Domain name vs. URL

WatchA Beginners Guide to How Domain Names Work


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Domain Name

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.

Free Content

ReadWhat is a Domain Name?

ReadWhat is a Domain Name? | Domain name vs. URL

WatchA Beginners Guide to How Domain Names Work


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:what-is-hosting.html b/frontend/internet:what-is-hosting.html index 8f670f9cb..5407ca48e 100644 --- a/frontend/internet:what-is-hosting.html +++ b/frontend/internet:what-is-hosting.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Hosting

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.

Free Content

WatchWhat Is Web Hosting? Explained

WatchDifferent Types of Web Hosting Explained

WatchWhere to Host a Fullstack Project on a Budget


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Hosting

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.

Free Content

WatchWhat Is Web Hosting? Explained

WatchDifferent Types of Web Hosting Explained

WatchWhere to Host a Fullstack Project on a Budget


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/internet:what-is-http.html b/frontend/internet:what-is-http.html index a138cf685..f18ace42d 100644 --- a/frontend/internet:what-is-http.html +++ b/frontend/internet:what-is-http.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

What is HTTP?

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.

Free Content

ReadWhat is HTTP?

ReadAn overview of HTTP

ReadJourney to HTTP/2

WatchHTTP Crash Course & Exploration


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

What is HTTP?

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.

Free Content

ReadWhat is HTTP?

ReadAn overview of HTTP

ReadJourney to HTTP/2

WatchHTTP Crash Course & Exploration


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript.html b/frontend/javascript.html index 5f47e2213..192834916 100644 --- a/frontend/javascript.html +++ b/frontend/javascript.html @@ -3,7 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Javascript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

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.

ReadW3Schools – JavaScript Tutorial

ReadThe Modern JavaScript Tutorial

WatchJavaScript Crash Course for Beginners

WatchBuild a Netflix Landing Page Clone with HTML, CSS & JS


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript:concepts.html b/frontend/javascript:concepts.html index b60084900..6951ef638 100644 --- a/frontend/javascript:concepts.html +++ b/frontend/javascript:concepts.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Concepts


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Concepts


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript:es6-and-modular-javascript.html b/frontend/javascript:es6-and-modular-javascript.html index 895303dd2..ba1613083 100644 --- a/frontend/javascript:es6-and-modular-javascript.html +++ b/frontend/javascript:es6-and-modular-javascript.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Es6 and modular javascript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Es6 and modular javascript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript:learn-dom-manipulation.html b/frontend/javascript:learn-dom-manipulation.html index f666a27bb..1460a333b 100644 --- a/frontend/javascript:learn-dom-manipulation.html +++ b/frontend/javascript:learn-dom-manipulation.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Learn dom manipulation


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Learn dom manipulation


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript:learn-fetch-api-ajax-xhr.html b/frontend/javascript:learn-fetch-api-ajax-xhr.html index 18e4b23d9..8dc1fa38b 100644 --- a/frontend/javascript:learn-fetch-api-ajax-xhr.html +++ b/frontend/javascript:learn-fetch-api-ajax-xhr.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Learn fetch api ajax xhr


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Learn fetch api ajax xhr


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/javascript:syntax-and-basic-constructs.html b/frontend/javascript:syntax-and-basic-constructs.html index 5a6bb5541..63a994940 100644 --- a/frontend/javascript:syntax-and-basic-constructs.html +++ b/frontend/javascript:syntax-and-basic-constructs.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Syntax and basic constructs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Syntax and basic constructs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/mobile-applications.html b/frontend/mobile-applications.html index 6c13e00ae..f7e37464f 100644 --- a/frontend/mobile-applications.html +++ b/frontend/mobile-applications.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mobile applications


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mobile applications


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/mobile-applications:flutter.html b/frontend/mobile-applications:flutter.html index abbe9cc99..97fd56436 100644 --- a/frontend/mobile-applications:flutter.html +++ b/frontend/mobile-applications:flutter.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Flutter

Flutter is a free and open-source mobile UI framework created by Google and released in May 2017. In a few words, it allows you to create a native mobile application with only one codebase. This means that you can use one programming language and one codebase to create two different apps (for iOS and Android).

Flutter consists of two important parts:

  • An SDK (Software Development Kit): A collection of tools that are going to help you develop your applications. This includes tools to compile your code into native machine code (code for iOS and Android).
  • A Framework (UI Library based on widgets): A collection of reusable UI elements (buttons, text inputs, sliders, and so on) that you can personalize for your own needs. -To develop with Flutter, you will use a programming language called Dart. The language was created by Google in October 2011, but it has improved a lot over these past years.

Dart focuses on front-end development, and you can use it to create mobile and web applications.

If you know a bit of programming, Dart is a typed object programming language. You can compare Dart's syntax to JavaScript.

Free Content

Official WebsiteFlutter Website

ReadFlutter Tutorial

CourseFlutter Tutorial for Beginners

ReadFlutter Tutorial

ReadLearn Dart Programming


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +To develop with Flutter, you will use a programming language called Dart. The language was created by Google in October 2011, but it has improved a lot over these past years.

Dart focuses on front-end development, and you can use it to create mobile and web applications.

If you know a bit of programming, Dart is a typed object programming language. You can compare Dart's syntax to JavaScript.

Free Content

Official WebsiteFlutter Website

ReadFlutter Tutorial

CourseFlutter Tutorial for Beginners

ReadFlutter Tutorial

ReadLearn Dart Programming


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/mobile-applications:ionic.html b/frontend/mobile-applications:ionic.html index 681494b54..3c4f49d01 100644 --- a/frontend/mobile-applications:ionic.html +++ b/frontend/mobile-applications:ionic.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ionic


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ionic


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/mobile-applications:nativescript.html b/frontend/mobile-applications:nativescript.html index b7dd23a04..fc66314db 100644 --- a/frontend/mobile-applications:nativescript.html +++ b/frontend/mobile-applications:nativescript.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nativescript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nativescript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/mobile-applications:react-native.html b/frontend/mobile-applications:react-native.html index a32e3968d..2eac80006 100644 --- a/frontend/mobile-applications:react-native.html +++ b/frontend/mobile-applications:react-native.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React native


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React native


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/modern-css.html b/frontend/modern-css.html index 972695b69..f291c2991 100644 --- a/frontend/modern-css.html +++ b/frontend/modern-css.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Modern css


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Modern css


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/modern-css:css-modules.html b/frontend/modern-css:css-modules.html index 18a56eb36..8d8a8dda1 100644 --- a/frontend/modern-css:css-modules.html +++ b/frontend/modern-css:css-modules.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css modules


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Css modules


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/modern-css:emotion.html b/frontend/modern-css:emotion.html index 139f03dfd..1d69e92cc 100644 --- a/frontend/modern-css:emotion.html +++ b/frontend/modern-css:emotion.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Emotion


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Emotion


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/modern-css:styled-components.html b/frontend/modern-css:styled-components.html index 0700dd3d7..900cf4292 100644 --- a/frontend/modern-css:styled-components.html +++ b/frontend/modern-css:styled-components.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled components


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled components


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/modern-css:styled-jsx.html b/frontend/modern-css:styled-jsx.html index 9ec89d914..33910f090 100644 --- a/frontend/modern-css:styled-jsx.html +++ b/frontend/modern-css:styled-jsx.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled jsx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled jsx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/package-managers.html b/frontend/package-managers.html index bd0ea5498..a4b8a5410 100644 --- a/frontend/package-managers.html +++ b/frontend/package-managers.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Package managers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Package managers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/package-managers:npm.html b/frontend/package-managers:npm.html index 810fe12ed..f84b848b7 100644 --- a/frontend/package-managers:npm.html +++ b/frontend/package-managers:npm.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Npm


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Npm


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/package-managers:yarn.html b/frontend/package-managers:yarn.html index 9e493fdb7..1280a521f 100644 --- a/frontend/package-managers:yarn.html +++ b/frontend/package-managers:yarn.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Yarn


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Yarn


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework.html b/frontend/pick-a-framework.html index 255d6d045..811ebfd9d 100644 --- a/frontend/pick-a-framework.html +++ b/frontend/pick-a-framework.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Pick a framework


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Pick a framework


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:angular.html b/frontend/pick-a-framework:angular.html index e87efa7c3..954b194da 100644 --- a/frontend/pick-a-framework:angular.html +++ b/frontend/pick-a-framework:angular.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Angular


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Angular


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:angular:ngrx.html b/frontend/pick-a-framework:angular:ngrx.html index d22b66538..2a86877c2 100644 --- a/frontend/pick-a-framework:angular:ngrx.html +++ b/frontend/pick-a-framework:angular:ngrx.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ngrx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ngrx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:angular:rxjs.html b/frontend/pick-a-framework:angular:rxjs.html index 90faf5f26..740b8bb39 100644 --- a/frontend/pick-a-framework:angular:rxjs.html +++ b/frontend/pick-a-framework:angular:rxjs.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rxjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rxjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:react-js.html b/frontend/pick-a-framework:react-js.html index 64d4f44b0..9b494d047 100644 --- a/frontend/pick-a-framework:react-js.html +++ b/frontend/pick-a-framework:react-js.html @@ -3,9 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React

React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native.

Free Content

Framework WebsiteReact Website

ReadOfficial Getting Started

CourseThe Beginner's Guide to React

CourseReact JS Course for Beginners

WatchUnderstanding React's UI Rendering Process


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React

React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native.

Free Content

Framework WebsiteReact Website

ReadOfficial Getting Started

CourseThe Beginner's Guide to React

CourseReact JS Course for Beginners

WatchUnderstanding React's UI Rendering Process


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:react-js:mobx.html b/frontend/pick-a-framework:react-js:mobx.html index cf80cb5b2..bbb1df9ba 100644 --- a/frontend/pick-a-framework:react-js:mobx.html +++ b/frontend/pick-a-framework:react-js:mobx.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mobx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mobx


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:react-js:recoil.html b/frontend/pick-a-framework:react-js:recoil.html index 4759aa81c..79cbd345a 100644 --- a/frontend/pick-a-framework:react-js:recoil.html +++ b/frontend/pick-a-framework:react-js:recoil.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Recoil


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Recoil


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:react-js:redux.html b/frontend/pick-a-framework:react-js:redux.html index fb8692940..7aa2b1dd4 100644 --- a/frontend/pick-a-framework:react-js:redux.html +++ b/frontend/pick-a-framework:react-js:redux.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Redux


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Redux


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:vue-js.html b/frontend/pick-a-framework:vue-js.html index ccf5a24e6..80c59255e 100644 --- a/frontend/pick-a-framework:vue-js.html +++ b/frontend/pick-a-framework:vue-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vue js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vue js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/pick-a-framework:vue-js:vuex.html b/frontend/pick-a-framework:vue-js:vuex.html index faa5206a3..7e5073d77 100644 --- a/frontend/pick-a-framework:vue-js:vuex.html +++ b/frontend/pick-a-framework:vue-js:vuex.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vuex


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vuex


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/progressive-web-apps.html b/frontend/progressive-web-apps.html index 77ee25f95..432a26677 100644 --- a/frontend/progressive-web-apps.html +++ b/frontend/progressive-web-apps.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Progressive web apps


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Progressive web apps


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/progressive-web-apps:apis.html b/frontend/progressive-web-apps:apis.html index 78fbe0438..7fdec8ebc 100644 --- a/frontend/progressive-web-apps:apis.html +++ b/frontend/progressive-web-apps:apis.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apis


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apis


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/progressive-web-apps:performance.html b/frontend/progressive-web-apps:performance.html index e8a63078f..11d4d33b7 100644 --- a/frontend/progressive-web-apps:performance.html +++ b/frontend/progressive-web-apps:performance.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Performance


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Performance


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/repo-hosting-services.html b/frontend/repo-hosting-services.html index d90cf1f61..898874fe5 100644 --- a/frontend/repo-hosting-services.html +++ b/frontend/repo-hosting-services.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Repo hosting services


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Repo hosting services


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/repo-hosting-services:bitbucket.html b/frontend/repo-hosting-services:bitbucket.html index ef5beab85..e12c95521 100644 --- a/frontend/repo-hosting-services:bitbucket.html +++ b/frontend/repo-hosting-services:bitbucket.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bitbucket


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bitbucket


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/repo-hosting-services:github.html b/frontend/repo-hosting-services:github.html index d3a32c1bc..5deb14793 100644 --- a/frontend/repo-hosting-services:github.html +++ b/frontend/repo-hosting-services:github.html @@ -3,11 +3,11 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Github

GitHub 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.

Free Content

ReadGitHub: Quickstart

WatchWhat is GitHub?

WatchGit vs. GitHub: What's the difference?

WatchGit and GitHub for Beginners

WatchGit and GitHub - CS50 Beyond 2019


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Github

GitHub 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.

Free Content

ReadGitHub: Quickstart

WatchWhat is GitHub?

WatchGit vs. GitHub: What's the difference?

WatchGit and GitHub for Beginners

WatchGit and GitHub - CS50 Beyond 2019


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/repo-hosting-services:gitlab.html b/frontend/repo-hosting-services:gitlab.html index 542df8aff..20eeea3bf 100644 --- a/frontend/repo-hosting-services:gitlab.html +++ b/frontend/repo-hosting-services:gitlab.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gitlab


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gitlab


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/resources.html b/frontend/resources.html index b166db74d..d92b729d5 100644 --- a/frontend/resources.html +++ b/frontend/resources.html @@ -3,18 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

This page is incomplete and is being worked upon. Please check back later or subscribe / follow me on twitter to get notified. Also, feel free to contribute by suggesting the resources in the issues.

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.

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.

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.

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.

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.

Now that you know what git is go ahead and create an account on GitHub 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".







Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Frontend Developer

Step by step guide to becoming a modern frontend developer in 2021

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.


The resources have been moved to the interactive frontend roadmap — try clicking any nodes!

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering.html b/frontend/server-side-rendering.html index 0d271d453..833d91c3f 100644 --- a/frontend/server-side-rendering.html +++ b/frontend/server-side-rendering.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Server side rendering


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Server side rendering


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:angular.html b/frontend/server-side-rendering:angular.html index fc959b682..cb4cbc1a7 100644 --- a/frontend/server-side-rendering:angular.html +++ b/frontend/server-side-rendering:angular.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Angular


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Angular


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:angular:universal.html b/frontend/server-side-rendering:angular:universal.html index 29788a1e0..e393575c7 100644 --- a/frontend/server-side-rendering:angular:universal.html +++ b/frontend/server-side-rendering:angular:universal.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Universal


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Universal


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:react-js.html b/frontend/server-side-rendering:react-js.html index 3d3b314bf..bbfc11b5e 100644 --- a/frontend/server-side-rendering:react-js.html +++ b/frontend/server-side-rendering:react-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:react-js:after-js.html b/frontend/server-side-rendering:react-js:after-js.html index 9c55a979b..418fa3860 100644 --- a/frontend/server-side-rendering:react-js:after-js.html +++ b/frontend/server-side-rendering:react-js:after-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

After js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

After js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:react-js:next-js.html b/frontend/server-side-rendering:react-js:next-js.html index f61b21ca8..f00b2c098 100644 --- a/frontend/server-side-rendering:react-js:next-js.html +++ b/frontend/server-side-rendering:react-js:next-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:vue-js.html b/frontend/server-side-rendering:vue-js.html index b6fa988ed..c34369bf4 100644 --- a/frontend/server-side-rendering:vue-js.html +++ b/frontend/server-side-rendering:vue-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vue js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vue js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/server-side-rendering:vue-js:nuxt-js.html b/frontend/server-side-rendering:vue-js:nuxt-js.html index b77ef4f40..6d9a82dc2 100644 --- a/frontend/server-side-rendering:vue-js:nuxt-js.html +++ b/frontend/server-side-rendering:vue-js:nuxt-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nuxt js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nuxt js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators.html b/frontend/static-site-generators.html index 706049b67..e7fb96301 100644 --- a/frontend/static-site-generators.html +++ b/frontend/static-site-generators.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Static site generators


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Static site generators


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:eleventy.html b/frontend/static-site-generators:eleventy.html index 8073023a4..c169b85e7 100644 --- a/frontend/static-site-generators:eleventy.html +++ b/frontend/static-site-generators:eleventy.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Eleventy


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Eleventy


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:gatsbyjs.html b/frontend/static-site-generators:gatsbyjs.html index 0b8017287..56845afa0 100644 --- a/frontend/static-site-generators:gatsbyjs.html +++ b/frontend/static-site-generators:gatsbyjs.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gatsbyjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gatsbyjs


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:gridsome.html b/frontend/static-site-generators:gridsome.html index 88bd7ec10..64f6da81e 100644 --- a/frontend/static-site-generators:gridsome.html +++ b/frontend/static-site-generators:gridsome.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gridsome


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Gridsome


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:hugo.html b/frontend/static-site-generators:hugo.html index c9879652f..550e861f0 100644 --- a/frontend/static-site-generators:hugo.html +++ b/frontend/static-site-generators:hugo.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Hugo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Hugo


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:jekyll.html b/frontend/static-site-generators:jekyll.html index c43a5776b..a08d42218 100644 --- a/frontend/static-site-generators:jekyll.html +++ b/frontend/static-site-generators:jekyll.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jekyll


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jekyll


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:next-js.html b/frontend/static-site-generators:next-js.html index 0d73a24ae..b2a408645 100644 --- a/frontend/static-site-generators:next-js.html +++ b/frontend/static-site-generators:next-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:nuxt-js.html b/frontend/static-site-generators:nuxt-js.html index 6a937a521..c568782f2 100644 --- a/frontend/static-site-generators:nuxt-js.html +++ b/frontend/static-site-generators:nuxt-js.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nuxt js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nuxt js


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/static-site-generators:vuepress.html b/frontend/static-site-generators:vuepress.html index 7feea1efa..a50494cbc 100644 --- a/frontend/static-site-generators:vuepress.html +++ b/frontend/static-site-generators:vuepress.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vuepress


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vuepress


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps.html b/frontend/testing-your-apps.html index a9bc4dea4..87e79db0c 100644 --- a/frontend/testing-your-apps.html +++ b/frontend/testing-your-apps.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Testing your apps


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Testing your apps


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps:cypress.html b/frontend/testing-your-apps:cypress.html index 97a72e37c..402acf4ff 100644 --- a/frontend/testing-your-apps:cypress.html +++ b/frontend/testing-your-apps:cypress.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cypress


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cypress


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps:enzyme.html b/frontend/testing-your-apps:enzyme.html index a2bea8b64..1428d4d5f 100644 --- a/frontend/testing-your-apps:enzyme.html +++ b/frontend/testing-your-apps:enzyme.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Enzyme


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Enzyme


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps:jest.html b/frontend/testing-your-apps:jest.html index 91ab6975e..2f14e8db2 100644 --- a/frontend/testing-your-apps:jest.html +++ b/frontend/testing-your-apps:jest.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jest


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jest


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps:other-options.html b/frontend/testing-your-apps:other-options.html index 26669e4c8..a3502754d 100644 --- a/frontend/testing-your-apps:other-options.html +++ b/frontend/testing-your-apps:other-options.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Other options


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Other options


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/testing-your-apps:react-testing-library.html b/frontend/testing-your-apps:react-testing-library.html index e89d19f28..8b54c8f82 100644 --- a/frontend/testing-your-apps:react-testing-library.html +++ b/frontend/testing-your-apps:react-testing-library.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React testing library


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React testing library


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/type-checkers.html b/frontend/type-checkers.html index 7236eb97b..2075e0b6e 100644 --- a/frontend/type-checkers.html +++ b/frontend/type-checkers.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Type checkers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Type checkers


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/type-checkers:flow.html b/frontend/type-checkers:flow.html index 442d30c91..b9b2b91a1 100644 --- a/frontend/type-checkers:flow.html +++ b/frontend/type-checkers:flow.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Flow


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Flow


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/type-checkers:typescript.html b/frontend/type-checkers:typescript.html index 08c08c824..ba62391f8 100644 --- a/frontend/type-checkers:typescript.html +++ b/frontend/type-checkers:typescript.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Typescript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Typescript


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/version-control-systems.html b/frontend/version-control-systems.html index 470970378..6461cbcc0 100644 --- a/frontend/version-control-systems.html +++ b/frontend/version-control-systems.html @@ -3,7 +3,9 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Version control systems


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Version Control Systems

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.

WatchVersion Control System Introduction

WatchGit & GitHub Crash Course For Beginners

WatchLearn Git in 20 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/version-control-systems:basic-usage-of-git.html b/frontend/version-control-systems:basic-usage-of-git.html index 05d6aa8a9..915ab047a 100644 --- a/frontend/version-control-systems:basic-usage-of-git.html +++ b/frontend/version-control-systems:basic-usage-of-git.html @@ -3,7 +3,11 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basic usage of git


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +.gJMBjK{font-weight:600;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ +data-styled.g14[id="sc-crHmcD"]{content:"gJMBjK,"}/*!sc*/ +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

WatchVersion Control System Introduction

WatchGit & GitHub Crash Course For Beginners

WatchLearn Git in 20 Minutes


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-assembly.html b/frontend/web-assembly.html index 97a657fbd..7cf56cf05 100644 --- a/frontend/web-assembly.html +++ b/frontend/web-assembly.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web assembly


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web assembly


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-components.html b/frontend/web-components.html index 9aa89f64e..26b3fbb4b 100644 --- a/frontend/web-components.html +++ b/frontend/web-components.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web components


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web components


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-components:custom-elements.html b/frontend/web-components:custom-elements.html index 6fd5dd88c..33549c212 100644 --- a/frontend/web-components:custom-elements.html +++ b/frontend/web-components:custom-elements.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Custom elements


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Custom elements


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-components:html-templates.html b/frontend/web-components:html-templates.html index 3602ae3d6..79d58a5bf 100644 --- a/frontend/web-components:html-templates.html +++ b/frontend/web-components:html-templates.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Html templates


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Html templates


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-components:shadow-dom.html b/frontend/web-components:shadow-dom.html index 677135ae3..673219d66 100644 --- a/frontend/web-components:shadow-dom.html +++ b/frontend/web-components:shadow-dom.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Shadow dom


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Shadow dom


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-security-knowledge.html b/frontend/web-security-knowledge.html index abd459efc..4ffb1db16 100644 --- a/frontend/web-security-knowledge.html +++ b/frontend/web-security-knowledge.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web security knowledge


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web security knowledge


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-security-knowledge:content-security-policy.html b/frontend/web-security-knowledge:content-security-policy.html index a4f6b8d50..8903a0f91 100644 --- a/frontend/web-security-knowledge:content-security-policy.html +++ b/frontend/web-security-knowledge:content-security-policy.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Content security policy


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Content security policy


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-security-knowledge:cors.html b/frontend/web-security-knowledge:cors.html index 2fe91a452..c7e6f55a8 100644 --- a/frontend/web-security-knowledge:cors.html +++ b/frontend/web-security-knowledge:cors.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cors


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cors


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-security-knowledge:https.html b/frontend/web-security-knowledge:https.html index f8f12ef02..c308d07a0 100644 --- a/frontend/web-security-knowledge:https.html +++ b/frontend/web-security-knowledge:https.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Https


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Https


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/frontend/web-security-knowledge:owasp-security-risks.html b/frontend/web-security-knowledge:owasp-security-risks.html index 70a441df3..b670cc954 100644 --- a/frontend/web-security-knowledge:owasp-security-risks.html +++ b/frontend/web-security-knowledge:owasp-security-risks.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Owasp security risks


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Owasp security risks


This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.

Edit this Page

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/golang.html b/golang.html index 5c59b957c..fcceb0375 100644 --- a/golang.html +++ b/golang.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe

The intent of this guide is to give you an idea about the Go ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe

The intent of this guide is to give you an idea about the Go ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/golang/golang.html b/golang/golang.html index 1051b1c62..ee19ea85f 100644 --- a/golang/golang.html +++ b/golang/golang.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/golang/interactive.html b/golang/interactive.html index 8a10e9ba7..1f1622550 100644 --- a/golang/interactive.html +++ b/golang/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe
Loading...

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/golang/resources.html b/golang/resources.html index 002fa8318..12d6dc2e6 100644 --- a/golang/resources.html +++ b/golang/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

Go Developer

Step by step guide to becoming a Go developer in 2021

All RoadmapsDownloadSubscribe

We are still preparing the resources. Please check back later or subscribe to get notified.

While we prepare the list, follow this simple advice to learn anything

Just pick a project and start working on it, you will learn all that you need along the way.

  All Roadmaps    Programming guides    Subscribe

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides.html b/guides.html index e75af1093..55dfc9c86 100644 --- a/guides.html +++ b/guides.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Visual Guides

Succinct graphical explanations to engineering topics.

NewSeptember 10, 2021

Async and Defer Script Loading

Learn how to avoid render blocking JavaScript using async and defer scripts.

NewSeptember 5, 2021

What are Web Vitals?

Learn what are the core web vitals and how to measure them.

SLIs, SLOs and SLAs
August 31, 2021
What is CI and CD?
July 9, 2021
SSO — Single Sign On
July 1, 2021
OAuth — Open Authorization
June 28, 2021
JWT Authentication
June 20, 2021
Token Based Authentication
June 2, 2021
Session Based Authentication
May 26, 2021
Basic Authentication
May 19, 2021
Character Encodings
May 14, 2021
Unfamiliar Codebase
May 4, 2021
Build it and they will come?
May 4, 2021
DHCP in One Picture
April 28, 2021
SSL vs TLS vs SSH
April 22, 2021
Asymptotic Notation
April 3, 2021
Big-O Notation
March 15, 2021
Random Numbers: Are they?
March 14, 2021
How does the internet work?
March 1, 2021
Scaling Databases
February 18, 2021
Building a BitTorrent Client
January 17, 2021
Levels of Seniority
December 3, 2020
Design Patterns for Humans
October 9, 2019
DNS in One Picture
December 4, 2018
HTTP Caching
November 29, 2018
Brief History of JavaScript
October 28, 2017
Proxy Servers
October 24, 2017

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Visual Guides

Succinct graphical explanations to engineering topics.

NewSeptember 10, 2021

Async and Defer Script Loading

Learn how to avoid render blocking JavaScript using async and defer scripts.

NewSeptember 5, 2021

What are Web Vitals?

Learn what are the core web vitals and how to measure them.

SLIs, SLOs and SLAs
August 31, 2021
What is CI and CD?
July 9, 2021
SSO — Single Sign On
July 1, 2021
OAuth — Open Authorization
June 28, 2021
JWT Authentication
June 20, 2021
Token Based Authentication
June 2, 2021
Session Based Authentication
May 26, 2021
Basic Authentication
May 19, 2021
Character Encodings
May 14, 2021
Unfamiliar Codebase
May 4, 2021
Build it and they will come?
May 4, 2021
DHCP in One Picture
April 28, 2021
SSL vs TLS vs SSH
April 22, 2021
Asymptotic Notation
April 3, 2021
Big-O Notation
March 15, 2021
Random Numbers: Are they?
March 14, 2021
How does the internet work?
March 1, 2021
Scaling Databases
February 18, 2021
Building a BitTorrent Client
January 17, 2021
Levels of Seniority
December 3, 2020
Design Patterns for Humans
October 9, 2019
DNS in One Picture
December 4, 2018
HTTP Caching
November 29, 2018
Brief History of JavaScript
October 28, 2017
Proxy Servers
October 24, 2017

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/asymptotic-notation.html b/guides/asymptotic-notation.html index 9b9ead6a2..ec3518446 100644 --- a/guides/asymptotic-notation.html +++ b/guides/asymptotic-notation.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·April 3, 2021·Improve this Guide

Asymptotic Notation

Learn the basics of measuring the time and space complexity of algorithms

Asymptotic notation is the standard way of measuring the time and space that an algorithm will consume as the input grows. In one of my last guides, I covered "Big-O notation" and a lot of you asked for a similar one for Asymptotic notation. You can find the previous guide here.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·April 3, 2021·Improve this Guide

Asymptotic Notation

Learn the basics of measuring the time and space complexity of algorithms

Asymptotic notation is the standard way of measuring the time and space that an algorithm will consume as the input grows. In one of my last guides, I covered "Big-O notation" and a lot of you asked for a similar one for Asymptotic notation. You can find the previous guide here.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/avoid-render-blocking-javascript-with-async-defer.html b/guides/avoid-render-blocking-javascript-with-async-defer.html index 040553ae0..04f9e82c1 100644 --- a/guides/avoid-render-blocking-javascript-with-async-defer.html +++ b/guides/avoid-render-blocking-javascript-with-async-defer.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·September 10, 2021·Improve this Guide

Async and Defer Script Loading

Learn how to avoid render blocking JavaScript using async and defer scripts.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·September 10, 2021·Improve this Guide

Async and Defer Script Loading

Learn how to avoid render blocking JavaScript using async and defer scripts.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/basic-authentication.html b/guides/basic-authentication.html index abe6e670f..8e625f424 100644 --- a/guides/basic-authentication.html +++ b/guides/basic-authentication.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·May 19, 2021·Improve this Guide

Basic Authentication

Understand what is basic authentication and how it is implemented

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·May 19, 2021·Improve this Guide

Basic Authentication

Understand what is basic authentication and how it is implemented

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/big-o-notation.html b/guides/big-o-notation.html index 73610f680..249938707 100644 --- a/guides/big-o-notation.html +++ b/guides/big-o-notation.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·March 15, 2021·Improve this Guide

Big-O Notation

Easy to understand explanation of Big-O notation without any fancy terms

Big-O notation is the mathematical notation that helps analyse the algorithms to get an idea about how they might perform as the input grows. The image below explains Big-O in a simple way without using any fancy terminology.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·March 15, 2021·Improve this Guide

Big-O Notation

Easy to understand explanation of Big-O notation without any fancy terms

Big-O notation is the mathematical notation that helps analyse the algorithms to get an idea about how they might perform as the input grows. The image below explains Big-O in a simple way without using any fancy terminology.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/character-encodings.html b/guides/character-encodings.html index 4258e9e56..55d64fa56 100644 --- a/guides/character-encodings.html +++ b/guides/character-encodings.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·May 14, 2021·Improve this Guide

Character Encodings

Covers the basics of character encodings and explains ASCII vs Unicode

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·May 14, 2021·Improve this Guide

Character Encodings

Covers the basics of character encodings and explains ASCII vs Unicode

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/ci-cd.html b/guides/ci-cd.html index 0014cd236..a1220faf2 100644 --- a/guides/ci-cd.html +++ b/guides/ci-cd.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·July 9, 2021·Improve this Guide

What is CI and CD?

Learn the basics of CI/CD and how to implement that with GitHub Actions.

The image below details the differences between the continuous integration and continuous delivery. Also, here is the accompanying video on implementing that with GitHub actions.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·July 9, 2021·Improve this Guide

What is CI and CD?

Learn the basics of CI/CD and how to implement that with GitHub Actions.

The image below details the differences between the continuous integration and continuous delivery. Also, here is the accompanying video on implementing that with GitHub actions.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/design-patterns-for-humans.html b/guides/design-patterns-for-humans.html index 9d247e71a..ae856670e 100644 --- a/guides/design-patterns-for-humans.html +++ b/guides/design-patterns-for-humans.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +

Wrap Up Folks

And that about wraps it up. I will continue to improve this, so you might want to watch/star this repository to revisit. Also, I have plans on writing the same about the architectural patterns, stay tuned for it.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/dhcp-in-one-picture.html b/guides/dhcp-in-one-picture.html index f3eb1061b..b3c7a056c 100644 --- a/guides/dhcp-in-one-picture.html +++ b/guides/dhcp-in-one-picture.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·April 28, 2021·Improve this Guide

DHCP in One Picture

Here is what happens when a new device joins the network.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·April 28, 2021·Improve this Guide

DHCP in One Picture

Here is what happens when a new device joins the network.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/dns-in-one-picture.html b/guides/dns-in-one-picture.html index 3ae42c44b..961f9be04 100644 --- a/guides/dns-in-one-picture.html +++ b/guides/dns-in-one-picture.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·December 4, 2018·Improve this Guide

DNS in One Picture

Quick illustrative guide on how a website is found on the internet.

DNS or Domain Name System is one of the fundamental blocks of the internet. As a developer, you should have at-least the basic understanding of how it works. This article is a brief introduction to what is DNS and how it works.

DNS at its simplest is like a phonebook on your mobile phone. Whenever you have to call one of your contacts, you can either dial their number from your memory or use their name which will then be used by your mobile phone to search their number in your phone book to call them. Every time you make a new friend, or your existing friend gets a mobile phone, you have to memorize their phone number or save it in your phonebook to be able to call them later on. DNS or Domain Name System, in a similar fashion, is a mechanism that allows you to browse websites on the internet. Just like your mobile phone does not know how to call without knowing the phone number, your browser does not know how to open a website just by the domain name; it needs to know the IP Address for the website to open. You can either type the IP Address to open, or provide the domain name and press enter which will then be used by your browser to find the IP address by going through several hoops. The picture below is the illustration of how your browser finds a website on the internet.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·December 4, 2018·Improve this Guide

DNS in One Picture

Quick illustrative guide on how a website is found on the internet.

DNS or Domain Name System is one of the fundamental blocks of the internet. As a developer, you should have at-least the basic understanding of how it works. This article is a brief introduction to what is DNS and how it works.

DNS at its simplest is like a phonebook on your mobile phone. Whenever you have to call one of your contacts, you can either dial their number from your memory or use their name which will then be used by your mobile phone to search their number in your phone book to call them. Every time you make a new friend, or your existing friend gets a mobile phone, you have to memorize their phone number or save it in your phonebook to be able to call them later on. DNS or Domain Name System, in a similar fashion, is a mechanism that allows you to browse websites on the internet. Just like your mobile phone does not know how to call without knowing the phone number, your browser does not know how to open a website just by the domain name; it needs to know the IP Address for the website to open. You can either type the IP Address to open, or provide the domain name and press enter which will then be used by your browser to find the IP address by going through several hoops. The picture below is the illustration of how your browser finds a website on the internet.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/history-of-javascript.html b/guides/history-of-javascript.html index a7ec513b9..6461aa942 100644 --- a/guides/history-of-javascript.html +++ b/guides/history-of-javascript.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·October 28, 2017·Improve this Guide

Brief History of JavaScript

How JavaScript was introduced and evolved over the years

Around 10 years ago, Jeff Atwood (the founder of stackoverflow) made a case that JavaScript is going to be the future and he coined the “Atwood Law” which states that Any application that can be written in JavaScript will eventually be written in JavaScript. Fast-forward to today, 10 years later, if you look at it it rings truer than ever. JavaScript is continuing to gain more and more adoption.

JavaScript is announced

JavaScript was initially created by Brendan Eich of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initally it was named Mocha by the creator, which was later renamed to LiveScript. In 1996, about a year later after the release, NetScape decided to rename it to be JavaScript with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.

ES1, ES2 and ES3

In 1996, Netscape decided to submit it to ECMA International with the hopes of getting it standardized. First edition of the standard specification was released in 1997 and the language was standardized. After the initial release, ECMAScript was continued to be worked upon and in no-time two more versions were released ECMAScript 2 in 1998 and ECMAScript 3 in 1999.

Decade of Silence and ES4

After the release of ES3 in 1999, there was a complete silence for a decade and no changes were made to the official standard. There was some work on the fourth edition in the initial days; some of the features that were being discussed included classes, modules, static typings, destructuring etc. It was being targeted to be released by 2008 but was abandoned due to political differences concerning language complexity. However, the vendors kept introducing the extensions to the language and the developers were left scratching their heads — adding polyfills to battle compatibility issues between different browsers.

From silence to ES5

Google, Microsoft, Yahoo and other disputers of ES4 came together and decided to work on a less ambitious update to ES3 tentatively named ES3.1. But the teams were still fighting about what to include from ES4 and what not. Finally, in 2009 ES5 was released mainly focusing on fixing the compatibility and security issues etc. But there wasn’t much of a splash in the water — it took ages for the vendors to incorporate the standards and many developers were still using ES3 without being aware of the “modern” standards.

Release of ES6 — ECMAScript 2015

After a few years of the release of ES5, things started to change, TC39 (the committee under ECMA international responsible for ECMAScript standardization) kept working on the next version of ECMAScript (ES6) which was originally named ES Harmony, before being eventually released with the name ES2015. ES2015 adds significant features and syntactic sugar to allow writing complex applications. Some of the features that ES6 has to offer, include Classes, Modules, Arrows, Enhanced object literals, Template strings, Destructuring, Default param values + rest + spread, Let and Const, Iterators + for..of, Generators, Maps + Sets, Proxies, Symbols, Promises, math + number + string + array + object APIs etc

Browser support for ES6 is still scarce but everything that ES6 has to offer is still available to developers by transpiling the ES6 code to ES5. With the release of 6th version of ECMAScript, TC39 decided to move to yearly model of releasing updates to ECMAScript so to make sure that the new features are added as soon as they are approved and we don’t have to wait for the full specification to be drafted and approved — thus 6th version of ECMAScript was renamed as ECMAScript 2015 or ES2015 before the release in June 2015. And the next versions of ECMAScript were decided to published in June of every year.

Release of ES7 — ECMAScript 2016

In June 2016, seventh version of ECMAScript was released. As ECMAScript has been moved to an yearly release model, ECMAScript 2016 (ES2016) comparatively did not have much to offer. ES2016 includes just two new features

  • Exponentiation operator **
  • Array.prototype.includes

Release of ES8 — ECMAScript 2017

The eighth version of ECMAScript was released in June 2017. The key highlight of ES8 was the addition of async functions. Here is the list of new features in ES8

  • Object.values() and Object.entries()
  • String padding i.e. String.prototype.padEnd() and String.prototype.padStart()
  • Object.getOwnPropertyDescriptors
  • Trailing commas in function parameter lists and calls
  • Async functions

What is ESNext then?

ESNext is a dynamic name that refers to whatever the current version of ECMAScript is at the given time. For example, at the time of this writing ES2017 or ES8 is ESNext.

What does the future hold?

Since the release of ES6, TC39 has quite streamlined their process. TC39 operates through a Github organization now and there are several proposals for new features or syntax to be added to the next versions of ECMAScript. Any one can go ahead and submit a proposal thus resulting in increasing the participation from the community. Every proposal goes through four stages of maturity before it makes it into the specification.

And that about wraps it up. Feel free to leave your feedback in the comments section below. Also here are the links to original language specifications ES6, ES7 and ES8.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·October 28, 2017·Improve this Guide

Brief History of JavaScript

How JavaScript was introduced and evolved over the years

Around 10 years ago, Jeff Atwood (the founder of stackoverflow) made a case that JavaScript is going to be the future and he coined the “Atwood Law” which states that Any application that can be written in JavaScript will eventually be written in JavaScript. Fast-forward to today, 10 years later, if you look at it it rings truer than ever. JavaScript is continuing to gain more and more adoption.

JavaScript is announced

JavaScript was initially created by Brendan Eich of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initally it was named Mocha by the creator, which was later renamed to LiveScript. In 1996, about a year later after the release, NetScape decided to rename it to be JavaScript with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.

ES1, ES2 and ES3

In 1996, Netscape decided to submit it to ECMA International with the hopes of getting it standardized. First edition of the standard specification was released in 1997 and the language was standardized. After the initial release, ECMAScript was continued to be worked upon and in no-time two more versions were released ECMAScript 2 in 1998 and ECMAScript 3 in 1999.

Decade of Silence and ES4

After the release of ES3 in 1999, there was a complete silence for a decade and no changes were made to the official standard. There was some work on the fourth edition in the initial days; some of the features that were being discussed included classes, modules, static typings, destructuring etc. It was being targeted to be released by 2008 but was abandoned due to political differences concerning language complexity. However, the vendors kept introducing the extensions to the language and the developers were left scratching their heads — adding polyfills to battle compatibility issues between different browsers.

From silence to ES5

Google, Microsoft, Yahoo and other disputers of ES4 came together and decided to work on a less ambitious update to ES3 tentatively named ES3.1. But the teams were still fighting about what to include from ES4 and what not. Finally, in 2009 ES5 was released mainly focusing on fixing the compatibility and security issues etc. But there wasn’t much of a splash in the water — it took ages for the vendors to incorporate the standards and many developers were still using ES3 without being aware of the “modern” standards.

Release of ES6 — ECMAScript 2015

After a few years of the release of ES5, things started to change, TC39 (the committee under ECMA international responsible for ECMAScript standardization) kept working on the next version of ECMAScript (ES6) which was originally named ES Harmony, before being eventually released with the name ES2015. ES2015 adds significant features and syntactic sugar to allow writing complex applications. Some of the features that ES6 has to offer, include Classes, Modules, Arrows, Enhanced object literals, Template strings, Destructuring, Default param values + rest + spread, Let and Const, Iterators + for..of, Generators, Maps + Sets, Proxies, Symbols, Promises, math + number + string + array + object APIs etc

Browser support for ES6 is still scarce but everything that ES6 has to offer is still available to developers by transpiling the ES6 code to ES5. With the release of 6th version of ECMAScript, TC39 decided to move to yearly model of releasing updates to ECMAScript so to make sure that the new features are added as soon as they are approved and we don’t have to wait for the full specification to be drafted and approved — thus 6th version of ECMAScript was renamed as ECMAScript 2015 or ES2015 before the release in June 2015. And the next versions of ECMAScript were decided to published in June of every year.

Release of ES7 — ECMAScript 2016

In June 2016, seventh version of ECMAScript was released. As ECMAScript has been moved to an yearly release model, ECMAScript 2016 (ES2016) comparatively did not have much to offer. ES2016 includes just two new features

  • Exponentiation operator **
  • Array.prototype.includes

Release of ES8 — ECMAScript 2017

The eighth version of ECMAScript was released in June 2017. The key highlight of ES8 was the addition of async functions. Here is the list of new features in ES8

  • Object.values() and Object.entries()
  • String padding i.e. String.prototype.padEnd() and String.prototype.padStart()
  • Object.getOwnPropertyDescriptors
  • Trailing commas in function parameter lists and calls
  • Async functions

What is ESNext then?

ESNext is a dynamic name that refers to whatever the current version of ECMAScript is at the given time. For example, at the time of this writing ES2017 or ES8 is ESNext.

What does the future hold?

Since the release of ES6, TC39 has quite streamlined their process. TC39 operates through a Github organization now and there are several proposals for new features or syntax to be added to the next versions of ECMAScript. Any one can go ahead and submit a proposal thus resulting in increasing the participation from the community. Every proposal goes through four stages of maturity before it makes it into the specification.

And that about wraps it up. Feel free to leave your feedback in the comments section below. Also here are the links to original language specifications ES6, ES7 and ES8.

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file diff --git a/guides/http-caching.html b/guides/http-caching.html index 1c4e5432d..a7f28a886 100644 --- a/guides/http-caching.html +++ b/guides/http-caching.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -

Open Source

The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

Stay Informed

Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

Support the project by paying as little as 5$ per month

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh·FAQs·Terms·Privacy

\ No newline at end of file +Also it should be noted that you should not cross the upper limit of one year as it might not be honored
  • Look and decide do you even need caching for any dynamic content, if yes how long it should be. For example, in case of some RSS feed of a blog there could be the caching of a few hours but there couldn't be any caching for inventory items in an ERP.
  • Always add the validators (preferably ETags) in your response.
  • Pay attention while choosing the visibility (private or public) of the cached content. Make sure that you do not accidentally cache any user-specific or sensitive content in any public proxies. When in doubt, do not use cache at all.
  • Separate the content that changes often from the content that doesn't change that often (e.g. in javascript bundles) so that when it is updated it doesn't need to make the whole cached content stale.
  • Test and monitor the caching headers being served by your site. You can use the browser console or curl -I http://some-url.com for that purpose.
  • And that about wraps it up. Stay tuned for more!

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/jwt-authentication.html b/guides/jwt-authentication.html index efb2307dc..21af587c5 100644 --- a/guides/jwt-authentication.html +++ b/guides/jwt-authentication.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 20, 2021·Improve this Guide

    JWT Authentication

    Understand what is JWT authentication and how is it implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 20, 2021·Improve this Guide

    JWT Authentication

    Understand what is JWT authentication and how is it implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/levels-of-seniority.html b/guides/levels-of-seniority.html index ca4214fad..fa256af18 100644 --- a/guides/levels-of-seniority.html +++ b/guides/levels-of-seniority.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·December 3, 2020·Improve this Guide

    Levels of Seniority

    How to Step Up as a Junior, Mid Level or a Senior Developer?

    I have been working on redoing the roadmaps – splitting the skillset based on the seniority levels to make them easier to follow and not scare the new developers away. Since the roadmaps are going to be just about the technical knowledge, I thought it would be a good idea to reiterate and have an article on what I think of different seniority roles.

    I have seen many organizations decide the seniority of developers by giving more significance to the years of experience than they should. I have seen developers labeled "Junior" doing the work of Senior Developers and I have seen "Lead" developers who weren't even qualified to be called "Senior". The seniority of a developer cannot just be decided by their age, years of experience or technical knowledge that they have got. There are other factors in play here -- their perception of work, how they interact with their peers and how they approach problems. We discuss these three key factors in detail for each of the seniority levels below.

    Different Seniority Titles

    Different organizations might have different seniority titles but they mainly fall into three categories:

    • Junior Developer
    • Mid Level Developer
    • Senior Developer

    Junior Developer

    Junior developers are normally fresh graduates and it's either they don't have or they have minimal industry experience. Not only they have weak coding skills but there are also a few other things that give Junior developers away:

    • Their main mantra is "making it work" without giving much attention to how the solution is achieved. To them, a working software and good software are equivalent.
    • They usually require very specific and structured directions to achieve something. They suffer from tunnel vision, need supervision and continuous guidance to be effective team members.
    • Most of the Junior developers just try to live up to the role and, when stuck, they might leave work for a senior developer instead of at least trying to take a stab at something.
    • They don't know about the business side of the company and don't realize how management/sales/marketing/etc think and they don't realize how much rework, wasted effort, and end-user aggravation could be saved by getting to know the business domain.
    • Over-engineering is a major problem, often leading to fragility and bugs.
    • When given a problem, they often try to fix just the current problem a.k.a. fixing the symptoms instead of fixing the root problem.
    • You might notice the "Somebody Else's Problem" behavior from them.
    • They don't know what or how much they don't know, thanks to the Dunning–Kruger effect.
    • They don't take initiatives and they might be afraid to work on an unfamiliar codebase.
    • They don't participate in team discussions.

    Being a Junior developer in the team is not necessarily a bad thing; since you are just starting out, you are not expected to be a know-it-all person. However, it is your responsibility to learn, gain experience, not get stuck with the "Junior" title and improve yourself. Here are a few tips for Junior developers to help move up the ladder of seniority:

    • All sorts of problems can be solved if you work on them long enough. Do not give up if Stack Overflow or an issue on GitHub doesn't have an answer. Saying "I am stuck, but I have tried X, Y, and Z. Do you have any pointers?" to your lead is much better than saying "This is beyond me."
    • Read a lot of code, not just code in the projects that you are working on, but reference/framework source code, open-source. Ask your fellow developers, perhaps on Reddit too, about the good open-source examples for the language/tools of your choice.
    • Do personal side-projects, share them with people, contribute to the open-source community. Reach out to people for help. You will be surprised how much support you can get from the community. I still remember my first open-source project on GitHub from around 6 years ago which was a small PHP script (a library) that fetched details for a given address from Google's Geocoding API. The codebase was super messy, it did not have any tests, did not have any linters or sniffers, and it did not have any CI because I didn't know about any of this at that time. I am not sure how but one kind soul somehow found the project, forked it, refactored it, "modernized" it, added linting, code sniffing, added CI and opened the pull request. This one pull request taught me so many things that I might have never learned that fast on my own because I was still in college, working for a small service-based company and doing just small websites all on my own without knowing what is right and what is not. This one PR on GitHub was my introduction to open-source and I owe everything to that.
    • Avoid what is known as "Somebody Else's Problem Field" behavior.
    • When given a problem to solve, try to identify the root cause and fix that instead of fixing the symptoms. And remember, not being able to reproduce means not solved. It is solved when you understand why it occurred and why it no longer does.
    • Have respect for the code that was written before you. Be generous when passing judgment on the architecture or the design decisions made in the codebase. Understand that code is often ugly and weird for a reason other than incompetence. Learning to live with and thrive with legacy code is a great skill. Never assume anybody is stupid. Instead, figure out how these intelligent, well-intentioned and experienced people have come to a decision that is stupid now. Approach inheriting legacy code with an "opportunity mindset" rather than a complaining one.
    • It's okay to not know things. You don't need to be ashamed of not knowing things already. There are no stupid questions, ask however many questions that would allow you to work effectively.
    • Don't let yourself be limited by the job title that you have. Keep working on your self-improvement.
    • Do your homework. Predict what’s coming down the pipe. Be involved in the team discussions. Even if you are wrong, you will learn something.
    • Learn about the domain that you are working with. Understand the product end-to-end as an end-user. Do not assume things, ask questions and get things cleared when in doubt.
    • Learn to communicate effectively - soft skills matter. Learn how to write good emails, how to present your work, how to phrase your questions in a thoughtful manner.
    • Sit with the senior developers, watch them work, find a mentor. No one likes a know-it-all. Get hold of your ego and be humble enough to take lessons from experienced people.
    • Don't just blindly follow the advice of "experts", take it with a grain of salt.
    • If you are asked to provide an estimate for some work, do not give an answer unless you have all the details to make a reasonable estimate. If you are forced to do that, pad it 2x or more depending on how much you don't know about what needs to be done for the task to be marked 'done'.
    • Take some time to learn how to use a debugger. Debuggers are quite beneficial when navigating new, undocumented or poorly documented codebase, or to debug weird issues.
    • Avoid saying "it works on my machine" -- yes, I have heard that a lot.
    • Try to turn any feelings of inadequacy or imposter syndrome into energy to push yourself forward and increase your skills and knowledge.

    Mid Level Developers

    The next level after the Junior developers is Mid Level developers. They are technically stronger than the Junior developers and can work with minimal supervision. They still have some issues to address in order to jump to Senior level.

    Intermediate developers are more competent than the Junior developer. They start to see the flaws in their old codebase. They gain the knowledge but they get trapped into the next chain i.e. messing things up while trying to do them "the right way" e.g. hasty abstractions, overuse or unnecessary usage of Design Patterns -- they may be able to provide solution faster than the Junior developers but the solution might put you into another rabbit-hole in the long run. Without supervision, they might delay the execution while trying to "do things properly". They don't know when to make tradeoffs and they still don't know when to be dogmatic and when to be pragmatic. They can easily become attached to their solution, become myopic, and be unable to take feedback.

    Mid-level developers are quite common. Most of the organizations wrongly label them as "Senior Developers". However, they need further mentoring in order to become Senior Developers. The next section describes the responsibilities of a senior developer and how you can become one.

    Senior Developers

    Senior developers are the next level after the Mid-level developers. They are the people who can get things done on their own without any supervision and without creating any issues down the road. They are more mature, have gained experience by delivering both good and bad software in the past and have learned from it — they know how to be pragmatic. Here is the list of things that are normally expected of a Senior Developer:

    • With their past experiences, mistakes made, issues faced by over-designed or under-designed software, they can foresee the problems and persuade the direction of the codebase or the architecture.
    • They don't have a "Shiny-Toy" syndrome. They are pragmatic in the execution. They can make the tradeoffs when required, and they know why. They know where to be dogmatic and where to be pragmatic.
    • They have a good picture of the field, know what the best tool for the job is in most cases (even if they don't know the tool). They have the innate ability to pick up a new tool/language/paradigm/etc in order to solve a problem that requires it.
    • They are aware they're on a team. They view it as a part of their responsibility to mentor others. This can range from pair programming with junior devs to taking un-glorious tasks of writing docs or tests or whatever else needs to be done.
    • They have a deep understanding of the domain - they know about the business side of the company and realize how management/sales/marketing/etc think and benefit from their knowledge of the business domain during the development.
    • They don't make empty complaints, they make judgments based on the empirical evidence and they have suggestions for solutions.
    • They think much more than just code - they know that their job is to provide solutions to the problems and not just to write code.
    • They have the ability to take on large ill-defined problems, define them, break them up, and execute the pieces. A senior developer can take something big and abstract, and run with it. They will come up with a few options, discuss them with the team and implement them.
    • They have respect for the code that was written before them. They are generous when passing judgment on the architecture or the design decisions made in the codebase. They approach inheriting legacy code with an "opportunity mindset" rather than a complaining one.
    • They know how to give feedback without hurting anyone.

    Conclusion

    All teams are made up of a mix of all these seniority roles. Being content with your role is a bad thing and you should always strive to improve yourself for the next step. This article is based on my beliefs and observations in the industry. Lots of companies care more for the years of experience to decide the seniority which is a crappy metric -- you don't gain experience just by spending years. You gain it by continuously solving different sorts of problems, irrespective of the number of years you spend in the industry. I have seen fresh graduates having no industry experience get up to speed quickly and producing work of a Senior Engineer and I have seen Senior developers labeled "senior" merely because of their age and "years of experience".

    The most important traits that you need to have in order to step up in your career are: not settling with mediocrity, having an open mindset, being humble, learning from your mistakes, working on the challenging problems and having an opportunity mindset rather than a complaining one.

    With that said, this post comes to an end. What are your thoughts on the levels of seniority of developers? Feel free to send improvements to this guide. Until next time, stay tuned!

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·December 3, 2020·Improve this Guide

    Levels of Seniority

    How to Step Up as a Junior, Mid Level or a Senior Developer?

    I have been working on redoing the roadmaps – splitting the skillset based on the seniority levels to make them easier to follow and not scare the new developers away. Since the roadmaps are going to be just about the technical knowledge, I thought it would be a good idea to reiterate and have an article on what I think of different seniority roles.

    I have seen many organizations decide the seniority of developers by giving more significance to the years of experience than they should. I have seen developers labeled "Junior" doing the work of Senior Developers and I have seen "Lead" developers who weren't even qualified to be called "Senior". The seniority of a developer cannot just be decided by their age, years of experience or technical knowledge that they have got. There are other factors in play here -- their perception of work, how they interact with their peers and how they approach problems. We discuss these three key factors in detail for each of the seniority levels below.

    Different Seniority Titles

    Different organizations might have different seniority titles but they mainly fall into three categories:

    • Junior Developer
    • Mid Level Developer
    • Senior Developer

    Junior Developer

    Junior developers are normally fresh graduates and it's either they don't have or they have minimal industry experience. Not only they have weak coding skills but there are also a few other things that give Junior developers away:

    • Their main mantra is "making it work" without giving much attention to how the solution is achieved. To them, a working software and good software are equivalent.
    • They usually require very specific and structured directions to achieve something. They suffer from tunnel vision, need supervision and continuous guidance to be effective team members.
    • Most of the Junior developers just try to live up to the role and, when stuck, they might leave work for a senior developer instead of at least trying to take a stab at something.
    • They don't know about the business side of the company and don't realize how management/sales/marketing/etc think and they don't realize how much rework, wasted effort, and end-user aggravation could be saved by getting to know the business domain.
    • Over-engineering is a major problem, often leading to fragility and bugs.
    • When given a problem, they often try to fix just the current problem a.k.a. fixing the symptoms instead of fixing the root problem.
    • You might notice the "Somebody Else's Problem" behavior from them.
    • They don't know what or how much they don't know, thanks to the Dunning–Kruger effect.
    • They don't take initiatives and they might be afraid to work on an unfamiliar codebase.
    • They don't participate in team discussions.

    Being a Junior developer in the team is not necessarily a bad thing; since you are just starting out, you are not expected to be a know-it-all person. However, it is your responsibility to learn, gain experience, not get stuck with the "Junior" title and improve yourself. Here are a few tips for Junior developers to help move up the ladder of seniority:

    • All sorts of problems can be solved if you work on them long enough. Do not give up if Stack Overflow or an issue on GitHub doesn't have an answer. Saying "I am stuck, but I have tried X, Y, and Z. Do you have any pointers?" to your lead is much better than saying "This is beyond me."
    • Read a lot of code, not just code in the projects that you are working on, but reference/framework source code, open-source. Ask your fellow developers, perhaps on Reddit too, about the good open-source examples for the language/tools of your choice.
    • Do personal side-projects, share them with people, contribute to the open-source community. Reach out to people for help. You will be surprised how much support you can get from the community. I still remember my first open-source project on GitHub from around 6 years ago which was a small PHP script (a library) that fetched details for a given address from Google's Geocoding API. The codebase was super messy, it did not have any tests, did not have any linters or sniffers, and it did not have any CI because I didn't know about any of this at that time. I am not sure how but one kind soul somehow found the project, forked it, refactored it, "modernized" it, added linting, code sniffing, added CI and opened the pull request. This one pull request taught me so many things that I might have never learned that fast on my own because I was still in college, working for a small service-based company and doing just small websites all on my own without knowing what is right and what is not. This one PR on GitHub was my introduction to open-source and I owe everything to that.
    • Avoid what is known as "Somebody Else's Problem Field" behavior.
    • When given a problem to solve, try to identify the root cause and fix that instead of fixing the symptoms. And remember, not being able to reproduce means not solved. It is solved when you understand why it occurred and why it no longer does.
    • Have respect for the code that was written before you. Be generous when passing judgment on the architecture or the design decisions made in the codebase. Understand that code is often ugly and weird for a reason other than incompetence. Learning to live with and thrive with legacy code is a great skill. Never assume anybody is stupid. Instead, figure out how these intelligent, well-intentioned and experienced people have come to a decision that is stupid now. Approach inheriting legacy code with an "opportunity mindset" rather than a complaining one.
    • It's okay to not know things. You don't need to be ashamed of not knowing things already. There are no stupid questions, ask however many questions that would allow you to work effectively.
    • Don't let yourself be limited by the job title that you have. Keep working on your self-improvement.
    • Do your homework. Predict what’s coming down the pipe. Be involved in the team discussions. Even if you are wrong, you will learn something.
    • Learn about the domain that you are working with. Understand the product end-to-end as an end-user. Do not assume things, ask questions and get things cleared when in doubt.
    • Learn to communicate effectively - soft skills matter. Learn how to write good emails, how to present your work, how to phrase your questions in a thoughtful manner.
    • Sit with the senior developers, watch them work, find a mentor. No one likes a know-it-all. Get hold of your ego and be humble enough to take lessons from experienced people.
    • Don't just blindly follow the advice of "experts", take it with a grain of salt.
    • If you are asked to provide an estimate for some work, do not give an answer unless you have all the details to make a reasonable estimate. If you are forced to do that, pad it 2x or more depending on how much you don't know about what needs to be done for the task to be marked 'done'.
    • Take some time to learn how to use a debugger. Debuggers are quite beneficial when navigating new, undocumented or poorly documented codebase, or to debug weird issues.
    • Avoid saying "it works on my machine" -- yes, I have heard that a lot.
    • Try to turn any feelings of inadequacy or imposter syndrome into energy to push yourself forward and increase your skills and knowledge.

    Mid Level Developers

    The next level after the Junior developers is Mid Level developers. They are technically stronger than the Junior developers and can work with minimal supervision. They still have some issues to address in order to jump to Senior level.

    Intermediate developers are more competent than the Junior developer. They start to see the flaws in their old codebase. They gain the knowledge but they get trapped into the next chain i.e. messing things up while trying to do them "the right way" e.g. hasty abstractions, overuse or unnecessary usage of Design Patterns -- they may be able to provide solution faster than the Junior developers but the solution might put you into another rabbit-hole in the long run. Without supervision, they might delay the execution while trying to "do things properly". They don't know when to make tradeoffs and they still don't know when to be dogmatic and when to be pragmatic. They can easily become attached to their solution, become myopic, and be unable to take feedback.

    Mid-level developers are quite common. Most of the organizations wrongly label them as "Senior Developers". However, they need further mentoring in order to become Senior Developers. The next section describes the responsibilities of a senior developer and how you can become one.

    Senior Developers

    Senior developers are the next level after the Mid-level developers. They are the people who can get things done on their own without any supervision and without creating any issues down the road. They are more mature, have gained experience by delivering both good and bad software in the past and have learned from it — they know how to be pragmatic. Here is the list of things that are normally expected of a Senior Developer:

    • With their past experiences, mistakes made, issues faced by over-designed or under-designed software, they can foresee the problems and persuade the direction of the codebase or the architecture.
    • They don't have a "Shiny-Toy" syndrome. They are pragmatic in the execution. They can make the tradeoffs when required, and they know why. They know where to be dogmatic and where to be pragmatic.
    • They have a good picture of the field, know what the best tool for the job is in most cases (even if they don't know the tool). They have the innate ability to pick up a new tool/language/paradigm/etc in order to solve a problem that requires it.
    • They are aware they're on a team. They view it as a part of their responsibility to mentor others. This can range from pair programming with junior devs to taking un-glorious tasks of writing docs or tests or whatever else needs to be done.
    • They have a deep understanding of the domain - they know about the business side of the company and realize how management/sales/marketing/etc think and benefit from their knowledge of the business domain during the development.
    • They don't make empty complaints, they make judgments based on the empirical evidence and they have suggestions for solutions.
    • They think much more than just code - they know that their job is to provide solutions to the problems and not just to write code.
    • They have the ability to take on large ill-defined problems, define them, break them up, and execute the pieces. A senior developer can take something big and abstract, and run with it. They will come up with a few options, discuss them with the team and implement them.
    • They have respect for the code that was written before them. They are generous when passing judgment on the architecture or the design decisions made in the codebase. They approach inheriting legacy code with an "opportunity mindset" rather than a complaining one.
    • They know how to give feedback without hurting anyone.

    Conclusion

    All teams are made up of a mix of all these seniority roles. Being content with your role is a bad thing and you should always strive to improve yourself for the next step. This article is based on my beliefs and observations in the industry. Lots of companies care more for the years of experience to decide the seniority which is a crappy metric -- you don't gain experience just by spending years. You gain it by continuously solving different sorts of problems, irrespective of the number of years you spend in the industry. I have seen fresh graduates having no industry experience get up to speed quickly and producing work of a Senior Engineer and I have seen Senior developers labeled "senior" merely because of their age and "years of experience".

    The most important traits that you need to have in order to step up in your career are: not settling with mediocrity, having an open mindset, being humble, learning from your mistakes, working on the challenging problems and having an opportunity mindset rather than a complaining one.

    With that said, this post comes to an end. What are your thoughts on the levels of seniority of developers? Feel free to send improvements to this guide. Until next time, stay tuned!

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/oauth.html b/guides/oauth.html index d410467b7..8f34292fa 100644 --- a/guides/oauth.html +++ b/guides/oauth.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 28, 2021·Improve this Guide

    OAuth — Open Authorization

    Learn and understand what is OAuth and how it works

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 28, 2021·Improve this Guide

    OAuth — Open Authorization

    Learn and understand what is OAuth and how it works

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/proxy-servers.html b/guides/proxy-servers.html index 9c3c21ce1..a1efa55a9 100644 --- a/guides/proxy-servers.html +++ b/guides/proxy-servers.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Ebrahim Bharmal·October 24, 2017·Improve this Guide

    Proxy Servers

    How do proxy servers work and what are forward and reverse proxies?

    Internet has connected people across the world using social media and audio/video calling features along with providing an overabundance of knowledge and tools. All this comes with an inherent danger of security and privacy breaches. In this guide we will talk about proxies which play a vital role in mitigating these risks. We will cover the following topics in this guide:

    Proxy Server

    Every web request which is sent from the client to a web server goes through some type of proxy server. A proxy server acts as a gateway between client (you) and the internet and separates end-users from the websites you browse. It replaces the source IP address of the web request with the proxy server's IP address and then forwards it to the web server. The web server is unaware of the client, it only sees the proxy server.

    Proxy Server Description

    NOTE: This is not an accurate description rather just an illustration.

    Proxy servers serve as a single point of control making it easier to enforce security policies. It also provides caching mechanism which stores the requested web pages on the proxy server to improve performance. If the requested web-page is available in cache memory then instead of forwarding the request to the web-server it will send the cached webpage back to the client. This saves big companies thousands of dollars by reducing load on their servers as their website is visited by millions of users every day.

    Forward Proxy Server

    A forward proxy is generally implemented on the client side and sits in front of multiple clients or client sources. Forward proxy servers are mainly used by companies to manage internet usage of their employees and restrict content. It is also used as a firewall to secure company's network by blocking any request which would pose threat to the companies's network. Proxy servers are also used to bypass geo-restriction and browse content which might be blocked in user's country. It enables users to browse anonymously, as the proxy server masks their details from the website's servers.

    Forward Proxy Description

    NOTE: This is not an accurate description rather just an illustration

    Reverse Proxy Server

    Reverse proxy servers are implemented on the server side instead of the client side. It sits in front of multiple webservers and manages the incoming requests by forwarding them to the web servers. It provides anonymity for the back-end web servers and not the client. Reverse proxy servers are generally used to perform tasks such as authentication, content caching, and encryption/decryption on behalf of the web server. These tasks would hog CPU cycles on the web server and degrade performance of the website by introducing high amount of delay in loading the webpage. Reverse proxies are also used as load balancers to distribute the incoming traffic efficiently among the web servers but it is not optimized for this task. In essence, reverse proxy server is a gateway to a web-server or group of web-servers.

    Reverse Proxy Description

    NOTE: This is not an accurate description rather just an illustration. Red lines represent server's response and black lines represent initial request from client(s).

    Summary

    A proxy server acts as a gateway between client (you) and the internet and separates end-users from the websites you browse. The position of the proxy server on the network determines whether it is a forward or a reverse proxy server. Forward proxy is implemented on the client side and sits in front of multiple clients or client sources and forwards requests to the web server. Reverse proxy servers are implemented on the server side it sits in front of multiple webservers and manages the incoming requests by forwarding them to the web servers.

    If all this was too much to take in, I have a simple analogy for you.

    At a restaurant the waiter/waitress takes your order and gives it to the kitchen head chef. The head chef then calls out the order and assigns tasks to everyone in the kitchen.

    In this analogy:

    • You are the client
    • Your order is the web request
    • Waiter/Waitress is your forward proxy server
    • Kitchen head chef is the reverse proxy server
    • Other chefs working in the kitchen are the web servers

    With that said our guide comes to an end. Thank you for reading and feel free to submit any updates to the guide using the links below.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Ebrahim Bharmal·October 24, 2017·Improve this Guide

    Proxy Servers

    How do proxy servers work and what are forward and reverse proxies?

    Internet has connected people across the world using social media and audio/video calling features along with providing an overabundance of knowledge and tools. All this comes with an inherent danger of security and privacy breaches. In this guide we will talk about proxies which play a vital role in mitigating these risks. We will cover the following topics in this guide:

    Proxy Server

    Every web request which is sent from the client to a web server goes through some type of proxy server. A proxy server acts as a gateway between client (you) and the internet and separates end-users from the websites you browse. It replaces the source IP address of the web request with the proxy server's IP address and then forwards it to the web server. The web server is unaware of the client, it only sees the proxy server.

    Proxy Server Description

    NOTE: This is not an accurate description rather just an illustration.

    Proxy servers serve as a single point of control making it easier to enforce security policies. It also provides caching mechanism which stores the requested web pages on the proxy server to improve performance. If the requested web-page is available in cache memory then instead of forwarding the request to the web-server it will send the cached webpage back to the client. This saves big companies thousands of dollars by reducing load on their servers as their website is visited by millions of users every day.

    Forward Proxy Server

    A forward proxy is generally implemented on the client side and sits in front of multiple clients or client sources. Forward proxy servers are mainly used by companies to manage internet usage of their employees and restrict content. It is also used as a firewall to secure company's network by blocking any request which would pose threat to the companies's network. Proxy servers are also used to bypass geo-restriction and browse content which might be blocked in user's country. It enables users to browse anonymously, as the proxy server masks their details from the website's servers.

    Forward Proxy Description

    NOTE: This is not an accurate description rather just an illustration

    Reverse Proxy Server

    Reverse proxy servers are implemented on the server side instead of the client side. It sits in front of multiple webservers and manages the incoming requests by forwarding them to the web servers. It provides anonymity for the back-end web servers and not the client. Reverse proxy servers are generally used to perform tasks such as authentication, content caching, and encryption/decryption on behalf of the web server. These tasks would hog CPU cycles on the web server and degrade performance of the website by introducing high amount of delay in loading the webpage. Reverse proxies are also used as load balancers to distribute the incoming traffic efficiently among the web servers but it is not optimized for this task. In essence, reverse proxy server is a gateway to a web-server or group of web-servers.

    Reverse Proxy Description

    NOTE: This is not an accurate description rather just an illustration. Red lines represent server's response and black lines represent initial request from client(s).

    Summary

    A proxy server acts as a gateway between client (you) and the internet and separates end-users from the websites you browse. The position of the proxy server on the network determines whether it is a forward or a reverse proxy server. Forward proxy is implemented on the client side and sits in front of multiple clients or client sources and forwards requests to the web server. Reverse proxy servers are implemented on the server side it sits in front of multiple webservers and manages the incoming requests by forwarding them to the web servers.

    If all this was too much to take in, I have a simple analogy for you.

    At a restaurant the waiter/waitress takes your order and gives it to the kitchen head chef. The head chef then calls out the order and assigns tasks to everyone in the kitchen.

    In this analogy:

    • You are the client
    • Your order is the web request
    • Waiter/Waitress is your forward proxy server
    • Kitchen head chef is the reverse proxy server
    • Other chefs working in the kitchen are the web servers

    With that said our guide comes to an end. Thank you for reading and feel free to submit any updates to the guide using the links below.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/random-numbers.html b/guides/random-numbers.html index be7fa2098..2087d518f 100644 --- a/guides/random-numbers.html +++ b/guides/random-numbers.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·March 14, 2021·Improve this Guide

    Random Numbers: Are they?

    Learn how they are generated and why they may not be truly random.

    Random numbers are everywhere from computer games to lottery systems, graphics software, statistical sampling, computer simulation and cryptography. Graphic below is a quick explanation to how the random numbers are generated and why they may not be truly random.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·March 14, 2021·Improve this Guide

    Random Numbers: Are they?

    Learn how they are generated and why they may not be truly random.

    Random numbers are everywhere from computer games to lottery systems, graphics software, statistical sampling, computer simulation and cryptography. Graphic below is a quick explanation to how the random numbers are generated and why they may not be truly random.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/scaling-databases.html b/guides/scaling-databases.html index b5e7bab4a..c77bbd902 100644 --- a/guides/scaling-databases.html +++ b/guides/scaling-databases.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·February 18, 2021·Improve this Guide

    Scaling Databases

    Learn the ups and downs of different database scaling strategies

    The chart below aims to give you a really basic understanding of how the capability of a DBMS is increased to handle a growing amount of load.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·February 18, 2021·Improve this Guide

    Scaling Databases

    Learn the ups and downs of different database scaling strategies

    The chart below aims to give you a really basic understanding of how the capability of a DBMS is increased to handle a growing amount of load.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/session-authentication.html b/guides/session-authentication.html index 6455aaf30..19a556c7d 100644 --- a/guides/session-authentication.html +++ b/guides/session-authentication.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 26, 2021·Improve this Guide

    Session Based Authentication

    Understand what is session based authentication and how it is implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 26, 2021·Improve this Guide

    Session Based Authentication

    Understand what is session based authentication and how it is implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/ssl-tls-https-ssh.html b/guides/ssl-tls-https-ssh.html index 951a44e24..399f0ee85 100644 --- a/guides/ssl-tls-https-ssh.html +++ b/guides/ssl-tls-https-ssh.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·April 22, 2021·Improve this Guide

    SSL vs TLS vs SSH

    Quick tidbit on the differences between SSL, TLS, HTTPS and SSH

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·April 22, 2021·Improve this Guide

    SSL vs TLS vs SSH

    Quick tidbit on the differences between SSL, TLS, HTTPS and SSH

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/sso.html b/guides/sso.html index 7499ee232..46007284d 100644 --- a/guides/sso.html +++ b/guides/sso.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 1, 2021·Improve this Guide

    SSO — Single Sign On

    Learn the basics of SAML and understand how does Single Sign On work.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 1, 2021·Improve this Guide

    SSO — Single Sign On

    Learn the basics of SAML and understand how does Single Sign On work.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/token-authentication.html b/guides/token-authentication.html index 092dcd4e3..ff860a223 100644 --- a/guides/token-authentication.html +++ b/guides/token-authentication.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 2, 2021·Improve this Guide

    Token Based Authentication

    Understand what is token based authentication and how it is implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·June 2, 2021·Improve this Guide

    Token Based Authentication

    Understand what is token based authentication and how it is implemented

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/torrent-client.html b/guides/torrent-client.html index 652085c5c..b9f35089a 100644 --- a/guides/torrent-client.html +++ b/guides/torrent-client.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +

    This isn't the full story

    For brevity, I included only a few of the important snippets of code. Notably, I left out all the glue code, parsing, unit tests, and the boring parts that build character. View my full implementation if you're interested.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/unfamiliar-codebase.html b/guides/unfamiliar-codebase.html index d3d82e917..fbe623728 100644 --- a/guides/unfamiliar-codebase.html +++ b/guides/unfamiliar-codebase.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 4, 2021·Improve this Guide

    Unfamiliar Codebase

    Tips on getting getting familiar with an unfamiliar codebase

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 4, 2021·Improve this Guide

    Unfamiliar Codebase

    Tips on getting getting familiar with an unfamiliar codebase

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/what-are-web-vitals.html b/guides/what-are-web-vitals.html index 90da55633..554360790 100644 --- a/guides/what-are-web-vitals.html +++ b/guides/what-are-web-vitals.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 5, 2021·Improve this Guide

    What are Web Vitals?

    Learn what are the core web vitals and how to measure them.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 5, 2021·Improve this Guide

    What are Web Vitals?

    Learn what are the core web vitals and how to measure them.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/what-is-internet.html b/guides/what-is-internet.html index 511684bc0..2f7730868 100644 --- a/guides/what-is-internet.html +++ b/guides/what-is-internet.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Dmytro Bolkachov·March 1, 2021·Improve this Guide

    How does the internet work?

    Learn the basics of internet and everything involved with this short video series

    Since the explosive growth of web-based applications, every developer could stand to benefit from understanding how the Internet works. In this article, accompanied with an introductory series of short videos about the Internet from code.org, you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the below questions:

    • What is the Internet?
    • How does the information move on the internet?
    • How do the networks talk to each other and the protocols involved?
    • What's the relationship between packets, routers, and reliability?
    • HTTP and the HTML – How are you viewing this webpage in your browser?
    • How is the information transfer on the internet made secure?
    • What is cybersecurity and what are some common internet crimes?

    What is the Internet?

    The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

    In the video below, Vint Cerf, one of the "fathers of the internet," explains the history of how the Internet works and how no one person or organization is really in charge of it.

    Wires, Cables, and Wi-Fi

    Information on the Internet moves from computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves).

    In the video linked below, you will learn about the different mediums for data transfer on the Internet and the pros and cons for each.

    IP Addresses and DNS

    Now that you know about the physical medium for the data transfer over the internet, it's time to learn about the protocols involved. How does the information traverse from one computer to another in this massive global network of computers?

    In the video below, you will get a brief introduction to IP, DNS, and how these protocols make the Internet work.

    Packets, Routing, and Reliability

    Information transfer on the Internet from one computer to another does not need to follow a fixed path; in fact, it may change paths during the transfer. This information transfer is done in the form of packets and these packets may follow different routes depending on certain factors.

    In this video, you will learn about how the packets of information are routed from one computer to another to reach the destination.

    HTTP and HTML

    HTTP is the standard protocol by which webpages are transferred over the Internet. The video below is a brief introduction to HTTP and how web browsers load websites for you.

    Encryption and Public Keys

    Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptograpy, SSL/TLS, and how they help make the communication on the Internet secure.

    Cybersecurity and Crime

    In this video, you will learn about the basics of cybersecurity and common cybercrimes

    And that wraps it up for this article. To learn more about the Internet, Kamran Ahmed has a nice little guide on DNS: How a website is found on the Internet. Also, go through the episodes of howdns.works and read this cartoon intro to DNS over HTTPS.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Dmytro Bolkachov·March 1, 2021·Improve this Guide

    How does the internet work?

    Learn the basics of internet and everything involved with this short video series

    Since the explosive growth of web-based applications, every developer could stand to benefit from understanding how the Internet works. In this article, accompanied with an introductory series of short videos about the Internet from code.org, you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the below questions:

    • What is the Internet?
    • How does the information move on the internet?
    • How do the networks talk to each other and the protocols involved?
    • What's the relationship between packets, routers, and reliability?
    • HTTP and the HTML – How are you viewing this webpage in your browser?
    • How is the information transfer on the internet made secure?
    • What is cybersecurity and what are some common internet crimes?

    What is the Internet?

    The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.

    In the video below, Vint Cerf, one of the "fathers of the internet," explains the history of how the Internet works and how no one person or organization is really in charge of it.

    Wires, Cables, and Wi-Fi

    Information on the Internet moves from computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves).

    In the video linked below, you will learn about the different mediums for data transfer on the Internet and the pros and cons for each.

    IP Addresses and DNS

    Now that you know about the physical medium for the data transfer over the internet, it's time to learn about the protocols involved. How does the information traverse from one computer to another in this massive global network of computers?

    In the video below, you will get a brief introduction to IP, DNS, and how these protocols make the Internet work.

    Packets, Routing, and Reliability

    Information transfer on the Internet from one computer to another does not need to follow a fixed path; in fact, it may change paths during the transfer. This information transfer is done in the form of packets and these packets may follow different routes depending on certain factors.

    In this video, you will learn about how the packets of information are routed from one computer to another to reach the destination.

    HTTP and HTML

    HTTP is the standard protocol by which webpages are transferred over the Internet. The video below is a brief introduction to HTTP and how web browsers load websites for you.

    Encryption and Public Keys

    Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptograpy, SSL/TLS, and how they help make the communication on the Internet secure.

    Cybersecurity and Crime

    In this video, you will learn about the basics of cybersecurity and common cybercrimes

    And that wraps it up for this article. To learn more about the Internet, Kamran Ahmed has a nice little guide on DNS: How a website is found on the Internet. Also, go through the episodes of howdns.works and read this cartoon intro to DNS over HTTPS.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/what-is-sli-slo-sla.html b/guides/what-is-sli-slo-sla.html index d7fd55ed7..e172c2523 100644 --- a/guides/what-is-sli-slo-sla.html +++ b/guides/what-is-sli-slo-sla.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 31, 2021·Improve this Guide

    SLIs, SLOs and SLAs

    Learn what are different indicators for performance identification of any service.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 31, 2021·Improve this Guide

    SLIs, SLOs and SLAs

    Learn what are different indicators for performance identification of any service.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/guides/why-build-it-and-they-will-come-wont-work-anymore.html b/guides/why-build-it-and-they-will-come-wont-work-anymore.html index 9fd927613..2285a3eae 100644 --- a/guides/why-build-it-and-they-will-come-wont-work-anymore.html +++ b/guides/why-build-it-and-they-will-come-wont-work-anymore.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Peter Thaleikis·May 4, 2021·Improve this Guide

    Build it and they will come?

    Why “build it and they will come” alone won’t work anymore

    We all have heard the mantra "build it and they will come" many times. Stories of people building a startup or project and seemingly stumbling upon a goldmine aren't few, but they aren't the rule. These stories are still the exception in the mass of launched projects and startups.

    Before the Wright brothers built their Kitty Hawk, people generally believed heavy objects could not fly - physics simply forbade it. The idea to regularly board airplanes as we do it these days was unthinkable. It was considered an unrealistic daydream for humans to ever claim the sky. When the first airplanes took off, people were fascinated, of course. It was a topic people continued to talk about for ages. Technology had made something impossible possible. While the wording "build it and they will come" originated from the movie Field of Dreams, this and similar historic events gave birth to the idea behind it.

    The engineers' and inventors' dreams came true: spend time doing what you love while the success follows magically. The internet and web-standards democratized access to this dream. But with it, the idea behind it faded and became less and less powerful. In 2020, there are very strong signs the popular saying isn't correct anymore.

    Why doesn't "build it and they will come" work anymore?

    There are a few reasons working hard to make "build it and they will come" a thing of the past. This being said, it doesn't mean you can't succeed building a side-project anymore. You've just got to adjust the way you are building it.

    Building got much easier

    As a software engineer, some websites are a blessing. Most of us couldn't work without GitHub, Stackoverflow and of course Google, ahem, DuckDuckGo. These powerful sites help us to solve problems, learn new techniques and find the right libraries to make building projects easier. If any of these sites are down, most engineers take a break and go for a coffee instead of trying to continue working. Combine this with more sophisticated web-standards and easier access to tooling, and you arrive at a world where building projects isn't just a job for highly specialist developers anymore. Powerful frameworks such as Laravel and Quasar Framework are available for anyone to build projects on - for free.

    In fact, building projects got to a point where some people simply build them as an exercise or hobby. If you spend some time browsing GitHub you will be surprised by the open source projects people built without any commercial goals. "Low code" and "No code" are the next wave of people building projects with less technological background.

    Too much going on: information overload

    We are living in a world with information overload. In the online sphere, you can find a lot of useful information. But there is also a lot of noise. For each piece of information or advice you can find a number of opposing statements. This is partly due to the fact that the internet made it much easier to publish and share information. Everyone has been given a voice - for good or bad. This makes it much harder to reach potential users. Your new project probably just drowns amongst kitten videos, opinions, and news. Never has the average lifetime of published content been so low. You've got to come up with a marketing plan before setting out on the journey.

    Smaller Problems

    Besides building being easier than ever before and attention being in short supply, there is another issue making the life of makers, inventors and engineers harder: today's problems are much smaller. Back when the previously mentioned Wright Brothers set out, they fascinated people with the problem they were aiming to address: flying. Unless your name is Elon, your problem is unlikely to attract many people naturally. As a solo developer or indie hacker, the chances are higher for having a much smaller problem in a niche (of a niche). With the information overload mentioned before, niches are pretty much the only way to build a side-project or startup and succeed.

    Does sound pretty grim for inventors, developers and engineers? Well, yes and no. We've got to tweak the approach to get in front of the eye of potential users and customers.

    How to market your project nowadays?

    The very first step to improving the odds of success is idea validation. While this sounds fairly obvious, many engineers and developers still don't validate their ideas before starting to build the MVP. The result is another stale project and wasted effort. To succeed you need to work on marketing before you start building anything. In the link mentioned before, I describe my approach to validation and collecting useful marketing information at the same time.

    Build your Audience first and the project after.

    Build your audience before you build your project. Spend your time connecting with potential users, learn from their needs and talk about their problems. This will help you market your project later on. Audience first, project second. There are numerous ways to build an audience. One of the simplest and easiest is to start with a personal or project blog.

    Don't use Medium or a similar service - opt for a self-hosted blog as it allows you to build the blog freely to your needs and have decent links back to your project later on. Don't forget to add a newsletter. Newsletters are a key to reconnect in our world of short attention spans.

    Tool by Tool

    Another approach is the "Tool by Tool" approach. I've first noticed this approach being used by Shopify. The team at Shopify are providing little tools such as a logo generator and release these tools free for anyone to use. This not just builds goodwill with people; it also allows Shopify to attract powerful backlinks to their projects. As developers we are in the perfect position to build such mini-tools. It boosts morale and drives attention at the same time.

    Spend some time evaluating where your project or product will deliver value to the end-user. Look at options to split off small, independent tools. Build these and launch them before launching the whole product. This allows you to practice launching and promoting your part-projects at the same time. With each backlink to your part-projects you will enhance your ranking in Google. An example for a maker following this approach is Kamban with FlatGA. He built FlatGA as phase one of a bigger project currently in development.

    Join a Maker community

    While you are building your part-projects, don't forget to discuss the progress publicly. This helps to attract an audience around your work and makes the launches easier. You can use Twitter threads and Reddit posts to share updates. A maker community such as makerlog or WIP.chat can also extend your reach. These allow you to get instant feedback, keep yourself accountable and they will enhance your reach at the same time.

    Getting ready to Launch

    Launching seems like this special moment when you release your project into the wide world. Often this moment is combined with high expectations and developers consider launching their project the key - if not only - part of their approach to marketing. While launching can help to attract some initial customers, it shouldn't be your only idea when it comes to marketing. You should also know that launching isn't a single event. You can (and should) launch again and again. Every time you launch you are increasing the chance to reach more and new customers. After the launch is before the launch.

    Marketing Is an On-going Fight

    Many developers plan to launch their product on a few sites and see where it takes their project from there on. This works well, if your product goes viral by luck. A much more sustainable approach is constantly working a little on it. Marketing is most effective, if done consistently. That holds true for blogging as well as most other forms of marketing. A simple approach to keep you on the path to market your project regularly is subscribing to a free newsletter with small marketing opportunities. This way, you are regularly reminded and given bite-sized tasks to complete.

    Closing Words

    I hope the article helped you to wrap your head around the idea that building side-projects alone doesn't solve any issues anymore. If you like what you've just read and want to read more, please consider subscribing to my newsletter. I'll send out the occasional email about interesting new articles or side-projects.

    About the author

    Peter Thaleikis a software engineer and business owner. He has been developing web applications since around 2000. Before he started his own software development company Bring Your Own Ideas Ltd., he has been Lead Developer for multiple organisations.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Peter Thaleikis·May 4, 2021·Improve this Guide

    Build it and they will come?

    Why “build it and they will come” alone won’t work anymore

    We all have heard the mantra "build it and they will come" many times. Stories of people building a startup or project and seemingly stumbling upon a goldmine aren't few, but they aren't the rule. These stories are still the exception in the mass of launched projects and startups.

    Before the Wright brothers built their Kitty Hawk, people generally believed heavy objects could not fly - physics simply forbade it. The idea to regularly board airplanes as we do it these days was unthinkable. It was considered an unrealistic daydream for humans to ever claim the sky. When the first airplanes took off, people were fascinated, of course. It was a topic people continued to talk about for ages. Technology had made something impossible possible. While the wording "build it and they will come" originated from the movie Field of Dreams, this and similar historic events gave birth to the idea behind it.

    The engineers' and inventors' dreams came true: spend time doing what you love while the success follows magically. The internet and web-standards democratized access to this dream. But with it, the idea behind it faded and became less and less powerful. In 2020, there are very strong signs the popular saying isn't correct anymore.

    Why doesn't "build it and they will come" work anymore?

    There are a few reasons working hard to make "build it and they will come" a thing of the past. This being said, it doesn't mean you can't succeed building a side-project anymore. You've just got to adjust the way you are building it.

    Building got much easier

    As a software engineer, some websites are a blessing. Most of us couldn't work without GitHub, Stackoverflow and of course Google, ahem, DuckDuckGo. These powerful sites help us to solve problems, learn new techniques and find the right libraries to make building projects easier. If any of these sites are down, most engineers take a break and go for a coffee instead of trying to continue working. Combine this with more sophisticated web-standards and easier access to tooling, and you arrive at a world where building projects isn't just a job for highly specialist developers anymore. Powerful frameworks such as Laravel and Quasar Framework are available for anyone to build projects on - for free.

    In fact, building projects got to a point where some people simply build them as an exercise or hobby. If you spend some time browsing GitHub you will be surprised by the open source projects people built without any commercial goals. "Low code" and "No code" are the next wave of people building projects with less technological background.

    Too much going on: information overload

    We are living in a world with information overload. In the online sphere, you can find a lot of useful information. But there is also a lot of noise. For each piece of information or advice you can find a number of opposing statements. This is partly due to the fact that the internet made it much easier to publish and share information. Everyone has been given a voice - for good or bad. This makes it much harder to reach potential users. Your new project probably just drowns amongst kitten videos, opinions, and news. Never has the average lifetime of published content been so low. You've got to come up with a marketing plan before setting out on the journey.

    Smaller Problems

    Besides building being easier than ever before and attention being in short supply, there is another issue making the life of makers, inventors and engineers harder: today's problems are much smaller. Back when the previously mentioned Wright Brothers set out, they fascinated people with the problem they were aiming to address: flying. Unless your name is Elon, your problem is unlikely to attract many people naturally. As a solo developer or indie hacker, the chances are higher for having a much smaller problem in a niche (of a niche). With the information overload mentioned before, niches are pretty much the only way to build a side-project or startup and succeed.

    Does sound pretty grim for inventors, developers and engineers? Well, yes and no. We've got to tweak the approach to get in front of the eye of potential users and customers.

    How to market your project nowadays?

    The very first step to improving the odds of success is idea validation. While this sounds fairly obvious, many engineers and developers still don't validate their ideas before starting to build the MVP. The result is another stale project and wasted effort. To succeed you need to work on marketing before you start building anything. In the link mentioned before, I describe my approach to validation and collecting useful marketing information at the same time.

    Build your Audience first and the project after.

    Build your audience before you build your project. Spend your time connecting with potential users, learn from their needs and talk about their problems. This will help you market your project later on. Audience first, project second. There are numerous ways to build an audience. One of the simplest and easiest is to start with a personal or project blog.

    Don't use Medium or a similar service - opt for a self-hosted blog as it allows you to build the blog freely to your needs and have decent links back to your project later on. Don't forget to add a newsletter. Newsletters are a key to reconnect in our world of short attention spans.

    Tool by Tool

    Another approach is the "Tool by Tool" approach. I've first noticed this approach being used by Shopify. The team at Shopify are providing little tools such as a logo generator and release these tools free for anyone to use. This not just builds goodwill with people; it also allows Shopify to attract powerful backlinks to their projects. As developers we are in the perfect position to build such mini-tools. It boosts morale and drives attention at the same time.

    Spend some time evaluating where your project or product will deliver value to the end-user. Look at options to split off small, independent tools. Build these and launch them before launching the whole product. This allows you to practice launching and promoting your part-projects at the same time. With each backlink to your part-projects you will enhance your ranking in Google. An example for a maker following this approach is Kamban with FlatGA. He built FlatGA as phase one of a bigger project currently in development.

    Join a Maker community

    While you are building your part-projects, don't forget to discuss the progress publicly. This helps to attract an audience around your work and makes the launches easier. You can use Twitter threads and Reddit posts to share updates. A maker community such as makerlog or WIP.chat can also extend your reach. These allow you to get instant feedback, keep yourself accountable and they will enhance your reach at the same time.

    Getting ready to Launch

    Launching seems like this special moment when you release your project into the wide world. Often this moment is combined with high expectations and developers consider launching their project the key - if not only - part of their approach to marketing. While launching can help to attract some initial customers, it shouldn't be your only idea when it comes to marketing. You should also know that launching isn't a single event. You can (and should) launch again and again. Every time you launch you are increasing the chance to reach more and new customers. After the launch is before the launch.

    Marketing Is an On-going Fight

    Many developers plan to launch their product on a few sites and see where it takes their project from there on. This works well, if your product goes viral by luck. A much more sustainable approach is constantly working a little on it. Marketing is most effective, if done consistently. That holds true for blogging as well as most other forms of marketing. A simple approach to keep you on the path to market your project regularly is subscribing to a free newsletter with small marketing opportunities. This way, you are regularly reminded and given bite-sized tasks to complete.

    Closing Words

    I hope the article helped you to wrap your head around the idea that building side-projects alone doesn't solve any issues anymore. If you like what you've just read and want to read more, please consider subscribing to my newsletter. I'll send out the occasional email about interesting new articles or side-projects.

    About the author

    Peter Thaleikis a software engineer and business owner. He has been developing web applications since around 2000. Before he started his own software development company Bring Your Own Ideas Ltd., he has been Lead Developer for multiple organisations.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/index.html b/index.html index 0e185e409..4dcba3117 100644 --- a/index.html +++ b/index.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Hey there! 👋

    roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide the developers in picking up the path and guide their learnings.

    We also have a YouTube channel which we hope you are going to love.

    Frontend

    Step by step guide to becoming a frontend developer in 2021

    Backend

    Step by step guide to becoming a backend developer in 2021

    DevOps

    Step by step guide for DevOps or operations role in 2021

    React

    Step by step guide to become a React Developer in 2021

    Angular

    Step by step guide to become a Angular Developer in 2021

    Android

    Step by step guide to becoming an Android Developer in 2021

    Python

    Step by step guide to becoming a Python Developer in 2021

    Go

    Step by step guide to becoming a Go developer in 2021

    Java

    Step by step guide to becoming a Java Developer in 2021

    DBA

    Step by step guide to become a PostgreSQL DBA in 2021

    AWS

    Step by step guide to learn AWS in 2021

    Upcoming

    QA

    Step by step guide to becoming a modern QA Engineer in 2021

    Upcoming

    Video Explanations

    What is Eventual Consistency?
    5 minutes
    SSH vs TLS vs SSL
    3 minutes
    Asynchronous JavaScript
    15 minutes
    Random Number Generators
    8 minutes
    Big O Notation
    8 minutes
    YAML in Depth
    8 minutes
    Floating Point Arithmetic
    4 minutes
    What is CAP Theorem?
    8 minutes
    ACID Explained
    5 minutes
    Transport Protocols: TCP vs UDP
    10 minutes
    View all Videos

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Hey there! 👋

    roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide the developers in picking up the path and guide their learnings.

    We also have a YouTube channel which we hope you are going to love.

    Frontend

    Step by step guide to becoming a frontend developer in 2021

    Backend

    Step by step guide to becoming a backend developer in 2021

    DevOps

    Step by step guide for DevOps or operations role in 2021

    React

    Step by step guide to become a React Developer in 2021

    Angular

    Step by step guide to become a Angular Developer in 2021

    Android

    Step by step guide to becoming an Android Developer in 2021

    Python

    Step by step guide to becoming a Python Developer in 2021

    Go

    Step by step guide to becoming a Go developer in 2021

    Java

    Step by step guide to becoming a Java Developer in 2021

    DBA

    Step by step guide to become a PostgreSQL DBA in 2021

    AWS

    Step by step guide to learn AWS in 2021

    Upcoming

    QA

    Step by step guide to becoming a modern QA Engineer in 2021

    Upcoming

    Video Explanations

    What is Eventual Consistency?
    5 minutes
    SSH vs TLS vs SSL
    3 minutes
    Asynchronous JavaScript
    15 minutes
    Random Number Generators
    8 minutes
    Big O Notation
    8 minutes
    YAML in Depth
    8 minutes
    Floating Point Arithmetic
    4 minutes
    What is CAP Theorem?
    8 minutes
    ACID Explained
    5 minutes
    Transport Protocols: TCP vs UDP
    10 minutes
    View all Videos

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/java.html b/java.html index fe7a5674f..e3bdeb88a 100644 --- a/java.html +++ b/java.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the Java ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the Java ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/java/interactive.html b/java/interactive.html index baebd75eb..eb166cbc0 100644 --- a/java/interactive.html +++ b/java/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/java/java.html b/java/java.html index 4c9d667ba..ae58dbddc 100644 --- a/java/java.html +++ b/java/java.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/java/resources.html b/java/resources.html index e83625034..0fde583a2 100644 --- a/java/resources.html +++ b/java/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Java Developer

    Step by step guide to becoming a Java developer in 2021

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/postgresql-dba.html b/postgresql-dba.html index c7a23bfda..18f479137 100644 --- a/postgresql-dba.html +++ b/postgresql-dba.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    The intent of this guide is to give you an idea about the DBA landscape and to help guide your learning if you are confused. The roadmap is highly opinionated — neither, knowing everything listed in the roadmap, nor the order of items given in the roadmap is required to be followed in order to be a DBA.

    Learn basic RDBMS terms and concepts

    Get basic understanding of Postgres key terms and basic RDBMS concepts.

    • Object model: data types, columns, rows, tables, schemas, databases, queries.
    • Relational model: domains, attributes, tuples, relations, constraints, NULL.
    • Databases high-level concepts: ACID, MVCC, transactions, write-ahead log, query processing.
    • Links:
      • Postgres Glossary
      • SQL and Relational Theory - Christopher J. Date, 2009
      • Database Design and Relational Theory - Christopher J. Date, 2012

    Learn how to install and run PostgreSQL

    Get practical skills of how to set up and run Postgres to get a working environment for further learning.

    • Using package managers (APT, YUM, etc.)
    • Using docker.
    • Managing Postgres service using systemd (start, stop, restart, reload).
    • Managing Postgres service using pg_ctl, or OS-specific tools (like pg_ctlcluster).
    • Connect to Postgres using psql.
    • Deploy database service in cloud environment (AWS, GCE, Azure, Heroku, DigitalOcean, etc...).
    • Links:

    Learn SQL concepts

    Get practical skills of how to create and manipulate database objects and how to execute queries using psql client.

    • Understand basic data types.
    • DML queries: querying data, modifying data, filtering data, joining tables.
      • Advanced topics: transactions, CTE, subqueries, lateral join, grouping, set operations.
    • DDL queries: managing tables and schemas (create, alter, drop).
    • Import and export data using COPY.
    • Links:

    Learn how to configure Postgres

    Get understanding of the main aspects of how Postgres could be configured. Deep understanding of Postgres internals is not yet necessary here.

    • postgresql.conf:
      • Resources usage
      • Write-ahead Log
      • Checkpoints and Background Writer
      • Cost-based vacuum and auto-vacuum
      • Replication
      • Query planner
      • Reporting, logging and statistics
      • Adding extra extensions
      • ...keep exploring other configuration options
    • Links:

    Learn Postgres security concepts

    Get understanding about basic security concepts and common ways of how to deploy secure configurations.

    Develop infrastructure DBA skills

    Get practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software.

    • Replication: streaming replication, logical replication
    • Backup/recovery tools:
      • Built-in: pg_dump, pg_dumpall, pg_restore, pg_basebackup
      • 3rd-party: barman, pgbackrest, pg_probackup, WAL-G
      • Backup validation procedures
    • Upgrading procedures
      • Minor and major upgrades using pg_upgrade
      • Upgrades using logical replication
    • Connection pooling:
      • Pgbouncer
      • Alternatives: Pgpool-II, Odyssey, Pgagroal
    • Infrastructure monitoring: Prometheus, Zabbix, other favourite monitoring solution
    • High availability and cluster management tools:
      • Patroni
      • Alternatives: Repmgr, Stolon, pg_auto_failover, PAF
    • Applications Load Balancing and Service Discovery: Haproxy, Keepalived, Consul, Etcd
    • Deploy Postgres on Kubernetes: Simple StatefulSet setup, HELM, operators
    • Resource usage and provisioning, capacity planning

    Learn how to automate routines

    Get practical skills, learn automation tools and automate existing routine tasks.

    • Automation using shell scripts or any other favourite language (Bash, Python, Perl, etc)
    • Configuration management: Ansible, Salt, Chef, Puppet

    Develop application DBA skills

    Learn theory and get practical skills of how applications should work with Postgres

    • Migrations:
      • practical patterns and antipatterns
      • tools: liquibase, sqitch, language-specific tools
    • Data import/export, bulk loading and processing
    • Queues:
      • practical patterns and anti-patterns
      • Skytools PGQ
    • Data partitioning and sharding patterns.
    • Database normalization and normal forms.
    • Books:
      • The Art of PostgreSQL - Dimitri Fontaine, 2020

    Learn Postgres advanced topics

    Here is important to continuously extend and develop existing knowledge about Postgres.

    Learn Postgres troubleshooting techniques

    Get basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems.

    • Operating system tools
      • top (htop, atop)
      • sysstat
      • iotop
    • Postgres system views
      • pg_stat_activity
      • pg_stat_statements
    • Postgres tools
      • pgcenter - personal recommendation
    • Query analyzing:
      • EXPLAIN
      • Depesz online EXPLAIN visualization tool
      • PEV online EXPLAIN visualization tool
      • Tensor online EXPLAIN visualization tool, RU language only
    • Log analyzing:
      • pgBadger
      • Ad-hoc analyzing using grep, awk, sed, etc.
    • External tracing/profiling tools: gdb, strace, perf-tools, ebpf, core dumps
    • Troubleshooting methods: USE, RED, Golden signals
    • Links:

    Learn SQL optimization technics

    Get understanding and practical skills of how to optimize SQL queries.

    • Indexes, and their use cases: B-tree, Hash, GiST, SP-GiST, GIN, BRIN
    • SQL queries patterns and anti-patterns
    • SQL schema design patterns and anti-patterns
    • Links:
    • Books:
      • SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010

    Develop architect skills

    Get deeper understanding of Postgres use cases and where Postgres is suitable and where is not.

    • Postgres forks and extensions: Greenplum, Timescaledb, Citus, Postgres-XL, etc.
    • RDBMS in general, benefits and limitations
    • Differences between Postgres and other RDBMS and NoSQL databases

    Develop Postgres hacker skills

    Get involved to Postgres community and contribute to Postgres; be a useful member of Postgres, and the open source community; use personal experience to help other people.

    • Daily reading and answering in mailing lists
      • pgsql-general
      • pgsql-admin
      • pgsql-performance
      • pgsql-hackers
      • pgsql-bugs
    • Reviewing patches
    • Writing patches, attending in Commitfests



    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    The intent of this guide is to give you an idea about the DBA landscape and to help guide your learning if you are confused. The roadmap is highly opinionated — neither, knowing everything listed in the roadmap, nor the order of items given in the roadmap is required to be followed in order to be a DBA.

    Learn basic RDBMS terms and concepts

    Get basic understanding of Postgres key terms and basic RDBMS concepts.

    • Object model: data types, columns, rows, tables, schemas, databases, queries.
    • Relational model: domains, attributes, tuples, relations, constraints, NULL.
    • Databases high-level concepts: ACID, MVCC, transactions, write-ahead log, query processing.
    • Links:
      • Postgres Glossary
      • SQL and Relational Theory - Christopher J. Date, 2009
      • Database Design and Relational Theory - Christopher J. Date, 2012

    Learn how to install and run PostgreSQL

    Get practical skills of how to set up and run Postgres to get a working environment for further learning.

    • Using package managers (APT, YUM, etc.)
    • Using docker.
    • Managing Postgres service using systemd (start, stop, restart, reload).
    • Managing Postgres service using pg_ctl, or OS-specific tools (like pg_ctlcluster).
    • Connect to Postgres using psql.
    • Deploy database service in cloud environment (AWS, GCE, Azure, Heroku, DigitalOcean, etc...).
    • Links:

    Learn SQL concepts

    Get practical skills of how to create and manipulate database objects and how to execute queries using psql client.

    • Understand basic data types.
    • DML queries: querying data, modifying data, filtering data, joining tables.
      • Advanced topics: transactions, CTE, subqueries, lateral join, grouping, set operations.
    • DDL queries: managing tables and schemas (create, alter, drop).
    • Import and export data using COPY.
    • Links:

    Learn how to configure Postgres

    Get understanding of the main aspects of how Postgres could be configured. Deep understanding of Postgres internals is not yet necessary here.

    • postgresql.conf:
      • Resources usage
      • Write-ahead Log
      • Checkpoints and Background Writer
      • Cost-based vacuum and auto-vacuum
      • Replication
      • Query planner
      • Reporting, logging and statistics
      • Adding extra extensions
      • ...keep exploring other configuration options
    • Links:

    Learn Postgres security concepts

    Get understanding about basic security concepts and common ways of how to deploy secure configurations.

    Develop infrastructure DBA skills

    Get practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software.

    • Replication: streaming replication, logical replication
    • Backup/recovery tools:
      • Built-in: pg_dump, pg_dumpall, pg_restore, pg_basebackup
      • 3rd-party: barman, pgbackrest, pg_probackup, WAL-G
      • Backup validation procedures
    • Upgrading procedures
      • Minor and major upgrades using pg_upgrade
      • Upgrades using logical replication
    • Connection pooling:
      • Pgbouncer
      • Alternatives: Pgpool-II, Odyssey, Pgagroal
    • Infrastructure monitoring: Prometheus, Zabbix, other favourite monitoring solution
    • High availability and cluster management tools:
      • Patroni
      • Alternatives: Repmgr, Stolon, pg_auto_failover, PAF
    • Applications Load Balancing and Service Discovery: Haproxy, Keepalived, Consul, Etcd
    • Deploy Postgres on Kubernetes: Simple StatefulSet setup, HELM, operators
    • Resource usage and provisioning, capacity planning

    Learn how to automate routines

    Get practical skills, learn automation tools and automate existing routine tasks.

    • Automation using shell scripts or any other favourite language (Bash, Python, Perl, etc)
    • Configuration management: Ansible, Salt, Chef, Puppet

    Develop application DBA skills

    Learn theory and get practical skills of how applications should work with Postgres

    • Migrations:
      • practical patterns and antipatterns
      • tools: liquibase, sqitch, language-specific tools
    • Data import/export, bulk loading and processing
    • Queues:
      • practical patterns and anti-patterns
      • Skytools PGQ
    • Data partitioning and sharding patterns.
    • Database normalization and normal forms.
    • Books:
      • The Art of PostgreSQL - Dimitri Fontaine, 2020

    Learn Postgres advanced topics

    Here is important to continuously extend and develop existing knowledge about Postgres.

    Learn Postgres troubleshooting techniques

    Get basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems.

    • Operating system tools
      • top (htop, atop)
      • sysstat
      • iotop
    • Postgres system views
      • pg_stat_activity
      • pg_stat_statements
    • Postgres tools
      • pgcenter - personal recommendation
    • Query analyzing:
      • EXPLAIN
      • Depesz online EXPLAIN visualization tool
      • PEV online EXPLAIN visualization tool
      • Tensor online EXPLAIN visualization tool, RU language only
    • Log analyzing:
      • pgBadger
      • Ad-hoc analyzing using grep, awk, sed, etc.
    • External tracing/profiling tools: gdb, strace, perf-tools, ebpf, core dumps
    • Troubleshooting methods: USE, RED, Golden signals
    • Links:

    Learn SQL optimization technics

    Get understanding and practical skills of how to optimize SQL queries.

    • Indexes, and their use cases: B-tree, Hash, GiST, SP-GiST, GIN, BRIN
    • SQL queries patterns and anti-patterns
    • SQL schema design patterns and anti-patterns
    • Links:
    • Books:
      • SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010

    Develop architect skills

    Get deeper understanding of Postgres use cases and where Postgres is suitable and where is not.

    • Postgres forks and extensions: Greenplum, Timescaledb, Citus, Postgres-XL, etc.
    • RDBMS in general, benefits and limitations
    • Differences between Postgres and other RDBMS and NoSQL databases

    Develop Postgres hacker skills

    Get involved to Postgres community and contribute to Postgres; be a useful member of Postgres, and the open source community; use personal experience to help other people.

    • Daily reading and answering in mailing lists
      • pgsql-general
      • pgsql-admin
      • pgsql-performance
      • pgsql-hackers
      • pgsql-bugs
    • Reviewing patches
    • Writing patches, attending in Commitfests



    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/postgresql-dba/interactive.html b/postgresql-dba/interactive.html index ab0e1511c..247b2b97a 100644 --- a/postgresql-dba/interactive.html +++ b/postgresql-dba/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/postgresql-dba/postgresql-dba.html b/postgresql-dba/postgresql-dba.html index f44f49250..7b6701b12 100644 --- a/postgresql-dba/postgresql-dba.html +++ b/postgresql-dba/postgresql-dba.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/postgresql-dba/resources.html b/postgresql-dba/resources.html index 63c0e166c..09fa06347 100644 --- a/postgresql-dba/resources.html +++ b/postgresql-dba/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    PostgreSQL DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    All RoadmapsSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/privacy.html b/privacy.html index 7472f3006..16405e4ff 100644 --- a/privacy.html +++ b/privacy.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Privacy Policy

    By using or accessing the Services in any manner, you acknowledge that you accept the practices and policies outlined in this Privacy Policy, and you hereby consent that we will collect, use, and share your information in the following ways. Remember that your use of roadmap.sh’s Services is at all times subject to the Terms of Use, which incorporates this Privacy Policy. Any terms we use in this Policy without defining them have the definitions given to them in the Terms of Use.

    What does this Privacy Policy cover?

    This Privacy Policy covers our treatment of personally identifiable information ("Personal Information") that we gather when you are accessing or using our Services, but not to the practices of companies we don’t own or control, or people that we don’t manage. We gather various types of Personal Information from our users, as explained in more detail below, and we use this Personal Information internally in connection with our Services, including to personalize, provide, and improve our services, to allow you to set up a user account and profile, to contact you and allow other users to contact you, to fulfill your requests for certain products and services, and to analyze how you use the Services. In certain cases, we may also share some Personal Information with third parties, but only as described below.

    As noted in the Terms of Use, we do not knowingly collect or solicit personal information from anyone under the age of 13. If you are under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn that we have collected personal information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at kamranahmed.se@gmail.com.

    Will roadmap.sh ever change this Privacy Policy?

    We’re constantly trying to improve our Services, so we may need to change this Privacy Policy from time to time as well, but we will alert you to changes by updating the services on the website, placing a notice on the Services, by sending you an email, and/or by some other means. Please note that if you’ve opted not to receive legal notice emails from us (or you haven’t provided us with your email address), those legal notices will still govern your use of the Services, and you are still responsible for reading and understanding them. If you use the Services after any changes to the Privacy Policy have been posted, that means you agree to all of the changes. Use of information we collect now is subject to the Privacy Policy in effect at the time such information is used or collected.

    What Information does roadmap.sh Collect?

    Information You Provide to Us:

    We receive and store any information you knowingly provide to us. For example, through the registration process and/or through your account settings, we may collect Personal Information such as your name, title, email address, phone number, and third-party account credentials (for example, your log-in credentials for Twitter or other third party sites. If you provide your third-party account credentials to us or otherwise sign in to the Services through a third party site or service, you understand some content and/or information in those accounts (“Third Party Account Information”) may be transmitted into your account with us if you authorize such transmissions], and that Third Party Account Information transmitted to our Services is covered by this Privacy Policy. Certain information may be required to register with us or to take advantage of some of our features.

    We may communicate with you if you’ve provided us the means to do so. For example, if you’ve given us your email address, we may send you promotional email offers on behalf of other businesses, or email you about your use of the Services. Also, we may receive a confirmation when you open an email from us. This confirmation helps us make our communications with you more interesting and improve our services. If you do not want to receive communications from us, please email us at kamranahmed.se@gmail.com.

    Information Collected Automatically

    Whenever you interact with our Services, we automatically receive and record information on our server logs from your browser or device, which may include your IP address, geolocation data, device identification, “cookie” information, the type of browser and/or device you’re using to access our Services, and the page or feature you requested. “Cookies” are identifiers we transfer to your browser or device that allow us to recognize your browser or device and tell us how and when pages and features in our Services are visited and by how many people. You may be able to change the preferences on your browser or device to prevent or limit your device’s acceptance of cookies, but this may prevent you from taking advantage of some of our features. Our advertising partners may also transmit cookies to your browser or device, when you click on ads that appear on the Services. Also if you click on a link to a third party website or service, such third party may also transmit cookies to you. Again, this Privacy Policy does not cover the use of cookies by any third parties, and we aren’t responsible for their privacy policies and practices.

    When we collect the usage information described above, we only use this data in aggregate form, and not in a manner that would identify you personally. For example, this aggregate data can tell us how often users use a particular feature of the Services, and we can use that knowledge to make the Services interesting to as many users as possible.

    Will roadmap.sh Share Any of the Personal Information it Receives?

    We may share your Personal Information with third parties as described in this section:

    Information that’s no longer personally identifiable. We may anonymize your Personal Information so that you are not individually identified, and provide that information to our partners. We may also provide aggregate usage information to our partners, who may use such information to understand how often and in what ways people use our Services, so that they, too, can provide you with an optimal online experience. However, we never disclose aggregate information to a partner in a manner that would identify you personally, as an individual.

    Advertisers: We may allow advertisers and/or merchant partners (“Advertisers”) to choose the demographic information of users who will see their advertisements and/or promotional offers and you agree that we may provide any of the information we have collected from you in non-personally identifiable form to an Advertiser, in order for that Advertiser to select the appropriate audience for those advertisements and/or offers. For example, we might use the fact you are located in San Francisco to show you ads or offers for San Francisco businesses, but we will not tell such businesses who you are. Note that if an advertiser asks us to show an ad to a certain audience or audience segment and you respond to that ad, the advertiser may conclude that you fit the description of the audience they were trying to reach.

    We may deliver a file to you through the Services (known as a “web beacon”) from an ad network. Web beacons allow ad networks to provide anonymized, aggregated auditing, research and reporting for us and for advertisers. Web beacons also enable ad networks to serve targeted advertisements to you when you visit other websites. Because your web browser must request these advertisements and web beacons from the ad network’s servers, these companies can view, edit, or set their own cookies, just as if you had requested a web page from their site. You may be able to opt-out of web beacon tracking by adjusting the settings on your browser.

    Affiliated Businesses: In certain situations, businesses or third party websites we’re affiliated with may sell or provide products or services to you through or in connection with the Services (either alone or jointly with us). You can recognize when an affiliated business is associated with such a transaction or service, and we will share your Personal Information with that affiliated business only to the extent that it is related to such transaction or service. One such service may include the ability for you to automatically transmit Third Party Account Information to your Services profile or to automatically transmit information in your Services profile to your third party account; for example, you may sign into your roadmap.sh account using your Twitter account. We have no control over the policies and practices of third party websites or businesses as to privacy or anything else, so if you choose to take part in any transaction or service relating to an affiliated website or business, please review all such business’ or websites’ policies.

    Our Agents: We employ other companies and people to perform tasks on our behalf and need to share your information with them to provide products or services to you. Unless we tell you differently, our agents do not have any right to use the Personal Information we share with them beyond what is necessary to assist us.

    User Profiles and Submissions: Certain user profile information, including your name, location, and any video or image content that such user has uploaded to the Services, may be displayed to other users to facilitate user interaction within the Services or address your request for our services. Please remember that any content you upload to your public user profile, along with any Personal Information or content that you voluntarily disclose online in a manner other users can view (on discussion boards, in messages and chat areas, etc.) becomes publicly available, and can be collected and used by anyone. Your user name may also be displayed to other users if and when you send messages or comments or upload images or videos through the Services and other users can contact you through messages and comments. Additionally, if you sign into the Services through a third party social networking site or service, your list of “friends” from that site or service may be automatically imported to the Services, and such “friends,” if they are also registered users of the Services, may be able to access certain non-public information you have entered in your Services user profile. Again, we do not control the policies and practices of any other third party site or service.

    Business Transfers: We may choose to buy or sell assets. In these types of transactions, customer information is typically one of the business assets that would be transferred. Also, if we (or our assets) are acquired, or if we go out of business, enter bankruptcy, or go through some other change of control, Personal Information could be one of the assets transferred to or acquired by a third party.

    Protection of roadmap.sh and Others: We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with law or court order; enforce or apply our terms of use and other agreements; or protect the rights, property, or safety of roadmap.sh, our employees, our users, or others.

    Is Personal Information about me secure?

    Your account is protected by a password for your privacy and security. If you access your account via a third party site or service, you may have additional or different sign-on protections via that third party site or service. You must prevent unauthorized access to your account and Personal Information by selecting and protecting your password and/or other sign-on mechanism appropriately and limiting access to your computer or device and browser by signing off after you have finished accessing your account. We endeavor to protect the privacy of your account and other Personal Information we hold in our records, but unfortunately, we cannot guarantee complete security. Unauthorized entry or use, hardware or software failure, and other factors, may compromise the security of user information at any time.

    What Personal Information can I access?

    Through your account settings, you may access, and, in some cases, edit or delete the following information you’ve provided to us:

    • first and last name
    • location of residence
    • age or birthday
    • username

    The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at kamranahmed.se@gmail.com.

    Under California Civil Code Sections 1798.83-1798.84, California residents are entitled to ask us for a notice identifying the categories of Personal Information which we share with our affiliates and/or third parties for marketing purposes, and providing contact information for such affiliates and/or third parties. If you are a California resident and would like a copy of this notice, please submit a written request to: kamranahmed.se@gmail.com.

    What choices do I have?

    You can always opt not to disclose information to us, but keep in mind some information may be needed to register with us or to take advantage of some of our features.

    You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting us at kamranahmed.se@gmail.com and we will disassociate our email address and Twitter account from any content or other information provided to us. Some information may remain in our records after your deletion of such information from your account. We may use any aggregated data derived from or incorporating your Personal Information after you update or delete it, but not in a manner that would identify you personally.

    What if I have questions about this policy?

    If you have any questions or concerns regarding our privacy policies, please send us a detailed message to kamranahmed.se@gmail.com, and we will try to resolve your concerns.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Privacy Policy

    By using or accessing the Services in any manner, you acknowledge that you accept the practices and policies outlined in this Privacy Policy, and you hereby consent that we will collect, use, and share your information in the following ways. Remember that your use of roadmap.sh’s Services is at all times subject to the Terms of Use, which incorporates this Privacy Policy. Any terms we use in this Policy without defining them have the definitions given to them in the Terms of Use.

    What does this Privacy Policy cover?

    This Privacy Policy covers our treatment of personally identifiable information ("Personal Information") that we gather when you are accessing or using our Services, but not to the practices of companies we don’t own or control, or people that we don’t manage. We gather various types of Personal Information from our users, as explained in more detail below, and we use this Personal Information internally in connection with our Services, including to personalize, provide, and improve our services, to allow you to set up a user account and profile, to contact you and allow other users to contact you, to fulfill your requests for certain products and services, and to analyze how you use the Services. In certain cases, we may also share some Personal Information with third parties, but only as described below.

    As noted in the Terms of Use, we do not knowingly collect or solicit personal information from anyone under the age of 13. If you are under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn that we have collected personal information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at kamranahmed.se@gmail.com.

    Will roadmap.sh ever change this Privacy Policy?

    We’re constantly trying to improve our Services, so we may need to change this Privacy Policy from time to time as well, but we will alert you to changes by updating the services on the website, placing a notice on the Services, by sending you an email, and/or by some other means. Please note that if you’ve opted not to receive legal notice emails from us (or you haven’t provided us with your email address), those legal notices will still govern your use of the Services, and you are still responsible for reading and understanding them. If you use the Services after any changes to the Privacy Policy have been posted, that means you agree to all of the changes. Use of information we collect now is subject to the Privacy Policy in effect at the time such information is used or collected.

    What Information does roadmap.sh Collect?

    Information You Provide to Us:

    We receive and store any information you knowingly provide to us. For example, through the registration process and/or through your account settings, we may collect Personal Information such as your name, title, email address, phone number, and third-party account credentials (for example, your log-in credentials for Twitter or other third party sites. If you provide your third-party account credentials to us or otherwise sign in to the Services through a third party site or service, you understand some content and/or information in those accounts (“Third Party Account Information”) may be transmitted into your account with us if you authorize such transmissions], and that Third Party Account Information transmitted to our Services is covered by this Privacy Policy. Certain information may be required to register with us or to take advantage of some of our features.

    We may communicate with you if you’ve provided us the means to do so. For example, if you’ve given us your email address, we may send you promotional email offers on behalf of other businesses, or email you about your use of the Services. Also, we may receive a confirmation when you open an email from us. This confirmation helps us make our communications with you more interesting and improve our services. If you do not want to receive communications from us, please email us at kamranahmed.se@gmail.com.

    Information Collected Automatically

    Whenever you interact with our Services, we automatically receive and record information on our server logs from your browser or device, which may include your IP address, geolocation data, device identification, “cookie” information, the type of browser and/or device you’re using to access our Services, and the page or feature you requested. “Cookies” are identifiers we transfer to your browser or device that allow us to recognize your browser or device and tell us how and when pages and features in our Services are visited and by how many people. You may be able to change the preferences on your browser or device to prevent or limit your device’s acceptance of cookies, but this may prevent you from taking advantage of some of our features. Our advertising partners may also transmit cookies to your browser or device, when you click on ads that appear on the Services. Also if you click on a link to a third party website or service, such third party may also transmit cookies to you. Again, this Privacy Policy does not cover the use of cookies by any third parties, and we aren’t responsible for their privacy policies and practices.

    When we collect the usage information described above, we only use this data in aggregate form, and not in a manner that would identify you personally. For example, this aggregate data can tell us how often users use a particular feature of the Services, and we can use that knowledge to make the Services interesting to as many users as possible.

    Will roadmap.sh Share Any of the Personal Information it Receives?

    We may share your Personal Information with third parties as described in this section:

    Information that’s no longer personally identifiable. We may anonymize your Personal Information so that you are not individually identified, and provide that information to our partners. We may also provide aggregate usage information to our partners, who may use such information to understand how often and in what ways people use our Services, so that they, too, can provide you with an optimal online experience. However, we never disclose aggregate information to a partner in a manner that would identify you personally, as an individual.

    Advertisers: We may allow advertisers and/or merchant partners (“Advertisers”) to choose the demographic information of users who will see their advertisements and/or promotional offers and you agree that we may provide any of the information we have collected from you in non-personally identifiable form to an Advertiser, in order for that Advertiser to select the appropriate audience for those advertisements and/or offers. For example, we might use the fact you are located in San Francisco to show you ads or offers for San Francisco businesses, but we will not tell such businesses who you are. Note that if an advertiser asks us to show an ad to a certain audience or audience segment and you respond to that ad, the advertiser may conclude that you fit the description of the audience they were trying to reach.

    We may deliver a file to you through the Services (known as a “web beacon”) from an ad network. Web beacons allow ad networks to provide anonymized, aggregated auditing, research and reporting for us and for advertisers. Web beacons also enable ad networks to serve targeted advertisements to you when you visit other websites. Because your web browser must request these advertisements and web beacons from the ad network’s servers, these companies can view, edit, or set their own cookies, just as if you had requested a web page from their site. You may be able to opt-out of web beacon tracking by adjusting the settings on your browser.

    Affiliated Businesses: In certain situations, businesses or third party websites we’re affiliated with may sell or provide products or services to you through or in connection with the Services (either alone or jointly with us). You can recognize when an affiliated business is associated with such a transaction or service, and we will share your Personal Information with that affiliated business only to the extent that it is related to such transaction or service. One such service may include the ability for you to automatically transmit Third Party Account Information to your Services profile or to automatically transmit information in your Services profile to your third party account; for example, you may sign into your roadmap.sh account using your Twitter account. We have no control over the policies and practices of third party websites or businesses as to privacy or anything else, so if you choose to take part in any transaction or service relating to an affiliated website or business, please review all such business’ or websites’ policies.

    Our Agents: We employ other companies and people to perform tasks on our behalf and need to share your information with them to provide products or services to you. Unless we tell you differently, our agents do not have any right to use the Personal Information we share with them beyond what is necessary to assist us.

    User Profiles and Submissions: Certain user profile information, including your name, location, and any video or image content that such user has uploaded to the Services, may be displayed to other users to facilitate user interaction within the Services or address your request for our services. Please remember that any content you upload to your public user profile, along with any Personal Information or content that you voluntarily disclose online in a manner other users can view (on discussion boards, in messages and chat areas, etc.) becomes publicly available, and can be collected and used by anyone. Your user name may also be displayed to other users if and when you send messages or comments or upload images or videos through the Services and other users can contact you through messages and comments. Additionally, if you sign into the Services through a third party social networking site or service, your list of “friends” from that site or service may be automatically imported to the Services, and such “friends,” if they are also registered users of the Services, may be able to access certain non-public information you have entered in your Services user profile. Again, we do not control the policies and practices of any other third party site or service.

    Business Transfers: We may choose to buy or sell assets. In these types of transactions, customer information is typically one of the business assets that would be transferred. Also, if we (or our assets) are acquired, or if we go out of business, enter bankruptcy, or go through some other change of control, Personal Information could be one of the assets transferred to or acquired by a third party.

    Protection of roadmap.sh and Others: We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with law or court order; enforce or apply our terms of use and other agreements; or protect the rights, property, or safety of roadmap.sh, our employees, our users, or others.

    Is Personal Information about me secure?

    Your account is protected by a password for your privacy and security. If you access your account via a third party site or service, you may have additional or different sign-on protections via that third party site or service. You must prevent unauthorized access to your account and Personal Information by selecting and protecting your password and/or other sign-on mechanism appropriately and limiting access to your computer or device and browser by signing off after you have finished accessing your account. We endeavor to protect the privacy of your account and other Personal Information we hold in our records, but unfortunately, we cannot guarantee complete security. Unauthorized entry or use, hardware or software failure, and other factors, may compromise the security of user information at any time.

    What Personal Information can I access?

    Through your account settings, you may access, and, in some cases, edit or delete the following information you’ve provided to us:

    • first and last name
    • location of residence
    • age or birthday
    • username

    The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at kamranahmed.se@gmail.com.

    Under California Civil Code Sections 1798.83-1798.84, California residents are entitled to ask us for a notice identifying the categories of Personal Information which we share with our affiliates and/or third parties for marketing purposes, and providing contact information for such affiliates and/or third parties. If you are a California resident and would like a copy of this notice, please submit a written request to: kamranahmed.se@gmail.com.

    What choices do I have?

    You can always opt not to disclose information to us, but keep in mind some information may be needed to register with us or to take advantage of some of our features.

    You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting us at kamranahmed.se@gmail.com and we will disassociate our email address and Twitter account from any content or other information provided to us. Some information may remain in our records after your deletion of such information from your account. We may use any aggregated data derived from or incorporating your Personal Information after you update or delete it, but not in a manner that would identify you personally.

    What if I have questions about this policy?

    If you have any questions or concerns regarding our privacy policies, please send us a detailed message to kamranahmed.se@gmail.com, and we will try to resolve your concerns.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/python.html b/python.html index 2b0d7b249..477815dae 100644 --- a/python.html +++ b/python.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the Python ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the Python ecosystem and to help guide your learning if you are confused. We have another roadmap on the Backend Development that focuses on the backend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/python/interactive.html b/python/interactive.html index c101ac1b6..fd7ca151d 100644 --- a/python/interactive.html +++ b/python/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/python/python.html b/python/python.html index f782a4242..22676b0a2 100644 --- a/python/python.html +++ b/python/python.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/python/resources.html b/python/resources.html index 7aadf0160..61d43710f 100644 --- a/python/resources.html +++ b/python/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Python Developer

    Step by step guide to becoming a Python developer in 2021

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/qa.html b/qa.html index c4f340cf5..8eb56b871 100644 --- a/qa.html +++ b/qa.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    Roadmap is not ready yet. Please check back later or subscribe to get notified.

    While we prepare the roadmap, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    Roadmap is not ready yet. Please check back later or subscribe to get notified.

    While we prepare the roadmap, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/qa/interactive.html b/qa/interactive.html index d140a3029..3a18349e6 100644 --- a/qa/interactive.html +++ b/qa/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/qa/qa.html b/qa/qa.html index caf4a2910..4d6894658 100644 --- a/qa/qa.html +++ b/qa/qa.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/qa/resources.html b/qa/resources.html index 5e270307d..df8df5776 100644 --- a/qa/resources.html +++ b/qa/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    QA Engineer

    Steps to follow in order to become a modern QA Engineer in 2021

    All RoadmapsSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/react.html b/react.html index 529421105..0eb2d99ad 100644 --- a/react.html +++ b/react.html @@ -3,10 +3,10 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the React ecosystem and to help guide your learning if you are confused. We have another roadmap on the Frontend Development that focuses on the frontend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the picture if suitable.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe

    The intent of this guide is to give you an idea about the React ecosystem and to help guide your learning if you are confused. We have another roadmap on the Frontend Development that focuses on the frontend development if you are interested in that.

    Also, please note that the list below is exhaustive, and the items are listed in no particular order. You don't need to learn everything listed in the picture, however knowing what you don't know is as important as knowing things.

    Please note that the list is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the picture if suitable.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/react/interactive.html b/react/interactive.html index 74e43b502..420eac18c 100644 --- a/react/interactive.html +++ b/react/interactive.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe
    Loading...

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/react/react.html b/react/react.html index 119ae849c..2b8bf0f3a 100644 --- a/react/react.html +++ b/react/react.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/react/resources.html b/react/resources.html index 888582392..ebfd9aba6 100644 --- a/react/resources.html +++ b/react/resources.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    React Developer

    Everything that is there to learn about React and the ecosystem in 2021.

    All RoadmapsDownloadSubscribe

    We are still preparing the resources. Please check back later or subscribe to get notified.

    While we prepare the list, follow this simple advice to learn anything

    Just pick a project and start working on it, you will learn all that you need along the way.

      All Roadmaps    Programming guides    Subscribe

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/roadmaps.html b/roadmaps.html index fced7adb6..1e6d9fd2c 100644 --- a/roadmaps.html +++ b/roadmaps.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Developer Roadmaps

    Step by step guides and paths to learn different tools or technologies

    Frontend

    Step by step guide to becoming a modern frontend developer in 2021

    Backend

    Step by step guide to becoming a modern backend developer in 2021

    DevOps

    Step by step guide for DevOps, SRE or any other Operations Role in 2021

    React

    Everything that is there to learn about React and the ecosystem in 2021.

    Angular

    Everything that is there to learn about Angular and the ecosystem in 2021.

    Android

    Step by step guide to becoming an Android developer in 2021

    Python

    Step by step guide to becoming a Python developer in 2021

    Go

    Step by step guide to becoming a Go developer in 2021

    Java

    Step by step guide to becoming a Java developer in 2021

    DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    AWS

    Everything that is there to learn about AWS and the ecosystem in 2021.

    Upcoming

    QA

    Steps to follow in order to become a modern QA Engineer in 2021

    Upcoming

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    NewRoadmap topics to be covered on our YouTube ChannelTopic videos being made on YouTube»

    Developer Roadmaps

    Step by step guides and paths to learn different tools or technologies

    Frontend

    Step by step guide to becoming a modern frontend developer in 2021

    Backend

    Step by step guide to becoming a modern backend developer in 2021

    DevOps

    Step by step guide for DevOps, SRE or any other Operations Role in 2021

    React

    Everything that is there to learn about React and the ecosystem in 2021.

    Angular

    Everything that is there to learn about Angular and the ecosystem in 2021.

    Android

    Step by step guide to becoming an Android developer in 2021

    Python

    Step by step guide to becoming a Python developer in 2021

    Go

    Step by step guide to becoming a Go developer in 2021

    Java

    Step by step guide to becoming a Java developer in 2021

    DBA

    Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021

    AWS

    Everything that is there to learn about AWS and the ecosystem in 2021.

    Upcoming

    QA

    Steps to follow in order to become a modern QA Engineer in 2021

    Upcoming

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/signup.html b/signup.html index a205d15bf..ae36fc448 100644 --- a/signup.html +++ b/signup.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Monthly Updates

    Enter your email below to get notified about the new roadmaps, guides and updates

    Once a month email about the changes to roadmaps, new roadmaps, free guides and videos.

    Updates and Paid Content

    People sponsoring me on GitHub get access to the updates as well as paid content.

    • Get notified about the updates
    • Access to paid guides and Videos
    • Support the Project
    • Get a shoutout on Twitter
    • Your name will be added to Thanks
    Sponsor on GitHub

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Monthly Updates

    Enter your email below to get notified about the new roadmaps, guides and updates

    Once a month email about the changes to roadmaps, new roadmaps, free guides and videos.

    Updates and Paid Content

    People sponsoring me on GitHub get access to the updates as well as paid content.

    • Get notified about the updates
    • Access to paid guides and Videos
    • Support the Project
    • Get a shoutout on Twitter
    • Your name will be added to Thanks
    Sponsor on GitHub

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 292a2997b..be6670d5c 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,73 +3,73 @@ https://roadmap.sh/frontend monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/backend monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/devops monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/react monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/angular monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/android monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/python monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/golang monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/java monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/postgresql-dba monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/aws monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 https://roadmap.sh/qa monthly - 2021-12-09T23:29:13.332Z + 2021-12-09T23:53:05.634Z 1.0 @@ -243,43 +243,43 @@ https://roadmap.sh/about monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.638Z 0.8 https://roadmap.sh/guides monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.638Z 1.0 https://roadmap.sh/ monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.642Z 1.0 https://roadmap.sh/roadmaps monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.642Z 1.0 https://roadmap.sh/signup monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.642Z 0.9 https://roadmap.sh/thanks monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.642Z 0.5 https://roadmap.sh/watch monthly - 2021-12-09T23:29:13.340Z + 2021-12-09T23:53:05.642Z 1.0 \ No newline at end of file diff --git a/terms.html b/terms.html index d8b9bacdb..d85b684a2 100644 --- a/terms.html +++ b/terms.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Terms of Service

    PLEASE NOTE THAT YOUR USE OF AND ACCESS TO OUR SERVICES (DEFINED BELOW) ARE SUBJECT TO THE FOLLOWING TERMS; IF YOU DO NOT AGREE TO ALL OF THE FOLLOWING, YOU MAY NOT USE OR ACCESS THE SERVICES IN ANY MANNER.

    Welcome to roadmap.sh. Please read on to learn the rules and restrictions that govern your use of our website(s), products, services and applications (the “Services”). If you have any questions, comments, or concerns regarding these terms or the Services, please contact us at kamranahmed.se@gmail.com.

    These Terms of Use (the “Terms”) are a binding contract between you and roadmap.sh (“roadmap.sh,” “we”, and “us”). You must agree to and accept all of the Terms, or you don’t have the right to use the Services. Your using the Services in any way means that you agree to all of these Terms, and these Terms will remain in effect while you use the Services. These Terms include the provisions in this document, as well as those in the Privacy Policy and Copyright Dispute Policy.

    Will these Terms ever change?

    We are constantly trying to improve our Services, so these Terms may need to change along with the Services. We reserve the right to change the Terms at any time, but if we do, we will bring it to your attention by updating the terms on the roadmap.sh website, by sending you an email, and/or by some other means.

    If you don’t agree with the new Terms, you are free to reject them, however it means you will no longer be able to use the Services. If you use the Services in any way after a change to the Terms is effective, that means you agree to all of the changes.

    Except for changes by us as described here, no other amendment or modification of these Terms will be effective unless in writing and signed by both you and us.

    Do these terms cover privacy?

    You can view the current roadmap.sh Privacy Policy here.

    The Children’s Online Privacy Protection Act (“COPPA”) requires that online service providers obtain parental consent before they knowingly collect personally identifiable information online from children who are under 13. We do not knowingly collect or solicit personally identifiable information from children under 13. If you are a child under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn we have collected personal information from a child under 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at kamranahmed.se@gmail.com.

    What are the basics of using roadmap.sh?

    You may be required to sign up for an account, and select a password and username. You agree to provide us with accurate, complete, and up-to-date registration information about yourself. You may not select as your username a name that you don’t have the right to use, or another person’s name with the intent to impersonate that person. You may not transfer your account to anyone else without our prior written permission.

    You represent and warrant that you are an individual of legal age to form a binding contract, or if not, you’ve received your parent’s or guardian’s permission to use the Services and gotten your parent or guardian to agree to these Terms on your behalf.

    You will only use the Services for your own internal, personal, non-commercial use, and not on behalf of or for the benefit of any third party, and only in a manner that complies with all laws that apply to you. If your use of the Services is prohibited by applicable laws, then you aren’t authorized to use the Services. We can’t and won’t be responsible for your using the Services in a way that breaks the law.

    You will not share your account or password with anyone, and you must protect the security of your account and your password. You’re responsible for any activity associated with your account.

    Your use of the Services is subject to the following additional restrictions:

    You represent, warrant, and agree that you will not contribute any Content or User Submission (each of those terms is defined below) or otherwise use the Services or interact with the Services in a manner that:

    (a) Infringes or violates the intellectual property rights or any other rights of anyone else (including roadmap.sh); (b) Violates any law or regulation, including any applicable export control laws; (c) Is harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable; (d) Jeopardizes the security of your roadmap.sh account or anyone else’s (such as allowing someone else to log in to the Services as you); (e) Attempts, in any manner, to obtain the password, account, or other security information from any other user; (f) Violates the security of any computer network, or cracks any passwords or security encryption codes; (g) Runs Maillist, Listserv, any form of auto-responder or “spam” on the Services, or any processes that run or are activated while you are not logged into the Services, or that otherwise interfere with the proper working of the Services (including by placing an unreasonable load on the Services’ infrastructure); (h) “Crawls,” “scrapes,” or “spiders” any page, data, or portion of or relating to the Services or Content (through use of manual or automated means); (i) Copies or stores any significant portion of the Content; (j) Decompiles, reverse engineers, or otherwise attempts to obtain the source code or underlying ideas or information of or relating to the Services.

    A violation of any of the foregoing is grounds for termination of your right to use or access the Services.

    What are my rights in roadmap.sh?

    The materials displayed or performed or available on or through the Services, including, but not limited to, text, graphics, data, articles, photos, images, illustrations, User Submissions, and so forth (all of the foregoing, the “Content”) are protected by copyright and/or other intellectual property laws. You promise to abide by all copyright notices, trademark rules, information, and restrictions contained in any Content you access through the Services, and you won’t use, copy, reproduce, modify, translate, publish, broadcast, transmit, distribute, perform, upload, display, license, sell or otherwise exploit for any purpose any Content not owned by you, (i) without the prior consent of the owner of that Content or (ii) in a way that violates someone else’s (including roadmap.sh’s) rights.

    You understand that roadmap.sh owns the Services. You won’t modify, publish, transmit, participate in the transfer or sale of, reproduce (except as expressly provided in this Section), create derivative works based on, or otherwise exploit any of the Services.

    The Services may allow you to copy or download certain Content; please remember that just because this functionality exists, doesn’t mean that all the restrictions above don’t apply – they do!

    Do I have to grant any licenses to roadmap.sh or to other users?

    Anything you post, upload, share, store, or otherwise provide through the Services is your “User Submission.” Some User Submissions are viewable by other users. In order to display your User Submissions on the Services, and to allow other users to enjoy them (where applicable), you grant us certain rights in those User Submissions. Please note that all of the following licenses are subject to our Privacy Policy to the extent they relate to User Submissions that are also your personally-identifiable information.

    For all User Submissions, you hereby grant roadmap.sh a license to translate, modify (for technical purposes, for example making sure your content is viewable on an iPhone as well as a computer) and reproduce and otherwise act with respect to such User Submissions, in each case to enable us to operate the Services, as described in more detail below. This is a license only – your ownership in User Submissions is not affected.

    If you store a User Submission in your own personal roadmap.sh account, in a manner that is not viewable by any other user except you (a “Personal User Submission”), you grant roadmap.sh the license above, as well as a license to display, perform, and distribute your Personal User Submission for the sole purpose of making that Personal User Submission accessible to you and providing the Services necessary to do so.

    If you share a User Submission only in a manner that only certain specified users can view (for example, a private message to one or more other users) (a “Limited Audience User Submission”), then you grant roadmap.sh the licenses above, as well as a license to display, perform, and distribute your Limited Audience User Submission for the sole purpose of making that Limited Audience User Submission accessible to such other specified users, and providing the Services necessary to do so. Also, you grant such other specified users a license to access that Limited Audience User Submission, and to use and exercise all rights in it, as permitted by the functionality of the Services.

    If you share a User Submission publicly on the Services and/or in a manner that more than just you or certain specified users can view, or if you provide us (in a direct email or otherwise) with any feedback, suggestions, improvements, enhancements, and/or feature requests relating to the Services] (each of the foregoing, a “Public User Submission”), then you grant roadmap.sh the licenses above, as well as a license to display, perform, and distribute your Public User Submission for the purpose of making that Public User Submission accessible to all roadmap.sh users and providing the Services necessary to do so, as well as all other rights necessary to use and exercise all rights in that Public User Submission in connection with the Services and/or otherwise in connection with roadmap.sh’s business for any purpose, provided that roadmap.sh will try to notify you if it uses your Public User Submission for any reason other than displaying it on the Services. Also, you grant all other users of the Services a license to access that Public User Submission, and to use and exercise all rights in it, as permitted by the functionality of the Services.

    You agree that the licenses you grant are royalty-free, perpetual, sublicenseable, irrevocable, and worldwide, provided that when you delete your roadmap.sh account, we will stop displaying your User Submissions (other than Public User Submissions, which may remain fully available)] to other users (if applicable), but you understand and agree that it may not be possible to completely delete that content from roadmap.sh’s records, and that your User Submissions may remain viewable elsewhere to the extent that they were copied or stored by other users.

    Finally, you understand and agree that roadmap.sh, in performing the required technical steps to provide the Services to our users (including you), may need to make changes to your User Submissions to conform and adapt those User Submissions to the technical requirements of connection networks, devices, services, or media, and the foregoing licenses include the rights to do so.

    What if I see something on the Services that infringes my copyright?

    You may have heard of the Digital Millennium Copyright Act (the “DMCA”), as it relates to online service providers, like roadmap.sh, being asked to remove material that allegedly violates someone’s copyright. We respect others’ intellectual property rights, and we reserve the right to delete or disable Content alleged to be infringing, and to terminate the accounts of repeat alleged infringers.

    Who is responsible for what I see and do on the Services?

    Any information or content publicly posted or privately transmitted through the Services is the sole responsibility of the person from whom such content originated, and you access all such information and content at your own risk, and we aren’t liable for any errors or omissions in that information or content or for any damages or loss you might suffer in connection with it. We cannot control and have no duty to take any action regarding how you may interpret and use the Content or what actions you may take as a result of having been exposed to the Content, and you hereby release us from all liability for you having acquired or not acquired Content through the Services. We can’t guarantee the identity of any users with whom you interact in using the Services and are not responsible for which users gain access to the Services.

    You are responsible for all Content you contribute, in any manner, to the Services, and you represent and warrant you have all rights necessary to do so, in the manner in which you contribute it. You will keep all your registration information accurate and current. You are responsible for all your activity in connection with the Services.

    The Services may contain links or connections to third party websites or services that are not owned or controlled by roadmap.sh. When you access third party websites or use third party services, you accept that there are risks in doing so, and that roadmap.sh is not responsible for such risks. We encourage you to be aware when you leave the Services and to read the terms and conditions and privacy policy of each third party website or service that you visit or utilize.

    roadmap.sh has no control over, and assumes no responsibility for, the content, accuracy, privacy policies, or practices of or opinions expressed in any third party websites or by any third party that you interact with through the Services. In addition, roadmap.sh will not and cannot monitor, verify, censor or edit the content of any third party site or service. By using the Services, you release and hold us harmless from any and all liability arising from your use of any third party website or service.

    Your interactions with organizations and/or individuals found on or through the Services, including payment and delivery of goods or services, and any other terms, conditions, warranties or representations associated with such dealings, are solely between you and such organizations and/or individuals. You should make whatever investigation you feel necessary or appropriate before proceeding with any online or offline transaction with any of these third parties. You agree that roadmap.sh shall not be responsible or liable for any loss or damage of any sort incurred as the result of any such dealings.

    If there is a dispute between participants on this site, or between users and any third party, you agree that roadmap.sh is under no obligation to become involved. In the event that you have a dispute with one or more other users, you release roadmap.sh, its officers, employees, agents, and successors from claims, demands, and damages of every kind or nature, known or unknown, suspected or unsuspected, disclosed or undisclosed, arising out of or in any way related to such disputes and/or our Services. If you are a California resident, you shall and hereby do waive California Civil Code Section 1542, which says: "A general release does not extend to claims which the creditor does not know or suspect to exist in his or her favor at the time of executing the release, which, if known by him or her must have materially affected his or her settlement with the debtor."

    Will roadmap.sh ever change the Services?

    We’re always trying to improve the Services, so they may change over time. We may suspend or discontinue any part of the Services, or we may introduce new features or impose limits on certain features or restrict access to parts or all of the Services. We’ll try to give you notice when we make a material change to the Services that would adversely affect you, but this isn’t always practical. Similarly, we reserve the right to remove any Content from the Services at any time, for any reason (including, but not limited to, if someone alleges you contributed that Content in violation of these Terms), in our sole discretion, and without notice.

    Does roadmap.sh cost anything?

    The roadmap.sh Services are currently free, but we reserve the right to charge for certain or all Services in the future. We will notify you before any Services you are then using begin carrying a fee, and if you wish to continue using such Services, you must pay all applicable fees for such Services.

    What if I want to stop using roadmap.sh?

    You’re free to do that at any time, by contacting us at kamranahmed.se@gmail.com; please refer to our Privacy Policy, as well as the licenses above, to understand how we treat information you provide to us after you have stopped using our Services. roadmap.sh is also free to terminate (or suspend access to) your use of the Services or your account, for any reason in our discretion, including your breach of these Terms. roadmap.sh has the sole right to decide whether you are in violation of any of the restrictions set forth in these Terms.

    Account termination may result in destruction of any Content associated with your account, so keep that in mind before you decide to terminate your account. We will try to provide advance notice to you prior to our terminating your account so that you are able to retrieve any important User Submissions you may have stored in your account (to the extent allowed by law and these Terms), but we may not do so if we determine it would be impractical, illegal, not in the interest of someone’s safety or security, or otherwise harmful to the rights or property of roadmap.sh.

    Provisions that, by their nature, should survive termination of these Terms shall survive termination. By way of example, all of the following will survive termination: any obligation you have to pay us or indemnify us, any limitations on our liability, any terms regarding ownership or intellectual property rights, and terms regarding disputes between us.

    What if I use roadmap.sh via an app available on the Apple App Store?

    These Terms apply to your use of all the Services, including the iOS applications available via the Apple, Inc. (“Apple”) App Store (the “Application”), but the following additional terms also apply to the Application:

    (a) Both you and roadmap.sh acknowledge that the Terms are concluded between you and roadmap.sh only, and not with Apple, and that Apple is not responsible for the Application or the Content; (b) The Application is licensed to you on a limited, non-exclusive, non-transferrable, non-sublicensable basis, solely to be used in connection with the Services for your private, personal, non-commercial use, subject to all the terms and conditions of these Terms as they are applicable to the Services; (c) You will only use the Application in connection with an Apple device that you own or control; (d) You acknowledge and agree that Apple has no obligation whatsoever to furnish any maintenance and support services with respect to the Application; (e) In the event of any failure of the Application to conform to any applicable warranty, including those implied by law, you may notify Apple of such failure; upon notification, Apple’s sole warranty obligation to you will be to refund to you the purchase price, if any, of the Application; (f) You acknowledge and agree that roadmap.sh, and not Apple, is responsible for addressing any claims you or any third party may have in relation to the Application; (g) You acknowledge and agree that, in the event of any third party claim that the Application or your possession and use of the Application infringes that third party’s intellectual property rights, roadmap.sh, and not Apple, will be responsible for the investigation, defense, settlement and discharge of any such infringement claim; (h) You represent and warrant that you are not located in a country subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country, and that you are not listed on any U.S. Government list of prohibited or restricted parties; (i) Both you and roadmap.sh acknowledge and agree that, in your use of the Application, you will comply with any applicable third party terms of agreement which may affect or be affected by such use; and (j) Both you and roadmap.sh acknowledge and agree that Apple and Apple’s subsidiaries are third party beneficiaries of these Terms, and that upon your acceptance of these Terms, Apple will have the right (and will be deemed to have accepted the right) to enforce these Terms against you as the third party beneficiary hereof.

    What are roadmap.sh's Terms of Sale?

    If you purchase any goods or services or license any software through the site whether or not in connection with an Offer or Discount, in addition to agreeing to these Terms of Use, you are agreeing to the Terms of Sale, available here.

    What else do I need to know?

    Warranty Disclaimer. Neither roadmap.sh nor its licensors or suppliers makes any representations or warranties concerning any content contained in or accessed through the Services, and we will not be responsible or liable for the accuracy, copyright compliance, legality, or decency of material contained in or accessed through the Services. We (and our licensors and suppliers) make no representations or warranties regarding suggestions or recommendations of services or products offered or purchased through the Services. Products and services purchased or offered (whether or not following such recommendations and suggestions) through the Services are provided “AS IS” and without any warranty of any kind from roadmap.sh or others (unless, with respect to such others only, provided expressly and unambiguously in writing by a designated third party for a specific product). THE SERVICES AND CONTENT ARE PROVIDED BY ROADMAP.SH (AND ITS LICENSORS AND SUPPLIERS) ON AN “AS-IS” BASIS, WITHOUT WARRANTIES OR ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR THAT USE OF THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. SOME STATES DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.

    Limitation of Liability. TO THE FULLEST EXTENT ALLOWED BY APPLICABLE LAW, UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL ROADMAP.SH (OR ITS LICENSORS OR SUPPLIERS) BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR (A) ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, OR COMPUTER FAILURE OR MALFUNCTION, OR (B) ANY AMOUNT, IN THE AGGREGATE, IN EXCESS OF THE GREATER OF (I) $100 OR (II) THE AMOUNTS PAID BY YOU TO ROADMAP.SH IN CONNECTION WITH THE SERVICES IN THE TWELVE (12) MONTH PERIOD PRECEDING THIS APPLICABLE CLAIM, OR (III) ANY MATTER BEYOND OUR REASONABLE CONTROL. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THE ABOVE LIMITATION AND EXCLUSIONS MAY NOT APPLY TO YOU.

    Indemnity. To the fullest extent allowed by applicable law, You agree to indemnify and hold roadmap.sh, its affiliates, officers, agents, employees, and partners harmless from and against any and all claims, liabilities, damages (actual and consequential), losses and expenses (including attorneys’ fees) arising from or in any way related to any third party claims relating to (a) your use of the Services (including any actions taken by a third party using your account), and (b) your violation of these Terms. In the event of such a claim, suit, or action (“Claim”), we will attempt to provide notice of the Claim to the contact information we have for your account (provided that failure to deliver such notice shall not eliminate or reduce your indemnification obligations hereunder).

    Assignment. You may not assign, delegate or transfer these Terms or your rights or obligations hereunder, or your Services account, in any way (by operation of law or otherwise) without roadmap.sh’s prior written consent. We may transfer, assign, or delegate these Terms and our rights and obligations without consent.

    Choice of Law; Arbitration. These Terms are governed by and will be construed under the laws of the State of California, without regard to the conflicts of laws provisions thereof. Any dispute arising from or relating to the subject matter of these Terms shall be finally settled in San Francisco County, California, in English, in accordance with the Streamlined Arbitration Rules and Procedures of Judicial Arbitration and Mediation Services, Inc. ("JAMS") then in effect, by one commercial arbitrator with substantial experience in resolving intellectual property and commercial contract disputes, who shall be selected from the appropriate list of JAMS arbitrators in accordance with such Rules. Judgment upon the award rendered by such arbitrator may be entered in any court of competent jurisdiction. Notwithstanding the foregoing obligation to arbitrate disputes, each party shall have the right to pursue injunctive or other equitable relief at any time, from any court of competent jurisdiction. For all purposes of this Agreement, the parties consent to exclusive jurisdiction and venue in the state or federal courts located in, respectively, San Francisco County, California, or the Northern District of California. Any arbitration under this Agreement will take place on an individual basis: class arbitrations and class actions are not permitted. YOU UNDERSTAND AND AGREE THAT BY ENTERING INTO THIS AGREEMENT, YOU AND ROADMAP.SH ARE EACH WAIVING THE RIGHT TO TRIAL BY JURY OR TO PARTICIPATE IN A CLASS ACTION.

    Miscellaneous. You will be responsible for paying, withholding, filing, and reporting all taxes, duties, and other governmental assessments associated with your activity in connection with the Services, provided that roadmap.sh may, in its sole discretion, do any of the foregoing on your behalf or for itself as it sees fit. The failure of either you or us to exercise, in any way, any right herein shall not be deemed a waiver of any further rights hereunder. If any provision of these Terms is found to be unenforceable or invalid, that provision will be limited or eliminated, to the minimum extent necessary, so that these Terms shall otherwise remain in full force and effect and enforceable. You and roadmap.sh agree that these Terms are the complete and exclusive statement of the mutual understanding between you and roadmap.sh, and that it supersedes and cancels all previous written and oral agreements, communications and other understandings relating to the subject matter of these Terms. You hereby acknowledge and agree that you are not an employee, agent, partner, or joint venture of roadmap.sh, and you do not have any authority of any kind to bind roadmap.sh in any respect whatsoever. Except as expressly set forth in the section above regarding the Apple Application, you and roadmap.sh agree there are no third party beneficiaries intended under these Terms.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Terms of Service

    PLEASE NOTE THAT YOUR USE OF AND ACCESS TO OUR SERVICES (DEFINED BELOW) ARE SUBJECT TO THE FOLLOWING TERMS; IF YOU DO NOT AGREE TO ALL OF THE FOLLOWING, YOU MAY NOT USE OR ACCESS THE SERVICES IN ANY MANNER.

    Welcome to roadmap.sh. Please read on to learn the rules and restrictions that govern your use of our website(s), products, services and applications (the “Services”). If you have any questions, comments, or concerns regarding these terms or the Services, please contact us at kamranahmed.se@gmail.com.

    These Terms of Use (the “Terms”) are a binding contract between you and roadmap.sh (“roadmap.sh,” “we”, and “us”). You must agree to and accept all of the Terms, or you don’t have the right to use the Services. Your using the Services in any way means that you agree to all of these Terms, and these Terms will remain in effect while you use the Services. These Terms include the provisions in this document, as well as those in the Privacy Policy and Copyright Dispute Policy.

    Will these Terms ever change?

    We are constantly trying to improve our Services, so these Terms may need to change along with the Services. We reserve the right to change the Terms at any time, but if we do, we will bring it to your attention by updating the terms on the roadmap.sh website, by sending you an email, and/or by some other means.

    If you don’t agree with the new Terms, you are free to reject them, however it means you will no longer be able to use the Services. If you use the Services in any way after a change to the Terms is effective, that means you agree to all of the changes.

    Except for changes by us as described here, no other amendment or modification of these Terms will be effective unless in writing and signed by both you and us.

    Do these terms cover privacy?

    You can view the current roadmap.sh Privacy Policy here.

    The Children’s Online Privacy Protection Act (“COPPA”) requires that online service providers obtain parental consent before they knowingly collect personally identifiable information online from children who are under 13. We do not knowingly collect or solicit personally identifiable information from children under 13. If you are a child under 13, please do not attempt to register for the Services or send any personal information about yourself to us. If we learn we have collected personal information from a child under 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us personal information, please contact us at kamranahmed.se@gmail.com.

    What are the basics of using roadmap.sh?

    You may be required to sign up for an account, and select a password and username. You agree to provide us with accurate, complete, and up-to-date registration information about yourself. You may not select as your username a name that you don’t have the right to use, or another person’s name with the intent to impersonate that person. You may not transfer your account to anyone else without our prior written permission.

    You represent and warrant that you are an individual of legal age to form a binding contract, or if not, you’ve received your parent’s or guardian’s permission to use the Services and gotten your parent or guardian to agree to these Terms on your behalf.

    You will only use the Services for your own internal, personal, non-commercial use, and not on behalf of or for the benefit of any third party, and only in a manner that complies with all laws that apply to you. If your use of the Services is prohibited by applicable laws, then you aren’t authorized to use the Services. We can’t and won’t be responsible for your using the Services in a way that breaks the law.

    You will not share your account or password with anyone, and you must protect the security of your account and your password. You’re responsible for any activity associated with your account.

    Your use of the Services is subject to the following additional restrictions:

    You represent, warrant, and agree that you will not contribute any Content or User Submission (each of those terms is defined below) or otherwise use the Services or interact with the Services in a manner that:

    (a) Infringes or violates the intellectual property rights or any other rights of anyone else (including roadmap.sh); (b) Violates any law or regulation, including any applicable export control laws; (c) Is harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable; (d) Jeopardizes the security of your roadmap.sh account or anyone else’s (such as allowing someone else to log in to the Services as you); (e) Attempts, in any manner, to obtain the password, account, or other security information from any other user; (f) Violates the security of any computer network, or cracks any passwords or security encryption codes; (g) Runs Maillist, Listserv, any form of auto-responder or “spam” on the Services, or any processes that run or are activated while you are not logged into the Services, or that otherwise interfere with the proper working of the Services (including by placing an unreasonable load on the Services’ infrastructure); (h) “Crawls,” “scrapes,” or “spiders” any page, data, or portion of or relating to the Services or Content (through use of manual or automated means); (i) Copies or stores any significant portion of the Content; (j) Decompiles, reverse engineers, or otherwise attempts to obtain the source code or underlying ideas or information of or relating to the Services.

    A violation of any of the foregoing is grounds for termination of your right to use or access the Services.

    What are my rights in roadmap.sh?

    The materials displayed or performed or available on or through the Services, including, but not limited to, text, graphics, data, articles, photos, images, illustrations, User Submissions, and so forth (all of the foregoing, the “Content”) are protected by copyright and/or other intellectual property laws. You promise to abide by all copyright notices, trademark rules, information, and restrictions contained in any Content you access through the Services, and you won’t use, copy, reproduce, modify, translate, publish, broadcast, transmit, distribute, perform, upload, display, license, sell or otherwise exploit for any purpose any Content not owned by you, (i) without the prior consent of the owner of that Content or (ii) in a way that violates someone else’s (including roadmap.sh’s) rights.

    You understand that roadmap.sh owns the Services. You won’t modify, publish, transmit, participate in the transfer or sale of, reproduce (except as expressly provided in this Section), create derivative works based on, or otherwise exploit any of the Services.

    The Services may allow you to copy or download certain Content; please remember that just because this functionality exists, doesn’t mean that all the restrictions above don’t apply – they do!

    Do I have to grant any licenses to roadmap.sh or to other users?

    Anything you post, upload, share, store, or otherwise provide through the Services is your “User Submission.” Some User Submissions are viewable by other users. In order to display your User Submissions on the Services, and to allow other users to enjoy them (where applicable), you grant us certain rights in those User Submissions. Please note that all of the following licenses are subject to our Privacy Policy to the extent they relate to User Submissions that are also your personally-identifiable information.

    For all User Submissions, you hereby grant roadmap.sh a license to translate, modify (for technical purposes, for example making sure your content is viewable on an iPhone as well as a computer) and reproduce and otherwise act with respect to such User Submissions, in each case to enable us to operate the Services, as described in more detail below. This is a license only – your ownership in User Submissions is not affected.

    If you store a User Submission in your own personal roadmap.sh account, in a manner that is not viewable by any other user except you (a “Personal User Submission”), you grant roadmap.sh the license above, as well as a license to display, perform, and distribute your Personal User Submission for the sole purpose of making that Personal User Submission accessible to you and providing the Services necessary to do so.

    If you share a User Submission only in a manner that only certain specified users can view (for example, a private message to one or more other users) (a “Limited Audience User Submission”), then you grant roadmap.sh the licenses above, as well as a license to display, perform, and distribute your Limited Audience User Submission for the sole purpose of making that Limited Audience User Submission accessible to such other specified users, and providing the Services necessary to do so. Also, you grant such other specified users a license to access that Limited Audience User Submission, and to use and exercise all rights in it, as permitted by the functionality of the Services.

    If you share a User Submission publicly on the Services and/or in a manner that more than just you or certain specified users can view, or if you provide us (in a direct email or otherwise) with any feedback, suggestions, improvements, enhancements, and/or feature requests relating to the Services] (each of the foregoing, a “Public User Submission”), then you grant roadmap.sh the licenses above, as well as a license to display, perform, and distribute your Public User Submission for the purpose of making that Public User Submission accessible to all roadmap.sh users and providing the Services necessary to do so, as well as all other rights necessary to use and exercise all rights in that Public User Submission in connection with the Services and/or otherwise in connection with roadmap.sh’s business for any purpose, provided that roadmap.sh will try to notify you if it uses your Public User Submission for any reason other than displaying it on the Services. Also, you grant all other users of the Services a license to access that Public User Submission, and to use and exercise all rights in it, as permitted by the functionality of the Services.

    You agree that the licenses you grant are royalty-free, perpetual, sublicenseable, irrevocable, and worldwide, provided that when you delete your roadmap.sh account, we will stop displaying your User Submissions (other than Public User Submissions, which may remain fully available)] to other users (if applicable), but you understand and agree that it may not be possible to completely delete that content from roadmap.sh’s records, and that your User Submissions may remain viewable elsewhere to the extent that they were copied or stored by other users.

    Finally, you understand and agree that roadmap.sh, in performing the required technical steps to provide the Services to our users (including you), may need to make changes to your User Submissions to conform and adapt those User Submissions to the technical requirements of connection networks, devices, services, or media, and the foregoing licenses include the rights to do so.

    What if I see something on the Services that infringes my copyright?

    You may have heard of the Digital Millennium Copyright Act (the “DMCA”), as it relates to online service providers, like roadmap.sh, being asked to remove material that allegedly violates someone’s copyright. We respect others’ intellectual property rights, and we reserve the right to delete or disable Content alleged to be infringing, and to terminate the accounts of repeat alleged infringers.

    Who is responsible for what I see and do on the Services?

    Any information or content publicly posted or privately transmitted through the Services is the sole responsibility of the person from whom such content originated, and you access all such information and content at your own risk, and we aren’t liable for any errors or omissions in that information or content or for any damages or loss you might suffer in connection with it. We cannot control and have no duty to take any action regarding how you may interpret and use the Content or what actions you may take as a result of having been exposed to the Content, and you hereby release us from all liability for you having acquired or not acquired Content through the Services. We can’t guarantee the identity of any users with whom you interact in using the Services and are not responsible for which users gain access to the Services.

    You are responsible for all Content you contribute, in any manner, to the Services, and you represent and warrant you have all rights necessary to do so, in the manner in which you contribute it. You will keep all your registration information accurate and current. You are responsible for all your activity in connection with the Services.

    The Services may contain links or connections to third party websites or services that are not owned or controlled by roadmap.sh. When you access third party websites or use third party services, you accept that there are risks in doing so, and that roadmap.sh is not responsible for such risks. We encourage you to be aware when you leave the Services and to read the terms and conditions and privacy policy of each third party website or service that you visit or utilize.

    roadmap.sh has no control over, and assumes no responsibility for, the content, accuracy, privacy policies, or practices of or opinions expressed in any third party websites or by any third party that you interact with through the Services. In addition, roadmap.sh will not and cannot monitor, verify, censor or edit the content of any third party site or service. By using the Services, you release and hold us harmless from any and all liability arising from your use of any third party website or service.

    Your interactions with organizations and/or individuals found on or through the Services, including payment and delivery of goods or services, and any other terms, conditions, warranties or representations associated with such dealings, are solely between you and such organizations and/or individuals. You should make whatever investigation you feel necessary or appropriate before proceeding with any online or offline transaction with any of these third parties. You agree that roadmap.sh shall not be responsible or liable for any loss or damage of any sort incurred as the result of any such dealings.

    If there is a dispute between participants on this site, or between users and any third party, you agree that roadmap.sh is under no obligation to become involved. In the event that you have a dispute with one or more other users, you release roadmap.sh, its officers, employees, agents, and successors from claims, demands, and damages of every kind or nature, known or unknown, suspected or unsuspected, disclosed or undisclosed, arising out of or in any way related to such disputes and/or our Services. If you are a California resident, you shall and hereby do waive California Civil Code Section 1542, which says: "A general release does not extend to claims which the creditor does not know or suspect to exist in his or her favor at the time of executing the release, which, if known by him or her must have materially affected his or her settlement with the debtor."

    Will roadmap.sh ever change the Services?

    We’re always trying to improve the Services, so they may change over time. We may suspend or discontinue any part of the Services, or we may introduce new features or impose limits on certain features or restrict access to parts or all of the Services. We’ll try to give you notice when we make a material change to the Services that would adversely affect you, but this isn’t always practical. Similarly, we reserve the right to remove any Content from the Services at any time, for any reason (including, but not limited to, if someone alleges you contributed that Content in violation of these Terms), in our sole discretion, and without notice.

    Does roadmap.sh cost anything?

    The roadmap.sh Services are currently free, but we reserve the right to charge for certain or all Services in the future. We will notify you before any Services you are then using begin carrying a fee, and if you wish to continue using such Services, you must pay all applicable fees for such Services.

    What if I want to stop using roadmap.sh?

    You’re free to do that at any time, by contacting us at kamranahmed.se@gmail.com; please refer to our Privacy Policy, as well as the licenses above, to understand how we treat information you provide to us after you have stopped using our Services. roadmap.sh is also free to terminate (or suspend access to) your use of the Services or your account, for any reason in our discretion, including your breach of these Terms. roadmap.sh has the sole right to decide whether you are in violation of any of the restrictions set forth in these Terms.

    Account termination may result in destruction of any Content associated with your account, so keep that in mind before you decide to terminate your account. We will try to provide advance notice to you prior to our terminating your account so that you are able to retrieve any important User Submissions you may have stored in your account (to the extent allowed by law and these Terms), but we may not do so if we determine it would be impractical, illegal, not in the interest of someone’s safety or security, or otherwise harmful to the rights or property of roadmap.sh.

    Provisions that, by their nature, should survive termination of these Terms shall survive termination. By way of example, all of the following will survive termination: any obligation you have to pay us or indemnify us, any limitations on our liability, any terms regarding ownership or intellectual property rights, and terms regarding disputes between us.

    What if I use roadmap.sh via an app available on the Apple App Store?

    These Terms apply to your use of all the Services, including the iOS applications available via the Apple, Inc. (“Apple”) App Store (the “Application”), but the following additional terms also apply to the Application:

    (a) Both you and roadmap.sh acknowledge that the Terms are concluded between you and roadmap.sh only, and not with Apple, and that Apple is not responsible for the Application or the Content; (b) The Application is licensed to you on a limited, non-exclusive, non-transferrable, non-sublicensable basis, solely to be used in connection with the Services for your private, personal, non-commercial use, subject to all the terms and conditions of these Terms as they are applicable to the Services; (c) You will only use the Application in connection with an Apple device that you own or control; (d) You acknowledge and agree that Apple has no obligation whatsoever to furnish any maintenance and support services with respect to the Application; (e) In the event of any failure of the Application to conform to any applicable warranty, including those implied by law, you may notify Apple of such failure; upon notification, Apple’s sole warranty obligation to you will be to refund to you the purchase price, if any, of the Application; (f) You acknowledge and agree that roadmap.sh, and not Apple, is responsible for addressing any claims you or any third party may have in relation to the Application; (g) You acknowledge and agree that, in the event of any third party claim that the Application or your possession and use of the Application infringes that third party’s intellectual property rights, roadmap.sh, and not Apple, will be responsible for the investigation, defense, settlement and discharge of any such infringement claim; (h) You represent and warrant that you are not located in a country subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country, and that you are not listed on any U.S. Government list of prohibited or restricted parties; (i) Both you and roadmap.sh acknowledge and agree that, in your use of the Application, you will comply with any applicable third party terms of agreement which may affect or be affected by such use; and (j) Both you and roadmap.sh acknowledge and agree that Apple and Apple’s subsidiaries are third party beneficiaries of these Terms, and that upon your acceptance of these Terms, Apple will have the right (and will be deemed to have accepted the right) to enforce these Terms against you as the third party beneficiary hereof.

    What are roadmap.sh's Terms of Sale?

    If you purchase any goods or services or license any software through the site whether or not in connection with an Offer or Discount, in addition to agreeing to these Terms of Use, you are agreeing to the Terms of Sale, available here.

    What else do I need to know?

    Warranty Disclaimer. Neither roadmap.sh nor its licensors or suppliers makes any representations or warranties concerning any content contained in or accessed through the Services, and we will not be responsible or liable for the accuracy, copyright compliance, legality, or decency of material contained in or accessed through the Services. We (and our licensors and suppliers) make no representations or warranties regarding suggestions or recommendations of services or products offered or purchased through the Services. Products and services purchased or offered (whether or not following such recommendations and suggestions) through the Services are provided “AS IS” and without any warranty of any kind from roadmap.sh or others (unless, with respect to such others only, provided expressly and unambiguously in writing by a designated third party for a specific product). THE SERVICES AND CONTENT ARE PROVIDED BY ROADMAP.SH (AND ITS LICENSORS AND SUPPLIERS) ON AN “AS-IS” BASIS, WITHOUT WARRANTIES OR ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR THAT USE OF THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. SOME STATES DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.

    Limitation of Liability. TO THE FULLEST EXTENT ALLOWED BY APPLICABLE LAW, UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL ROADMAP.SH (OR ITS LICENSORS OR SUPPLIERS) BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR (A) ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, OR COMPUTER FAILURE OR MALFUNCTION, OR (B) ANY AMOUNT, IN THE AGGREGATE, IN EXCESS OF THE GREATER OF (I) $100 OR (II) THE AMOUNTS PAID BY YOU TO ROADMAP.SH IN CONNECTION WITH THE SERVICES IN THE TWELVE (12) MONTH PERIOD PRECEDING THIS APPLICABLE CLAIM, OR (III) ANY MATTER BEYOND OUR REASONABLE CONTROL. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THE ABOVE LIMITATION AND EXCLUSIONS MAY NOT APPLY TO YOU.

    Indemnity. To the fullest extent allowed by applicable law, You agree to indemnify and hold roadmap.sh, its affiliates, officers, agents, employees, and partners harmless from and against any and all claims, liabilities, damages (actual and consequential), losses and expenses (including attorneys’ fees) arising from or in any way related to any third party claims relating to (a) your use of the Services (including any actions taken by a third party using your account), and (b) your violation of these Terms. In the event of such a claim, suit, or action (“Claim”), we will attempt to provide notice of the Claim to the contact information we have for your account (provided that failure to deliver such notice shall not eliminate or reduce your indemnification obligations hereunder).

    Assignment. You may not assign, delegate or transfer these Terms or your rights or obligations hereunder, or your Services account, in any way (by operation of law or otherwise) without roadmap.sh’s prior written consent. We may transfer, assign, or delegate these Terms and our rights and obligations without consent.

    Choice of Law; Arbitration. These Terms are governed by and will be construed under the laws of the State of California, without regard to the conflicts of laws provisions thereof. Any dispute arising from or relating to the subject matter of these Terms shall be finally settled in San Francisco County, California, in English, in accordance with the Streamlined Arbitration Rules and Procedures of Judicial Arbitration and Mediation Services, Inc. ("JAMS") then in effect, by one commercial arbitrator with substantial experience in resolving intellectual property and commercial contract disputes, who shall be selected from the appropriate list of JAMS arbitrators in accordance with such Rules. Judgment upon the award rendered by such arbitrator may be entered in any court of competent jurisdiction. Notwithstanding the foregoing obligation to arbitrate disputes, each party shall have the right to pursue injunctive or other equitable relief at any time, from any court of competent jurisdiction. For all purposes of this Agreement, the parties consent to exclusive jurisdiction and venue in the state or federal courts located in, respectively, San Francisco County, California, or the Northern District of California. Any arbitration under this Agreement will take place on an individual basis: class arbitrations and class actions are not permitted. YOU UNDERSTAND AND AGREE THAT BY ENTERING INTO THIS AGREEMENT, YOU AND ROADMAP.SH ARE EACH WAIVING THE RIGHT TO TRIAL BY JURY OR TO PARTICIPATE IN A CLASS ACTION.

    Miscellaneous. You will be responsible for paying, withholding, filing, and reporting all taxes, duties, and other governmental assessments associated with your activity in connection with the Services, provided that roadmap.sh may, in its sole discretion, do any of the foregoing on your behalf or for itself as it sees fit. The failure of either you or us to exercise, in any way, any right herein shall not be deemed a waiver of any further rights hereunder. If any provision of these Terms is found to be unenforceable or invalid, that provision will be limited or eliminated, to the minimum extent necessary, so that these Terms shall otherwise remain in full force and effect and enforceable. You and roadmap.sh agree that these Terms are the complete and exclusive statement of the mutual understanding between you and roadmap.sh, and that it supersedes and cancels all previous written and oral agreements, communications and other understandings relating to the subject matter of these Terms. You hereby acknowledge and agree that you are not an employee, agent, partner, or joint venture of roadmap.sh, and you do not have any authority of any kind to bind roadmap.sh in any respect whatsoever. Except as expressly set forth in the section above regarding the Apple Application, you and roadmap.sh agree there are no third party beneficiaries intended under these Terms.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/thanks.html b/thanks.html index 54bf8594c..6ddbce505 100644 --- a/thanks.html +++ b/thanks.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Thanks!

    The project has been made possible by the all the wonderful humans and companies supporting the project on GitHub Sponsors and we are truly grateful for that.

    Companies

    park.io

    Monthly Sponsors

    • Josue V
    • Novecento88
    • Myroslav
    • Gerald-Markus Zabos
    • Ahmed Bebars
    • Hassan Abudu
    • Stuart Bowles
    • Joseph Jacks
    • Mustafa Magdi

    Support the Project

    Sponsor me on GitHub to help ensure the continuity of the project.

    Sponsor me on GitHub

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Thanks!

    The project has been made possible by the all the wonderful humans and companies supporting the project on GitHub Sponsors and we are truly grateful for that.

    Companies

    park.io

    Monthly Sponsors

    • Josue V
    • Novecento88
    • Myroslav
    • Gerald-Markus Zabos
    • Ahmed Bebars
    • Hassan Abudu
    • Stuart Bowles
    • Joseph Jacks
    • Mustafa Magdi

    Support the Project

    Sponsor me on GitHub to help ensure the continuity of the project.

    Sponsor me on GitHub

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch.html b/watch.html index d19ef4297..48a4330ae 100644 --- a/watch.html +++ b/watch.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Watch

    Graphical video demonstrations on development topics

    NewNovember 30, 2021

    What is Eventual Consistency?

    Learn about the different consistency models in distributed systems

    NewNovember 25, 2021

    SSH vs TLS vs SSL

    Learn the difference between SSH, TLS and SSL

    November 14, 2021

    Asynchronous JavaScript

    Learn how to write asynchronous JavaScript using Async/Await

    November 3, 2021

    Random Number Generators

    How do random number generators work?

    October 25, 2021

    Big O Notation

    Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.

    October 18, 2021

    YAML in Depth

    Everything you need to know about YAML

    October 10, 2021

    Floating Point Arithmetic

    Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.

    October 5, 2021

    What is CAP Theorem?

    An illustrated explanation to CAP theorem with examples and proof.

    September 26, 2021

    ACID Explained

    Learn what it means for a database to be ACID compliant with examples.

    November 21, 2020

    Transport Protocols: TCP vs UDP

    Learn about the Transport Layer of the TCP/IP model and different transport protocols.

    November 6, 2020

    TCP/IP Model Explained

    Learn what is TCP/IP Model and the different layers involved.

    October 24, 2020

    OSI Model Explained

    Learn what is OSI Model and the different layers involved.

    October 16, 2020

    Freeze and Seal in JavaScript

    Learn what is OSI Model and the different layers involved.

    October 4, 2020

    All about HTTP Caching

    Learn what is HTTP caching, places for caching and different caching headers.

    September 26, 2020

    Content Delivery Networks

    Learn what the CDNs are and the difference between push CDN vs pull CDN.

    September 18, 2020

    Load Balancers 101

    Learn the basics of load balancers, types and different algorithms.

    August 31, 2020

    DNS Records

    Learn what the DNS is and how a website is found on the internet.

    August 17, 2020

    DNS and how does it work?

    Learn what the DNS is and how a website is found on the internet.

    August 8, 2020

    System Design 101

    Learn about all the bits and pieces of system design.

    August 2, 2020

    JavaScript Fetch API

    Learn how to use JavaScript's Fetch API to interact with remote API.

    July 26, 2020

    Scaling the Unscalable

    Learn the basics of System Design and understand how to build a scalable application.

    July 20, 2020

    All about Promises in JavaScript

    Learn how to write asynchronous code in JavaScript using promises.

    July 20, 2020

    DOM, Shadow DOM, Virtual DOM

    Learn what is DOM, Shadow DOM and Virtual DOM and how they work.

    July 13, 2020

    Automate with GitHub Actions

    Learn how to implement CI/CD with GitHub Actions

    July 9, 2020

    Practical Introduction to React

    Learn how to create a React Application with practical example.

    July 4, 2020

    What is Dependency Injection?

    Learn what is dependency injection and how to write better code with the help of it.

    July 3, 2020

    How to use CSS Variables?

    Learn how to write scalable CSS using CSS Variables.

    May 9, 2020

    Arrays and Objects in JavaScript

    Learn how to manipulate arrays and objects in JavaScript.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe

    Watch

    Graphical video demonstrations on development topics

    NewNovember 30, 2021

    What is Eventual Consistency?

    Learn about the different consistency models in distributed systems

    NewNovember 25, 2021

    SSH vs TLS vs SSL

    Learn the difference between SSH, TLS and SSL

    November 14, 2021

    Asynchronous JavaScript

    Learn how to write asynchronous JavaScript using Async/Await

    November 3, 2021

    Random Number Generators

    How do random number generators work?

    October 25, 2021

    Big O Notation

    Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.

    October 18, 2021

    YAML in Depth

    Everything you need to know about YAML

    October 10, 2021

    Floating Point Arithmetic

    Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.

    October 5, 2021

    What is CAP Theorem?

    An illustrated explanation to CAP theorem with examples and proof.

    September 26, 2021

    ACID Explained

    Learn what it means for a database to be ACID compliant with examples.

    November 21, 2020

    Transport Protocols: TCP vs UDP

    Learn about the Transport Layer of the TCP/IP model and different transport protocols.

    November 6, 2020

    TCP/IP Model Explained

    Learn what is TCP/IP Model and the different layers involved.

    October 24, 2020

    OSI Model Explained

    Learn what is OSI Model and the different layers involved.

    October 16, 2020

    Freeze and Seal in JavaScript

    Learn what is OSI Model and the different layers involved.

    October 4, 2020

    All about HTTP Caching

    Learn what is HTTP caching, places for caching and different caching headers.

    September 26, 2020

    Content Delivery Networks

    Learn what the CDNs are and the difference between push CDN vs pull CDN.

    September 18, 2020

    Load Balancers 101

    Learn the basics of load balancers, types and different algorithms.

    August 31, 2020

    DNS Records

    Learn what the DNS is and how a website is found on the internet.

    August 17, 2020

    DNS and how does it work?

    Learn what the DNS is and how a website is found on the internet.

    August 8, 2020

    System Design 101

    Learn about all the bits and pieces of system design.

    August 2, 2020

    JavaScript Fetch API

    Learn how to use JavaScript's Fetch API to interact with remote API.

    July 26, 2020

    Scaling the Unscalable

    Learn the basics of System Design and understand how to build a scalable application.

    July 20, 2020

    All about Promises in JavaScript

    Learn how to write asynchronous code in JavaScript using promises.

    July 20, 2020

    DOM, Shadow DOM, Virtual DOM

    Learn what is DOM, Shadow DOM and Virtual DOM and how they work.

    July 13, 2020

    Automate with GitHub Actions

    Learn how to implement CI/CD with GitHub Actions

    July 9, 2020

    Practical Introduction to React

    Learn how to create a React Application with practical example.

    July 4, 2020

    What is Dependency Injection?

    Learn what is dependency injection and how to write better code with the help of it.

    July 3, 2020

    How to use CSS Variables?

    Learn how to write scalable CSS using CSS Variables.

    May 9, 2020

    Arrays and Objects in JavaScript

    Learn how to manipulate arrays and objects in JavaScript.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/acid-explained.html b/watch/acid-explained.html index a2aa7a595..74d5a284b 100644 --- a/watch/acid-explained.html +++ b/watch/acid-explained.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 26, 2021·Watch on YouTube

    ACID Explained

    Learn what it means for a database to be ACID compliant with examples.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 26, 2021·Watch on YouTube

    ACID Explained

    Learn what it means for a database to be ACID compliant with examples.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/all-about-http-caching.html b/watch/all-about-http-caching.html index 79fab9f38..0b7892a9f 100644 --- a/watch/all-about-http-caching.html +++ b/watch/all-about-http-caching.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 4, 2020·Watch on YouTube

    All about HTTP Caching

    Learn what is HTTP caching, places for caching and different caching headers.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 4, 2020·Watch on YouTube

    All about HTTP Caching

    Learn what is HTTP caching, places for caching and different caching headers.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/arrays-and-objects-in-javascript.html b/watch/arrays-and-objects-in-javascript.html index 1d6dbf02c..e3fb929f5 100644 --- a/watch/arrays-and-objects-in-javascript.html +++ b/watch/arrays-and-objects-in-javascript.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 9, 2020·Watch on YouTube

    Arrays and Objects in JavaScript

    Learn how to manipulate arrays and objects in JavaScript.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·May 9, 2020·Watch on YouTube

    Arrays and Objects in JavaScript

    Learn how to manipulate arrays and objects in JavaScript.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/async-javascript.html b/watch/async-javascript.html index 4d82ddf9a..4019997a3 100644 --- a/watch/async-javascript.html +++ b/watch/async-javascript.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 14, 2021·Watch on YouTube

    Asynchronous JavaScript

    Learn how to write asynchronous JavaScript using Async/Await

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 14, 2021·Watch on YouTube

    Asynchronous JavaScript

    Learn how to write asynchronous JavaScript using Async/Await

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/big-o-notation.html b/watch/big-o-notation.html index ec9de3d9e..574243cbd 100644 --- a/watch/big-o-notation.html +++ b/watch/big-o-notation.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 25, 2021·Watch on YouTube

    Big O Notation

    Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 25, 2021·Watch on YouTube

    Big O Notation

    Learn what the Big-O notation is and how to calculate the time complexity of an algorithm.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/content-delivery-networks.html b/watch/content-delivery-networks.html index 11e589582..ab9724c26 100644 --- a/watch/content-delivery-networks.html +++ b/watch/content-delivery-networks.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 26, 2020·Watch on YouTube

    Content Delivery Networks

    Learn what the CDNs are and the difference between push CDN vs pull CDN.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 26, 2020·Watch on YouTube

    Content Delivery Networks

    Learn what the CDNs are and the difference between push CDN vs pull CDN.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/dns-explained.html b/watch/dns-explained.html index 59d886abf..540fd1f63 100644 --- a/watch/dns-explained.html +++ b/watch/dns-explained.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 17, 2020·Watch on YouTube

    DNS and how does it work?

    Learn what the DNS is and how a website is found on the internet.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 17, 2020·Watch on YouTube

    DNS and how does it work?

    Learn what the DNS is and how a website is found on the internet.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/dns-records.html b/watch/dns-records.html index 6fe267660..d453b87e6 100644 --- a/watch/dns-records.html +++ b/watch/dns-records.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 31, 2020·Watch on YouTube

    DNS Records

    Learn what the DNS is and how a website is found on the internet.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 31, 2020·Watch on YouTube

    DNS Records

    Learn what the DNS is and how a website is found on the internet.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/floating-point-arithmetic.html b/watch/floating-point-arithmetic.html index 1c39d8ac6..af8d9ea60 100644 --- a/watch/floating-point-arithmetic.html +++ b/watch/floating-point-arithmetic.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 10, 2021·Watch on YouTube

    Floating Point Arithmetic

    Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 10, 2021·Watch on YouTube

    Floating Point Arithmetic

    Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/freeze-and-seal-objects-in-javascript.html b/watch/freeze-and-seal-objects-in-javascript.html index 7546896fe..aca634e30 100644 --- a/watch/freeze-and-seal-objects-in-javascript.html +++ b/watch/freeze-and-seal-objects-in-javascript.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 16, 2020·Watch on YouTube

    Freeze and Seal in JavaScript

    Learn what is OSI Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 16, 2020·Watch on YouTube

    Freeze and Seal in JavaScript

    Learn what is OSI Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/how-to-use-css-variables.html b/watch/how-to-use-css-variables.html index fe1799108..7d3ccb87f 100644 --- a/watch/how-to-use-css-variables.html +++ b/watch/how-to-use-css-variables.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 3, 2020·Watch on YouTube

    How to use CSS Variables?

    Learn how to write scalable CSS using CSS Variables.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 3, 2020·Watch on YouTube

    How to use CSS Variables?

    Learn how to write scalable CSS using CSS Variables.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/how-to-use-github-actions.html b/watch/how-to-use-github-actions.html index fbc8e756f..8e0317507 100644 --- a/watch/how-to-use-github-actions.html +++ b/watch/how-to-use-github-actions.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 13, 2020·Watch on YouTube

    Automate with GitHub Actions

    Learn how to implement CI/CD with GitHub Actions

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 13, 2020·Watch on YouTube

    Automate with GitHub Actions

    Learn how to implement CI/CD with GitHub Actions

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/javascript-fetch-api.html b/watch/javascript-fetch-api.html index 71ab51c19..2b4ec8384 100644 --- a/watch/javascript-fetch-api.html +++ b/watch/javascript-fetch-api.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 2, 2020·Watch on YouTube

    JavaScript Fetch API

    Learn how to use JavaScript's Fetch API to interact with remote API.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 2, 2020·Watch on YouTube

    JavaScript Fetch API

    Learn how to use JavaScript's Fetch API to interact with remote API.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/load-balancers-101.html b/watch/load-balancers-101.html index 63d548519..536654afe 100644 --- a/watch/load-balancers-101.html +++ b/watch/load-balancers-101.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 18, 2020·Watch on YouTube

    Load Balancers 101

    Learn the basics of load balancers, types and different algorithms.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·September 18, 2020·Watch on YouTube

    Load Balancers 101

    Learn the basics of load balancers, types and different algorithms.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/osi-model.html b/watch/osi-model.html index 01b6aece7..5801ab755 100644 --- a/watch/osi-model.html +++ b/watch/osi-model.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 24, 2020·Watch on YouTube

    OSI Model Explained

    Learn what is OSI Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 24, 2020·Watch on YouTube

    OSI Model Explained

    Learn what is OSI Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/practical-intro-to-react.html b/watch/practical-intro-to-react.html index e47de0b1e..d022c9a66 100644 --- a/watch/practical-intro-to-react.html +++ b/watch/practical-intro-to-react.html @@ -3,7 +3,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 9, 2020·Watch on YouTube

    Practical Introduction to React

    Learn how to create a React Application with practical example.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    In this short series of lessons, we are going to create a react app from scratch. We are mainly going to use React and Chakra UI and see how we can build an application that fetches the trending projects from GitHub's API and shows you in the form of listing.

    If you want to get an idea of what we are going to be building have a look at GitHunt. Also the complete source code can be found at @kamranahmedse/githunt

    Intro and Basic Setup

    The video below gives you the basic introduction about the project and explains what we are going to build.

    Building the Interface

    In this second lesson we are going to create all the required components and the UI using Chakra UI and in the next lesson of this series we are going to start adding interactivity to our application.

    Building the View Switcher

    In this lesson we start adding interactivity to the interface. We will be building the view switcher where you can switch between the "Grid View" and the "List View" and in the next and last lesson of the series, we are going to integrate GitHub API and show the repositories.

    Fetching Remote Data

    Below is the final lesson where we complete the application by integrating the GitHub API to make the data dynamic.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 9, 2020·Watch on YouTube

    Practical Introduction to React

    Learn how to create a React Application with practical example.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    In this short series of lessons, we are going to create a react app from scratch. We are mainly going to use React and Chakra UI and see how we can build an application that fetches the trending projects from GitHub's API and shows you in the form of listing.

    If you want to get an idea of what we are going to be building have a look at GitHunt. Also the complete source code can be found at @kamranahmedse/githunt

    Intro and Basic Setup

    The video below gives you the basic introduction about the project and explains what we are going to build.

    Building the Interface

    In this second lesson we are going to create all the required components and the UI using Chakra UI and in the next lesson of this series we are going to start adding interactivity to our application.

    Building the View Switcher

    In this lesson we start adding interactivity to the interface. We will be building the view switcher where you can switch between the "Grid View" and the "List View" and in the next and last lesson of the series, we are going to integrate GitHub API and show the repositories.

    Fetching Remote Data

    Below is the final lesson where we complete the application by integrating the GitHub API to make the data dynamic.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/promises-in-javascript.html b/watch/promises-in-javascript.html index 8d40ce31f..bb8b5ed7d 100644 --- a/watch/promises-in-javascript.html +++ b/watch/promises-in-javascript.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 20, 2020·Watch on YouTube

    All about Promises in JavaScript

    Learn how to write asynchronous code in JavaScript using promises.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 20, 2020·Watch on YouTube

    All about Promises in JavaScript

    Learn how to write asynchronous code in JavaScript using promises.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/random-number-generators.html b/watch/random-number-generators.html index ccfa3d273..66f4dd6ed 100644 --- a/watch/random-number-generators.html +++ b/watch/random-number-generators.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 3, 2021·Watch on YouTube

    Random Number Generators

    How do random number generators work?

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 3, 2021·Watch on YouTube

    Random Number Generators

    How do random number generators work?

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/scaling-the-unscalable.html b/watch/scaling-the-unscalable.html index e1b50f061..ac0079ce5 100644 --- a/watch/scaling-the-unscalable.html +++ b/watch/scaling-the-unscalable.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 26, 2020·Watch on YouTube

    Scaling the Unscalable

    Learn the basics of System Design and understand how to build a scalable application.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 26, 2020·Watch on YouTube

    Scaling the Unscalable

    Learn the basics of System Design and understand how to build a scalable application.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/ssh-ssl-tls.html b/watch/ssh-ssl-tls.html index 71b092251..db75298cb 100644 --- a/watch/ssh-ssl-tls.html +++ b/watch/ssh-ssl-tls.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 25, 2021·Watch on YouTube

    SSH vs TLS vs SSL

    Learn the difference between SSH, TLS and SSL

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 25, 2021·Watch on YouTube

    SSH vs TLS vs SSL

    Learn the difference between SSH, TLS and SSL

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/system-design-101.html b/watch/system-design-101.html index 2c9006a9d..9ca4b7ddc 100644 --- a/watch/system-design-101.html +++ b/watch/system-design-101.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 8, 2020·Watch on YouTube

    System Design 101

    Learn about all the bits and pieces of system design.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·August 8, 2020·Watch on YouTube

    System Design 101

    Learn about all the bits and pieces of system design.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/tcp-ip-model.html b/watch/tcp-ip-model.html index 1e8c76197..a98e8b020 100644 --- a/watch/tcp-ip-model.html +++ b/watch/tcp-ip-model.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 6, 2020·Watch on YouTube

    TCP/IP Model Explained

    Learn what is TCP/IP Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 6, 2020·Watch on YouTube

    TCP/IP Model Explained

    Learn what is TCP/IP Model and the different layers involved.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/transport-protocols-tcp-vs-udp.html b/watch/transport-protocols-tcp-vs-udp.html index 0477e72b3..d14ea8b83 100644 --- a/watch/transport-protocols-tcp-vs-udp.html +++ b/watch/transport-protocols-tcp-vs-udp.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 21, 2020·Watch on YouTube

    Transport Protocols: TCP vs UDP

    Learn about the Transport Layer of the TCP/IP model and different transport protocols.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 21, 2020·Watch on YouTube

    Transport Protocols: TCP vs UDP

    Learn about the Transport Layer of the TCP/IP model and different transport protocols.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/what-is-cap-theorem.html b/watch/what-is-cap-theorem.html index b02fce66e..d42e28673 100644 --- a/watch/what-is-cap-theorem.html +++ b/watch/what-is-cap-theorem.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 5, 2021·Watch on YouTube

    What is CAP Theorem?

    An illustrated explanation to CAP theorem with examples and proof.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 5, 2021·Watch on YouTube

    What is CAP Theorem?

    An illustrated explanation to CAP theorem with examples and proof.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/what-is-dependency-injection.html b/watch/what-is-dependency-injection.html index 0098200bc..7cde77e2b 100644 --- a/watch/what-is-dependency-injection.html +++ b/watch/what-is-dependency-injection.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 4, 2020·Watch on YouTube

    What is Dependency Injection?

    Learn what is dependency injection and how to write better code with the help of it.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 4, 2020·Watch on YouTube

    What is Dependency Injection?

    Learn what is dependency injection and how to write better code with the help of it.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/what-is-dom-shadow-dom-virtual-dom.html b/watch/what-is-dom-shadow-dom-virtual-dom.html index 6e8c0214e..18a2431f9 100644 --- a/watch/what-is-dom-shadow-dom-virtual-dom.html +++ b/watch/what-is-dom-shadow-dom-virtual-dom.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 20, 2020·Watch on YouTube

    DOM, Shadow DOM, Virtual DOM

    Learn what is DOM, Shadow DOM and Virtual DOM and how they work.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·July 20, 2020·Watch on YouTube

    DOM, Shadow DOM, Virtual DOM

    Learn what is DOM, Shadow DOM and Virtual DOM and how they work.

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/what-is-eventual-consistency.html b/watch/what-is-eventual-consistency.html index d13757156..517bdff84 100644 --- a/watch/what-is-eventual-consistency.html +++ b/watch/what-is-eventual-consistency.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 30, 2021·Watch on YouTube

    What is Eventual Consistency?

    Learn about the different consistency models in distributed systems

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·November 30, 2021·Watch on YouTube

    What is Eventual Consistency?

    Learn about the different consistency models in distributed systems

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file diff --git a/watch/yaml-in-depth.html b/watch/yaml-in-depth.html index ee2388dfb..9d0051f81 100644 --- a/watch/yaml-in-depth.html +++ b/watch/yaml-in-depth.html @@ -3,8 +3,8 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-139582634-1'); -
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 18, 2021·Watch on YouTube

    YAML in Depth

    Everything you need to know about YAML

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file +
    We now have a YouTube Channel. Subscribe for the video content.
    roadmap.sh
    Roadmaps
    Subscribe
    Kamran Ahmed·October 18, 2021·Watch on YouTube

    YAML in Depth

    Everything you need to know about YAML

    We are working on a better watch page — for now this video is best viewed on YouTube.

    Open Source

    The project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

    A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.

    Stay Informed

    Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.

    Subscribe to Updates

    Free subscription for updates

    Updates & Paid Content

    Support the project by paying as little as 5$ per month

    RoadmapsGuidesVideosAboutYouTube
    RoadmapsGuidesVideosThanksAboutYouTube
    roadmap.shby@kamranahmedse

    Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

    © roadmap.sh·FAQs·Terms·Privacy

    \ No newline at end of file