From 2be24ba54c6de53589d04f8429e9dc06ddd20998 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Tue, 15 Feb 2022 00:11:44 +0000 Subject: [PATCH] Updates --- 404.html | 2 +- 404.html.html | 1 - _next/data/fHNf-HIzSmsHQKUBDdHfU/android.json | 1 + .../android/android.json | 1 + .../android/interactive.json | 1 + .../android/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/angular.json | 1 + .../angular/angular.json | 1 + .../angular/interactive.json | 1 + .../angular/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/aws.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/aws/aws.json | 1 + .../aws/interactive.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/aws/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/backend.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/backend/apis.json | 1 + .../backend/apis:authentication.json | 1 + ...s:authentication:basic-authentication.json | 1 + .../apis:authentication:cookie-based.json | 1 + .../backend/apis:authentication:jwt.json | 1 + .../backend/apis:authentication:oauth.json | 1 + .../backend/apis:authentication:openid.json | 1 + .../backend/apis:authentication:saml.json | 1 + ...s:authentication:token-authentication.json | 1 + .../backend/apis:grpc.json | 1 + .../backend/apis:hateoas.json | 1 + .../backend/apis:json-apis.json | 1 + .../backend/apis:open-api-spec.json | 1 + .../backend/apis:rest.json | 1 + .../backend/apis:soap.json | 1 + .../backend/architectural-patterns.json | 1 + .../backend/architectural-patterns:cqrs.json | 1 + .../architectural-patterns:microservices.json | 1 + ...rchitectural-patterns:monolithic-apps.json | 1 + .../architectural-patterns:serverless.json | 1 + .../backend/architectural-patterns:soa.json | 1 + .../backend/basic-frontend.json | 1 + .../backend/basic-frontend:css.json | 1 + .../backend/basic-frontend:html.json | 1 + .../backend/basic-frontend:javascript.json | 1 + .../backend/caching.json | 1 + .../backend/caching:cdn.json | 1 + .../backend/caching:client-side.json | 1 + .../backend/caching:server-side.json | 1 + .../caching:server-side:memcached.json | 1 + .../backend/caching:server-side:redis.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/backend/ci-cd.json | 1 + .../backend/containerization.json | 1 + .../backend/containerization:docker.json | 1 + .../backend/containerization:lxc.json | 1 + .../backend/containerization:rkt.json | 1 + .../design-and-development-principles.json | 1 + ...pment-principles:domain-driven-design.json | 1 + ...design-and-development-principles:dry.json | 1 + ...opment-principles:gof-design-patterns.json | 1 + ...esign-and-development-principles:kiss.json | 1 + ...sign-and-development-principles:solid.json | 1 + ...nt-principles:test-driven-development.json | 1 + ...sign-and-development-principles:yagni.json | 1 + .../backend/graph-databases.json | 1 + .../backend/graph-databases:neo4j.json | 1 + .../backend/graphql.json | 1 + .../backend/graphql:apollo.json | 1 + .../backend/graphql:relay-modern.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/backend/home.json | 1 + .../backend/interactive.json | 1 + .../backend/internet.json | 1 + .../internet:browsers-and-how-they-work.json | 1 + .../internet:dns-and-how-it-works.json | 1 + .../internet:how-does-the-internet-work.json | 1 + .../backend/internet:what-is-domain-name.json | 1 + .../backend/internet:what-is-hosting.json | 1 + .../backend/internet:what-is-http.json | 1 + .../backend/learn-a-language.json | 1 + .../backend/learn-a-language:csharp.json | 1 + .../backend/learn-a-language:go.json | 1 + .../backend/learn-a-language:java.json | 1 + .../backend/learn-a-language:javascript.json | 1 + .../backend/learn-a-language:php.json | 1 + .../backend/learn-a-language:python.json | 1 + .../backend/learn-a-language:ruby.json | 1 + .../backend/learn-a-language:rust.json | 1 + .../backend/message-brokers.json | 1 + .../backend/message-brokers:kafka.json | 1 + .../backend/message-brokers:rabbitmq.json | 1 + .../backend/more-about-databases.json | 1 + .../backend/more-about-databases:acid.json | 1 + .../more-about-databases:cap-theorem.json | 1 + ...more-about-databases:data-replication.json | 1 + ...more-about-databases:database-indexes.json | 1 + ...bout-databases:database-normalization.json | 1 + ...re-about-databases:n-plus-one-problem.json | 1 + .../backend/more-about-databases:orms.json | 1 + ...e-about-databases:sharding-strategies.json | 1 + .../more-about-databases:transactions.json | 1 + .../backend/nosql-databases.json | 1 + .../nosql-databases:column-databases.json | 1 + .../nosql-databases:document-databases.json | 1 + .../nosql-databases:realtime-databases.json | 1 + .../nosql-databases:timeseries-databases.json | 1 + .../backend/os-general-knowledge.json | 1 + ...l-knowledge:basic-networking-concepts.json | 1 + ...ral-knowledge:basic-terminal-commands.json | 1 + ...ral-knowledge:how-oss-work-in-general.json | 1 + ...-knowledge:interprocess-communication.json | 1 + .../os-general-knowledge:io-management.json | 1 + ...s-general-knowledge:memory-management.json | 1 + .../os-general-knowledge:posix-basics.json | 1 + ...-general-knowledge:process-management.json | 1 + .../os-general-knowledge:terminal-usage.json | 1 + ...ral-knowledge:threads-and-concurrency.json | 1 + .../backend/relational-databases.json | 1 + .../backend/relational-databases:mariadb.json | 1 + .../backend/relational-databases:mssql.json | 1 + .../backend/relational-databases:mysql.json | 1 + .../backend/relational-databases:oracle.json | 1 + .../relational-databases:postgresql.json | 1 + .../backend/repo-hosting-services.json | 1 + .../repo-hosting-services:bitbucket.json | 1 + .../backend/repo-hosting-services:github.json | 1 + .../backend/repo-hosting-services:gitlab.json | 1 + .../backend/resources.json | 1 + .../backend/scalability.json | 1 + ...calability:horizontal-vertial-scaling.json | 1 + ...:instrumentation-monitoring-telemetry.json | 1 + .../scalability:migration-strategies.json | 1 + .../scalability:mitigation-strategies.json | 1 + .../backend/scalability:observability.json | 1 + .../backend/search-engines.json | 1 + .../backend/search-engines:elasticsearch.json | 1 + .../backend/search-engines:solr.json | 1 + .../backend/testing.json | 1 + .../backend/testing:functional-testing.json | 1 + .../backend/testing:integration-testing.json | 1 + .../backend/testing:unit-testing.json | 1 + .../backend/version-control-systems.json | 1 + .../backend/version-control-systems:git.json | 1 + .../backend/web-security-knowledge.json | 1 + .../web-security-knowledge:bcrypt.json | 1 + ...ity-knowledge:content-security-policy.json | 1 + .../backend/web-security-knowledge:cors.json | 1 + .../backend/web-security-knowledge:https.json | 1 + .../backend/web-security-knowledge:md5.json | 1 + .../backend/web-security-knowledge:owasp.json | 1 + .../web-security-knowledge:scrypt.json | 1 + .../web-security-knowledge:sha-family.json | 1 + .../web-security-knowledge:ssl-tls.json | 1 + .../backend/web-servers.json | 1 + .../backend/web-servers:apache.json | 1 + .../backend/web-servers:caddy.json | 1 + .../backend/web-servers:ms-iis.json | 1 + .../backend/web-servers:nginx.json | 1 + .../backend/web-sockets.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/devops.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/devops/devops.json | 1 + .../devops/interactive.json | 1 + .../devops/resources.json | 1 + .../data/fHNf-HIzSmsHQKUBDdHfU/frontend.json | 1 + .../frontend/build-tools.json | 1 + .../build-tools:linters-formatters.json | 1 + ...build-tools:linters-formatters:eslint.json | 1 + ...ild-tools:linters-formatters:prettier.json | 1 + ...d-tools:linters-formatters:standardjs.json | 1 + .../frontend/build-tools:module-bundlers.json | 1 + .../build-tools:module-bundlers:esbuild.json | 1 + .../build-tools:module-bundlers:parcel.json | 1 + .../build-tools:module-bundlers:rollup.json | 1 + .../build-tools:module-bundlers:vite.json | 1 + .../build-tools:module-bundlers:webpack.json | 1 + .../frontend/build-tools:task-runners.json | 1 + .../build-tools:task-runners:npm-scripts.json | 1 + .../frontend/css-architecture.json | 1 + .../frontend/css-architecture:bem.json | 1 + .../frontend/css-architecture:oocss.json | 1 + .../frontend/css-architecture:smacss.json | 1 + .../frontend/css-frameworks.json | 1 + .../frontend/css-frameworks:css-first.json | 1 + .../css-frameworks:css-first:bootstrap.json | 1 + .../css-frameworks:css-first:bulma.json | 1 + .../frontend/css-frameworks:js-first.json | 1 + .../css-frameworks:js-first:chakra-ui.json | 1 + .../css-frameworks:js-first:material-ui.json | 1 + .../css-frameworks:js-first:radix-ui.json | 1 + .../css-frameworks:js-first:tailwind-css.json | 1 + .../frontend/css-preprocessors.json | 1 + .../frontend/css-preprocessors:less.json | 1 + .../frontend/css-preprocessors:postcss.json | 1 + .../frontend/css-preprocessors:sass.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/frontend/css.json | 1 + .../frontend/css:learn-the-basics.json | 1 + .../frontend/css:making-layouts.json | 1 + ...s:responsive-design-and-media-queries.json | 1 + .../frontend/desktop-applications.json | 1 + .../frontend/desktop-applications:carlo.json | 1 + .../desktop-applications:electron.json | 1 + .../desktop-applications:proton-native.json | 1 + .../frontend/graphql.json | 1 + .../frontend/graphql:apollo.json | 1 + .../frontend/graphql:relay-modern.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/frontend/home.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/frontend/html.json | 1 + .../frontend/html:accessibility.json | 1 + .../html:conventions-and-best-practices.json | 1 + .../frontend/html:forms-and-validations.json | 1 + .../frontend/html:learn-the-basics.json | 1 + .../frontend/html:seo-basics.json | 1 + .../frontend/html:writing-semantic-html.json | 1 + .../frontend/interactive.json | 1 + .../frontend/internet.json | 1 + .../internet:browsers-and-how-they-work.json | 1 + .../internet:dns-and-how-it-works.json | 1 + .../internet:how-does-the-internet-work.json | 1 + .../internet:what-is-domain-name.json | 1 + .../frontend/internet:what-is-hosting.json | 1 + .../frontend/internet:what-is-http.json | 1 + .../frontend/javascript.json | 1 + .../frontend/javascript:concepts.json | 1 + ...javascript:es6-and-modular-javascript.json | 1 + .../javascript:learn-dom-manipulation.json | 1 + .../javascript:learn-fetch-api-ajax-xhr.json | 1 + ...avascript:syntax-and-basic-constructs.json | 1 + .../frontend/mobile-applications.json | 1 + .../frontend/mobile-applications:flutter.json | 1 + .../frontend/mobile-applications:ionic.json | 1 + .../mobile-applications:nativescript.json | 1 + .../mobile-applications:react-native.json | 1 + .../frontend/modern-css.json | 1 + .../frontend/modern-css:css-modules.json | 1 + .../frontend/modern-css:emotion.json | 1 + .../modern-css:styled-components.json | 1 + .../frontend/modern-css:styled-jsx.json | 1 + .../frontend/package-managers.json | 1 + .../frontend/package-managers:npm.json | 1 + .../frontend/package-managers:yarn.json | 1 + .../frontend/pick-a-framework.json | 1 + .../frontend/pick-a-framework:angular.json | 1 + .../pick-a-framework:angular:ngrx.json | 1 + .../pick-a-framework:angular:rxjs.json | 1 + .../frontend/pick-a-framework:react-js.json | 1 + .../pick-a-framework:react-js:mobx.json | 1 + .../pick-a-framework:react-js:recoil.json | 1 + .../pick-a-framework:react-js:redux.json | 1 + .../frontend/pick-a-framework:vue-js.json | 1 + .../pick-a-framework:vue-js:vuex.json | 1 + .../frontend/progressive-web-apps.json | 1 + .../frontend/progressive-web-apps:apis.json | 1 + .../progressive-web-apps:performance.json | 1 + .../frontend/repo-hosting-services.json | 1 + .../repo-hosting-services:bitbucket.json | 1 + .../repo-hosting-services:github.json | 1 + .../repo-hosting-services:gitlab.json | 1 + .../frontend/resources.json | 1 + .../frontend/server-side-rendering.json | 1 + .../server-side-rendering:angular.json | 1 + ...rver-side-rendering:angular:universal.json | 1 + .../server-side-rendering:react-js.json | 1 + ...rver-side-rendering:react-js:after-js.json | 1 + ...erver-side-rendering:react-js:next-js.json | 1 + .../server-side-rendering:vue-js.json | 1 + .../server-side-rendering:vue-js:nuxt-js.json | 1 + .../frontend/static-site-generators.json | 1 + .../static-site-generators:eleventy.json | 1 + .../static-site-generators:gatsbyjs.json | 1 + .../static-site-generators:gridsome.json | 1 + .../frontend/static-site-generators:hugo.json | 1 + .../static-site-generators:jekyll.json | 1 + .../static-site-generators:next-js.json | 1 + .../static-site-generators:nuxt-js.json | 1 + .../static-site-generators:vuepress.json | 1 + .../frontend/testing-your-apps.json | 1 + .../frontend/testing-your-apps:ava.json | 1 + .../frontend/testing-your-apps:chai.json | 1 + .../frontend/testing-your-apps:cypress.json | 1 + .../frontend/testing-your-apps:enzyme.json | 1 + .../frontend/testing-your-apps:jasmine.json | 1 + .../frontend/testing-your-apps:jest.json | 1 + .../frontend/testing-your-apps:mocha.json | 1 + .../testing-your-apps:other-options.json | 1 + ...sting-your-apps:react-testing-library.json | 1 + .../frontend/type-checkers.json | 1 + .../frontend/type-checkers:flow.json | 1 + .../frontend/type-checkers:typescript.json | 1 + .../frontend/version-control-systems.json | 1 + ...on-control-systems:basic-usage-of-git.json | 1 + .../frontend/web-assembly.json | 1 + .../frontend/web-components.json | 1 + .../web-components:custom-elements.json | 1 + .../web-components:html-templates.json | 1 + .../frontend/web-components:shadow-dom.json | 1 + .../frontend/web-security-knowledge.json | 1 + ...ity-knowledge:content-security-policy.json | 1 + .../frontend/web-security-knowledge:cors.json | 1 + .../web-security-knowledge:https.json | 1 + ...curity-knowledge:owasp-security-risks.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/golang.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/golang/golang.json | 1 + .../golang/interactive.json | 1 + .../golang/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/guides.json | 1 + .../guides/asymptotic-notation.json | 1 + ...-blocking-javascript-with-async-defer.json | 1 + .../guides/basic-authentication.json | 1 + .../guides/big-o-notation.json | 1 + .../guides/character-encodings.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/guides/ci-cd.json | 1 + .../guides/design-patterns-for-humans.json | 1 + .../guides/dhcp-in-one-picture.json | 1 + .../guides/dns-in-one-picture.json | 1 + .../guides/history-of-javascript.json | 1 + .../guides/http-caching.json | 1 + .../guides/jwt-authentication.json | 1 + .../guides/levels-of-seniority.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/guides/oauth.json | 1 + .../guides/proxy-servers.json | 1 + .../guides/random-numbers.json | 1 + .../guides/scaling-databases.json | 1 + .../guides/session-authentication.json | 1 + .../guides/ssl-tls-https-ssh.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/guides/sso.json | 1 + .../guides/token-authentication.json | 1 + .../guides/torrent-client.json | 1 + .../guides/unfamiliar-codebase.json | 1 + .../guides/what-are-web-vitals.json | 1 + .../guides/what-is-internet.json | 1 + .../guides/what-is-sli-slo-sla.json | 1 + ...-and-they-will-come-wont-work-anymore.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/index.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/java.json | 1 + .../java/interactive.json | 1 + .../data/fHNf-HIzSmsHQKUBDdHfU/java/java.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/java/resources.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/postgresql-dba.json | 1 + .../postgresql-dba/interactive.json | 1 + .../postgresql-dba/postgresql-dba.json | 1 + .../postgresql-dba/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/python.json | 1 + .../python/interactive.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/python/python.json | 1 + .../python/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/qa.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/qa/interactive.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/qa/qa.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/qa/resources.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/react.json | 1 + .../react/interactive.json | 1 + .../fHNf-HIzSmsHQKUBDdHfU/react/react.json | 1 + .../react/resources.json | 1 + .../data/fHNf-HIzSmsHQKUBDdHfU/roadmaps.json | 1 + _next/data/fHNf-HIzSmsHQKUBDdHfU/watch.json | 1 + .../watch/acid-explained.json | 1 + .../watch/all-about-http-caching.json | 1 + .../watch/array-structure.json | 1 + .../arrays-and-objects-in-javascript.json | 1 + .../watch/async-javascript.json | 1 + .../watch/big-o-notation.json | 1 + .../watch/content-delivery-networks.json | 1 + .../watch/dns-explained.json | 1 + .../watch/dns-records.json | 1 + .../watch/floating-point-arithmetic.json | 1 + ...freeze-and-seal-objects-in-javascript.json | 1 + .../watch/how-to-use-css-variables.json | 1 + .../watch/how-to-use-github-actions.json | 1 + .../watch/javascript-fetch-api.json | 1 + .../watch/linked-list-data-structure.json | 1 + .../watch/load-balancers-101.json | 1 + .../watch/osi-model.json | 1 + .../watch/practical-intro-to-react.json | 1 + .../watch/promises-in-javascript.json | 1 + .../watch/queue-data-structure.json | 1 + .../watch/random-number-generators.json | 1 + .../watch/scaling-the-unscalable.json | 1 + .../watch/ssh-ssl-tls.json | 1 + .../watch/stack-data-structure.json | 1 + .../watch/system-design-101.json | 1 + .../watch/tcp-ip-model.json | 1 + .../watch/transport-protocols-tcp-vs-udp.json | 1 + .../watch/what-are-data-structures.json | 1 + .../watch/what-is-cap-theorem.json | 1 + .../watch/what-is-dependency-injection.json | 1 + .../what-is-dom-shadow-dom-virtual-dom.json | 1 + .../watch/what-is-eventual-consistency.json | 1 + .../watch/yaml-in-depth.json | 1 + .../EFrUpveU2FwZFMY71nRho/_buildManifest.js | 1 - .../_middlewareManifest.js | 1 - .../EFrUpveU2FwZFMY71nRho/_ssgManifest.js | 1 - _next/static/chunks/280-6ddfb0290d2caf59.js | 1 + _next/static/chunks/280-b46493f2a88f5f68.js | 1 - ...077adc9d727.js => 681-8aca3fe8f1cbb5d7.js} | 2 +- ...0c106.js => [roadmap]-38b210f235d8cd04.js} | 2 +- ...f4fca23.js => [group]-b9c23d67fc3e48a9.js} | 2 +- ...a31.js => interactive-3b61593bbb08ed5c.js} | 2 +- ...4b758.js => resources-e235b7667b8f07f7.js} | 2 +- .../pages/watch/[video]-943ed5fcaf72d0bf.js | 1 - .../pages/watch/[video]-96244473dc71d3a3.js | 1 + .../fHNf-HIzSmsHQKUBDdHfU/_buildManifest.js | 1 + .../_middlewareManifest.js | 1 + .../fHNf-HIzSmsHQKUBDdHfU/_ssgManifest.js | 1 + about.html | 4 +- android.html | 22 + android/android.html | 6 + android/interactive.html | 6 + android/resources.html | 16 + angular.html | 12 + angular/angular.html | 6 + angular/interactive.html | 6 + angular/resources.html | 16 + aws.html | 16 + aws/aws.html | 6 + aws/interactive.html | 6 + aws/resources.html | 16 + backend.html | 6 + backend/apis.html | 9 + backend/apis:authentication.html | 9 + ...s:authentication:basic-authentication.html | 9 + backend/apis:authentication:cookie-based.html | 9 + backend/apis:authentication:jwt.html | 11 + backend/apis:authentication:oauth.html | 11 + backend/apis:authentication:openid.html | 9 + backend/apis:authentication:saml.html | 9 + ...s:authentication:token-authentication.html | 9 + backend/apis:grpc.html | 9 + backend/apis:hateoas.html | 11 + backend/apis:json-apis.html | 9 + backend/apis:open-api-spec.html | 9 + backend/apis:rest.html | 11 + backend/apis:soap.html | 9 + backend/architectural-patterns.html | 9 + backend/architectural-patterns:cqrs.html | 9 + .../architectural-patterns:microservices.html | 11 + ...rchitectural-patterns:monolithic-apps.html | 11 + .../architectural-patterns:serverless.html | 11 + backend/architectural-patterns:soa.html | 9 + backend/basic-frontend.html | 11 + backend/basic-frontend:css.html | 11 + backend/basic-frontend:html.html | 11 + backend/basic-frontend:javascript.html | 11 + backend/caching.html | 9 + backend/caching:cdn.html | 13 + backend/caching:client-side.html | 9 + backend/caching:server-side.html | 9 + backend/caching:server-side:memcached.html | 9 + backend/caching:server-side:redis.html | 9 + backend/ci-cd.html | 11 + backend/containerization.html | 9 + backend/containerization:docker.html | 11 + backend/containerization:lxc.html | 9 + backend/containerization:rkt.html | 9 + .../design-and-development-principles.html | 9 + ...pment-principles:domain-driven-design.html | 9 + ...design-and-development-principles:dry.html | 11 + ...opment-principles:gof-design-patterns.html | 16 + ...esign-and-development-principles:kiss.html | 11 + ...sign-and-development-principles:solid.html | 16 + ...nt-principles:test-driven-development.html | 11 + ...sign-and-development-principles:yagni.html | 11 + backend/graph-databases.html | 9 + backend/graph-databases:neo4j.html | 9 + backend/graphql.html | 9 + backend/graphql:apollo.html | 9 + backend/graphql:relay-modern.html | 9 + backend/home.html | 9 + backend/interactive.html | 6 + backend/internet.html | 11 + .../internet:browsers-and-how-they-work.html | 11 + backend/internet:dns-and-how-it-works.html | 11 + .../internet:how-does-the-internet-work.html | 11 + backend/internet:what-is-domain-name.html | 11 + backend/internet:what-is-hosting.html | 11 + backend/internet:what-is-http.html | 11 + backend/learn-a-language.html | 9 + backend/learn-a-language:csharp.html | 11 + backend/learn-a-language:go.html | 11 + backend/learn-a-language:java.html | 12 + backend/learn-a-language:javascript.html | 11 + backend/learn-a-language:php.html | 11 + backend/learn-a-language:python.html | 11 + backend/learn-a-language:ruby.html | 11 + backend/learn-a-language:rust.html | 11 + backend/message-brokers.html | 9 + backend/message-brokers:kafka.html | 9 + backend/message-brokers:rabbitmq.html | 9 + backend/more-about-databases.html | 9 + backend/more-about-databases:acid.html | 11 + backend/more-about-databases:cap-theorem.html | 9 + ...more-about-databases:data-replication.html | 9 + ...more-about-databases:database-indexes.html | 9 + ...bout-databases:database-normalization.html | 9 + ...re-about-databases:n-plus-one-problem.html | 9 + backend/more-about-databases:orms.html | 9 + ...e-about-databases:sharding-strategies.html | 9 + .../more-about-databases:transactions.html | 9 + backend/nosql-databases.html | 12 + backend/nosql-databases:column-databases.html | 9 + .../nosql-databases:document-databases.html | 9 + .../nosql-databases:realtime-databases.html | 9 + .../nosql-databases:timeseries-databases.html | 9 + backend/os-general-knowledge.html | 11 + ...l-knowledge:basic-networking-concepts.html | 9 + ...ral-knowledge:basic-terminal-commands.html | 9 + ...ral-knowledge:how-oss-work-in-general.html | 9 + ...-knowledge:interprocess-communication.html | 11 + .../os-general-knowledge:io-management.html | 9 + ...s-general-knowledge:memory-management.html | 9 + .../os-general-knowledge:posix-basics.html | 9 + ...-general-knowledge:process-management.html | 9 + .../os-general-knowledge:terminal-usage.html | 11 + ...ral-knowledge:threads-and-concurrency.html | 9 + backend/relational-databases.html | 11 + backend/relational-databases:mariadb.html | 9 + backend/relational-databases:mssql.html | 11 + backend/relational-databases:mysql.html | 11 + backend/relational-databases:oracle.html | 9 + backend/relational-databases:postgresql.html | 11 + backend/repo-hosting-services.html | 11 + backend/repo-hosting-services:bitbucket.html | 11 + backend/repo-hosting-services:github.html | 11 + backend/repo-hosting-services:gitlab.html | 11 + backend/resources.html | 16 + backend/scalability.html | 9 + ...calability:horizontal-vertial-scaling.html | 11 + ...:instrumentation-monitoring-telemetry.html | 9 + backend/scalability:migration-strategies.html | 9 + .../scalability:mitigation-strategies.html | 9 + backend/scalability:observability.html | 9 + backend/search-engines.html | 9 + backend/search-engines:elasticsearch.html | 11 + backend/search-engines:solr.html | 9 + backend/testing.html | 11 + backend/testing:functional-testing.html | 12 + backend/testing:integration-testing.html | 11 + backend/testing:unit-testing.html | 11 + backend/version-control-systems.html | 11 + backend/version-control-systems:git.html | 13 + backend/web-security-knowledge.html | 9 + backend/web-security-knowledge:bcrypt.html | 11 + ...ity-knowledge:content-security-policy.html | 9 + backend/web-security-knowledge:cors.html | 11 + backend/web-security-knowledge:https.html | 11 + backend/web-security-knowledge:md5.html | 11 + backend/web-security-knowledge:owasp.html | 9 + backend/web-security-knowledge:scrypt.html | 9 + .../web-security-knowledge:sha-family.html | 9 + backend/web-security-knowledge:ssl-tls.html | 9 + backend/web-servers.html | 9 + backend/web-servers:apache.html | 11 + backend/web-servers:caddy.html | 9 + backend/web-servers:ms-iis.html | 9 + backend/web-servers:nginx.html | 9 + backend/web-sockets.html | 9 + devops.html | 6 + devops/devops.html | 6 + devops/interactive.html | 6 + devops/resources.html | 16 + frontend.html | 6 + frontend/build-tools.html | 9 + frontend/build-tools:linters-formatters.html | 9 + ...build-tools:linters-formatters:eslint.html | 11 + ...ild-tools:linters-formatters:prettier.html | 11 + ...d-tools:linters-formatters:standardjs.html | 12 + frontend/build-tools:module-bundlers.html | 9 + .../build-tools:module-bundlers:esbuild.html | 11 + .../build-tools:module-bundlers:parcel.html | 11 + .../build-tools:module-bundlers:rollup.html | 11 + .../build-tools:module-bundlers:vite.html | 11 + .../build-tools:module-bundlers:webpack.html | 11 + frontend/build-tools:task-runners.html | 9 + .../build-tools:task-runners:npm-scripts.html | 11 + frontend/css-architecture.html | 11 + frontend/css-architecture:bem.html | 11 + frontend/css-architecture:oocss.html | 11 + frontend/css-architecture:smacss.html | 11 + frontend/css-frameworks.html | 9 + frontend/css-frameworks:css-first.html | 9 + .../css-frameworks:css-first:bootstrap.html | 11 + frontend/css-frameworks:css-first:bulma.html | 11 + frontend/css-frameworks:js-first.html | 9 + .../css-frameworks:js-first:chakra-ui.html | 11 + .../css-frameworks:js-first:material-ui.html | 11 + .../css-frameworks:js-first:radix-ui.html | 11 + .../css-frameworks:js-first:tailwind-css.html | 11 + frontend/css-preprocessors.html | 11 + frontend/css-preprocessors:less.html | 11 + frontend/css-preprocessors:postcss.html | 11 + frontend/css-preprocessors:sass.html | 11 + frontend/css.html | 11 + frontend/css:learn-the-basics.html | 11 + frontend/css:making-layouts.html | 11 + ...s:responsive-design-and-media-queries.html | 11 + frontend/desktop-applications.html | 9 + frontend/desktop-applications:carlo.html | 11 + frontend/desktop-applications:electron.html | 11 + .../desktop-applications:proton-native.html | 11 + frontend/graphql.html | 11 + frontend/graphql:apollo.html | 11 + frontend/graphql:relay-modern.html | 11 + frontend/home.html | 9 + frontend/html.html | 11 + frontend/html:accessibility.html | 11 + .../html:conventions-and-best-practices.html | 11 + frontend/html:forms-and-validations.html | 11 + frontend/html:learn-the-basics.html | 11 + frontend/html:seo-basics.html | 11 + frontend/html:writing-semantic-html.html | 11 + frontend/interactive.html | 6 + frontend/internet.html | 11 + .../internet:browsers-and-how-they-work.html | 11 + frontend/internet:dns-and-how-it-works.html | 11 + .../internet:how-does-the-internet-work.html | 11 + frontend/internet:what-is-domain-name.html | 11 + frontend/internet:what-is-hosting.html | 11 + frontend/internet:what-is-http.html | 11 + frontend/javascript.html | 11 + frontend/javascript:concepts.html | 11 + ...javascript:es6-and-modular-javascript.html | 11 + .../javascript:learn-dom-manipulation.html | 11 + .../javascript:learn-fetch-api-ajax-xhr.html | 11 + ...avascript:syntax-and-basic-constructs.html | 11 + frontend/mobile-applications.html | 9 + frontend/mobile-applications:flutter.html | 17 + frontend/mobile-applications:ionic.html | 11 + .../mobile-applications:nativescript.html | 11 + .../mobile-applications:react-native.html | 11 + frontend/modern-css.html | 9 + frontend/modern-css:css-modules.html | 11 + frontend/modern-css:emotion.html | 11 + frontend/modern-css:styled-components.html | 11 + frontend/modern-css:styled-jsx.html | 11 + frontend/package-managers.html | 11 + frontend/package-managers:npm.html | 11 + frontend/package-managers:yarn.html | 11 + frontend/pick-a-framework.html | 11 + frontend/pick-a-framework:angular.html | 9 + frontend/pick-a-framework:angular:ngrx.html | 11 + frontend/pick-a-framework:angular:rxjs.html | 11 + frontend/pick-a-framework:react-js.html | 11 + frontend/pick-a-framework:react-js:mobx.html | 11 + .../pick-a-framework:react-js:recoil.html | 11 + frontend/pick-a-framework:react-js:redux.html | 13 + frontend/pick-a-framework:vue-js.html | 11 + frontend/pick-a-framework:vue-js:vuex.html | 11 + frontend/progressive-web-apps.html | 11 + frontend/progressive-web-apps:apis.html | 9 + .../progressive-web-apps:performance.html | 9 + frontend/repo-hosting-services.html | 11 + frontend/repo-hosting-services:bitbucket.html | 13 + frontend/repo-hosting-services:github.html | 13 + frontend/repo-hosting-services:gitlab.html | 13 + frontend/resources.html | 10 + frontend/server-side-rendering.html | 9 + frontend/server-side-rendering:angular.html | 9 + ...rver-side-rendering:angular:universal.html | 9 + frontend/server-side-rendering:react-js.html | 9 + ...rver-side-rendering:react-js:after-js.html | 9 + ...erver-side-rendering:react-js:next-js.html | 13 + frontend/server-side-rendering:vue-js.html | 9 + .../server-side-rendering:vue-js:nuxt-js.html | 9 + frontend/static-site-generators.html | 11 + frontend/static-site-generators:eleventy.html | 11 + frontend/static-site-generators:gatsbyjs.html | 9 + frontend/static-site-generators:gridsome.html | 9 + frontend/static-site-generators:hugo.html | 9 + frontend/static-site-generators:jekyll.html | 11 + frontend/static-site-generators:next-js.html | 13 + frontend/static-site-generators:nuxt-js.html | 13 + frontend/static-site-generators:vuepress.html | 9 + frontend/testing-your-apps.html | 11 + frontend/testing-your-apps:ava.html | 9 + frontend/testing-your-apps:chai.html | 9 + frontend/testing-your-apps:cypress.html | 9 + frontend/testing-your-apps:enzyme.html | 9 + frontend/testing-your-apps:jasmine.html | 9 + frontend/testing-your-apps:jest.html | 12 + frontend/testing-your-apps:mocha.html | 9 + frontend/testing-your-apps:other-options.html | 9 + ...sting-your-apps:react-testing-library.html | 9 + frontend/type-checkers.html | 9 + frontend/type-checkers:flow.html | 11 + frontend/type-checkers:typescript.html | 11 + frontend/version-control-systems.html | 11 + ...on-control-systems:basic-usage-of-git.html | 13 + frontend/web-assembly.html | 11 + frontend/web-components.html | 9 + frontend/web-components:custom-elements.html | 9 + frontend/web-components:html-templates.html | 9 + frontend/web-components:shadow-dom.html | 9 + frontend/web-security-knowledge.html | 11 + ...ity-knowledge:content-security-policy.html | 11 + frontend/web-security-knowledge:cors.html | 11 + frontend/web-security-knowledge:https.html | 11 + ...curity-knowledge:owasp-security-risks.html | 11 + golang.html | 12 + golang/golang.html | 6 + golang/interactive.html | 6 + golang/resources.html | 16 + guides.html | 6 + guides/asymptotic-notation.html | 12 + ...-blocking-javascript-with-async-defer.html | 12 + guides/basic-authentication.html | 12 + guides/big-o-notation.html | 12 + guides/character-encodings.html | 12 + guides/ci-cd.html | 12 + guides/design-patterns-for-humans.html | 1555 +++++++++++++++++ guides/dhcp-in-one-picture.html | 12 + guides/dns-in-one-picture.html | 12 + guides/history-of-javascript.html | 20 + guides/http-caching.html | 65 + guides/jwt-authentication.html | 12 + guides/levels-of-seniority.html | 20 + guides/oauth.html | 12 + guides/proxy-servers.html | 28 + guides/random-numbers.html | 12 + guides/scaling-databases.html | 12 + guides/session-authentication.html | 12 + guides/ssl-tls-https-ssh.html | 12 + guides/sso.html | 12 + guides/token-authentication.html | 12 + guides/torrent-client.html | 391 +++++ guides/unfamiliar-codebase.html | 12 + guides/what-are-web-vitals.html | 12 + guides/what-is-internet.html | 24 + guides/what-is-sli-slo-sla.html | 12 + ...-and-they-will-come-wont-work-anymore.html | 17 + index.html | 6 + java.html | 12 + java/interactive.html | 6 + java/java.html | 6 + java/resources.html | 16 + postgresql-dba.html | 20 + postgresql-dba/interactive.html | 6 + postgresql-dba/postgresql-dba.html | 6 + postgresql-dba/resources.html | 16 + privacy.html | 4 +- python.html | 12 + python/interactive.html | 6 + python/python.html | 6 + python/resources.html | 16 + qa.html | 16 + qa/interactive.html | 6 + qa/qa.html | 6 + qa/resources.html | 16 + react.html | 12 + react/interactive.html | 6 + react/react.html | 6 + react/resources.html | 16 + roadmaps.html | 6 + signup.html | 2 +- sitemap.xml | 38 +- terms.html | 4 +- thanks.html | 2 +- watch.html | 6 + watch/acid-explained.html | 10 + watch/all-about-http-caching.html | 10 + watch/array-structure.html | 10 + watch/arrays-and-objects-in-javascript.html | 10 + watch/async-javascript.html | 10 + watch/big-o-notation.html | 10 + watch/content-delivery-networks.html | 10 + watch/dns-explained.html | 10 + watch/dns-records.html | 10 + watch/floating-point-arithmetic.html | 10 + ...freeze-and-seal-objects-in-javascript.html | 10 + watch/how-to-use-css-variables.html | 10 + watch/how-to-use-github-actions.html | 10 + watch/javascript-fetch-api.html | 10 + watch/linked-list-data-structure.html | 10 + watch/load-balancers-101.html | 10 + watch/osi-model.html | 10 + watch/practical-intro-to-react.html | 19 + watch/promises-in-javascript.html | 10 + watch/queue-data-structure.html | 10 + watch/random-number-generators.html | 10 + watch/scaling-the-unscalable.html | 10 + watch/ssh-ssl-tls.html | 10 + watch/stack-data-structure.html | 10 + watch/system-design-101.html | 10 + watch/tcp-ip-model.html | 10 + watch/transport-protocols-tcp-vs-udp.html | 10 + watch/what-are-data-structures.html | 10 + watch/what-is-cap-theorem.html | 10 + watch/what-is-dependency-injection.html | 10 + watch/what-is-dom-shadow-dom-virtual-dom.html | 10 + watch/what-is-eventual-consistency.html | 10 + watch/yaml-in-depth.html | 10 + 783 files changed, 6384 insertions(+), 39 deletions(-) delete mode 100644 404.html.html create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/android.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/android/android.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/android/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/android/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/angular.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/angular/angular.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/angular/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/angular/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/aws.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/aws/aws.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/aws/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/aws/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:basic-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:cookie-based.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:jwt.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:oauth.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:openid.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:saml.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:token-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:grpc.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:hateoas.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:json-apis.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:open-api-spec.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:rest.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:soap.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:cqrs.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:microservices.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:monolithic-apps.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:serverless.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:soa.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:css.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:html.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:cdn.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:client-side.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:memcached.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:redis.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/ci-cd.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:docker.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:lxc.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:rkt.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:domain-driven-design.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:dry.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:gof-design-patterns.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:kiss.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:solid.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:test-driven-development.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:yagni.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases:neo4j.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:apollo.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:relay-modern.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/home.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:browsers-and-how-they-work.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:dns-and-how-it-works.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:how-does-the-internet-work.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-domain-name.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-hosting.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-http.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:csharp.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:go.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:java.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:php.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:python.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:ruby.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:rust.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:kafka.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:rabbitmq.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:acid.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:cap-theorem.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:data-replication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-indexes.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-normalization.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:n-plus-one-problem.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:orms.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:sharding-strategies.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:transactions.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:column-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:document-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:realtime-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:timeseries-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-networking-concepts.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-terminal-commands.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:how-oss-work-in-general.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:interprocess-communication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:io-management.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:memory-management.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:posix-basics.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:process-management.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:terminal-usage.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:threads-and-concurrency.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mariadb.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mssql.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mysql.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:oracle.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:postgresql.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:bitbucket.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:github.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:gitlab.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:horizontal-vertial-scaling.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:instrumentation-monitoring-telemetry.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:migration-strategies.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:mitigation-strategies.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:observability.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:elasticsearch.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:solr.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:functional-testing.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:integration-testing.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:unit-testing.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems:git.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:bcrypt.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:content-security-policy.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:cors.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:https.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:md5.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:owasp.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:scrypt.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:sha-family.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:ssl-tls.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:apache.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:caddy.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:ms-iis.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:nginx.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-sockets.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/devops.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/devops/devops.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/devops/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/devops/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:eslint.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:prettier.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:standardjs.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:esbuild.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:parcel.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:rollup.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:vite.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:webpack.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners:npm-scripts.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:bem.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:oocss.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:smacss.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bootstrap.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bulma.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:chakra-ui.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:material-ui.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:radix-ui.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:tailwind-css.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:less.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:postcss.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:sass.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:learn-the-basics.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:making-layouts.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:responsive-design-and-media-queries.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:carlo.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:electron.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:proton-native.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:apollo.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:relay-modern.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/home.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:accessibility.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:conventions-and-best-practices.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:forms-and-validations.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:learn-the-basics.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:seo-basics.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:writing-semantic-html.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:browsers-and-how-they-work.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:dns-and-how-it-works.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:how-does-the-internet-work.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-domain-name.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-hosting.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-http.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:concepts.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:es6-and-modular-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-dom-manipulation.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-fetch-api-ajax-xhr.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:syntax-and-basic-constructs.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:flutter.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:ionic.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:nativescript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:react-native.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:css-modules.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:emotion.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-components.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-jsx.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:npm.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:yarn.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:ngrx.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:rxjs.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:mobx.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:recoil.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:redux.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js:vuex.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:apis.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:performance.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:bitbucket.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:github.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:gitlab.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular:universal.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:after-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:next-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js:nuxt-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:eleventy.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gatsbyjs.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gridsome.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:hugo.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:jekyll.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:next-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:nuxt-js.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:vuepress.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:ava.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:chai.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:cypress.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:enzyme.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jasmine.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jest.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:mocha.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:other-options.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:react-testing-library.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:flow.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:typescript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems:basic-usage-of-git.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-assembly.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:custom-elements.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:html-templates.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:shadow-dom.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:content-security-policy.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:cors.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:https.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:owasp-security-risks.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/golang.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/golang/golang.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/golang/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/golang/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/asymptotic-notation.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/avoid-render-blocking-javascript-with-async-defer.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/basic-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/big-o-notation.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/character-encodings.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ci-cd.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/design-patterns-for-humans.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dhcp-in-one-picture.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dns-in-one-picture.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/history-of-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/http-caching.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/jwt-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/levels-of-seniority.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/oauth.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/proxy-servers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/random-numbers.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/scaling-databases.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/session-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ssl-tls-https-ssh.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/sso.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/token-authentication.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/torrent-client.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/unfamiliar-codebase.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-are-web-vitals.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-internet.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-sli-slo-sla.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/guides/why-build-it-and-they-will-come-wont-work-anymore.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/index.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/java.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/java/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/java/java.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/java/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/postgresql-dba.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/python.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/python/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/python/python.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/python/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/qa.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/qa/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/qa/qa.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/qa/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/react.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/react/interactive.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/react/react.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/react/resources.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/roadmaps.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/acid-explained.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/all-about-http-caching.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/array-structure.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/arrays-and-objects-in-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/async-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/big-o-notation.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/content-delivery-networks.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-explained.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-records.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/floating-point-arithmetic.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/freeze-and-seal-objects-in-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-css-variables.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-github-actions.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/javascript-fetch-api.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/linked-list-data-structure.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/load-balancers-101.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/osi-model.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/practical-intro-to-react.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/promises-in-javascript.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/queue-data-structure.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/random-number-generators.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/scaling-the-unscalable.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/ssh-ssl-tls.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/stack-data-structure.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/system-design-101.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/tcp-ip-model.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/transport-protocols-tcp-vs-udp.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-are-data-structures.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-cap-theorem.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dependency-injection.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dom-shadow-dom-virtual-dom.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-eventual-consistency.json create mode 100644 _next/data/fHNf-HIzSmsHQKUBDdHfU/watch/yaml-in-depth.json delete mode 100644 _next/static/EFrUpveU2FwZFMY71nRho/_buildManifest.js delete mode 100644 _next/static/EFrUpveU2FwZFMY71nRho/_middlewareManifest.js delete mode 100644 _next/static/EFrUpveU2FwZFMY71nRho/_ssgManifest.js create mode 100644 _next/static/chunks/280-6ddfb0290d2caf59.js delete mode 100644 _next/static/chunks/280-b46493f2a88f5f68.js rename _next/static/chunks/{366-ef3f1077adc9d727.js => 681-8aca3fe8f1cbb5d7.js} (99%) rename _next/static/chunks/pages/{[roadmap]-ac6e875cba90c106.js => [roadmap]-38b210f235d8cd04.js} (96%) rename _next/static/chunks/pages/[roadmap]/{[group]-677b22076f4fca23.js => [group]-b9c23d67fc3e48a9.js} (98%) rename _next/static/chunks/pages/[roadmap]/{interactive-d208ea1b52c48a31.js => interactive-3b61593bbb08ed5c.js} (79%) rename _next/static/chunks/pages/[roadmap]/{resources-17dfdfdb3794b758.js => resources-e235b7667b8f07f7.js} (98%) delete mode 100644 _next/static/chunks/pages/watch/[video]-943ed5fcaf72d0bf.js create mode 100644 _next/static/chunks/pages/watch/[video]-96244473dc71d3a3.js create mode 100644 _next/static/fHNf-HIzSmsHQKUBDdHfU/_buildManifest.js create mode 100644 _next/static/fHNf-HIzSmsHQKUBDdHfU/_middlewareManifest.js create mode 100644 _next/static/fHNf-HIzSmsHQKUBDdHfU/_ssgManifest.js create mode 100644 android.html create mode 100644 android/android.html create mode 100644 android/interactive.html create mode 100644 android/resources.html create mode 100644 angular.html create mode 100644 angular/angular.html create mode 100644 angular/interactive.html create mode 100644 angular/resources.html create mode 100644 aws.html create mode 100644 aws/aws.html create mode 100644 aws/interactive.html create mode 100644 aws/resources.html create mode 100644 backend.html create mode 100644 backend/apis.html create mode 100644 backend/apis:authentication.html create mode 100644 backend/apis:authentication:basic-authentication.html create mode 100644 backend/apis:authentication:cookie-based.html create mode 100644 backend/apis:authentication:jwt.html create mode 100644 backend/apis:authentication:oauth.html create mode 100644 backend/apis:authentication:openid.html create mode 100644 backend/apis:authentication:saml.html create mode 100644 backend/apis:authentication:token-authentication.html create mode 100644 backend/apis:grpc.html create mode 100644 backend/apis:hateoas.html create mode 100644 backend/apis:json-apis.html create mode 100644 backend/apis:open-api-spec.html create mode 100644 backend/apis:rest.html create mode 100644 backend/apis:soap.html create mode 100644 backend/architectural-patterns.html create mode 100644 backend/architectural-patterns:cqrs.html create mode 100644 backend/architectural-patterns:microservices.html create mode 100644 backend/architectural-patterns:monolithic-apps.html create mode 100644 backend/architectural-patterns:serverless.html create mode 100644 backend/architectural-patterns:soa.html create mode 100644 backend/basic-frontend.html create mode 100644 backend/basic-frontend:css.html create mode 100644 backend/basic-frontend:html.html create mode 100644 backend/basic-frontend:javascript.html create mode 100644 backend/caching.html create mode 100644 backend/caching:cdn.html create mode 100644 backend/caching:client-side.html create mode 100644 backend/caching:server-side.html create mode 100644 backend/caching:server-side:memcached.html create mode 100644 backend/caching:server-side:redis.html create mode 100644 backend/ci-cd.html create mode 100644 backend/containerization.html create mode 100644 backend/containerization:docker.html create mode 100644 backend/containerization:lxc.html create mode 100644 backend/containerization:rkt.html create mode 100644 backend/design-and-development-principles.html create mode 100644 backend/design-and-development-principles:domain-driven-design.html create mode 100644 backend/design-and-development-principles:dry.html create mode 100644 backend/design-and-development-principles:gof-design-patterns.html create mode 100644 backend/design-and-development-principles:kiss.html create mode 100644 backend/design-and-development-principles:solid.html create mode 100644 backend/design-and-development-principles:test-driven-development.html create mode 100644 backend/design-and-development-principles:yagni.html create mode 100644 backend/graph-databases.html create mode 100644 backend/graph-databases:neo4j.html create mode 100644 backend/graphql.html create mode 100644 backend/graphql:apollo.html create mode 100644 backend/graphql:relay-modern.html create mode 100644 backend/home.html create mode 100644 backend/interactive.html create mode 100644 backend/internet.html create mode 100644 backend/internet:browsers-and-how-they-work.html create mode 100644 backend/internet:dns-and-how-it-works.html create mode 100644 backend/internet:how-does-the-internet-work.html create mode 100644 backend/internet:what-is-domain-name.html create mode 100644 backend/internet:what-is-hosting.html create mode 100644 backend/internet:what-is-http.html create mode 100644 backend/learn-a-language.html create mode 100644 backend/learn-a-language:csharp.html create mode 100644 backend/learn-a-language:go.html create mode 100644 backend/learn-a-language:java.html create mode 100644 backend/learn-a-language:javascript.html create mode 100644 backend/learn-a-language:php.html create mode 100644 backend/learn-a-language:python.html create mode 100644 backend/learn-a-language:ruby.html create mode 100644 backend/learn-a-language:rust.html create mode 100644 backend/message-brokers.html create mode 100644 backend/message-brokers:kafka.html create mode 100644 backend/message-brokers:rabbitmq.html create mode 100644 backend/more-about-databases.html create mode 100644 backend/more-about-databases:acid.html create mode 100644 backend/more-about-databases:cap-theorem.html create mode 100644 backend/more-about-databases:data-replication.html create mode 100644 backend/more-about-databases:database-indexes.html create mode 100644 backend/more-about-databases:database-normalization.html create mode 100644 backend/more-about-databases:n-plus-one-problem.html create mode 100644 backend/more-about-databases:orms.html create mode 100644 backend/more-about-databases:sharding-strategies.html create mode 100644 backend/more-about-databases:transactions.html create mode 100644 backend/nosql-databases.html create mode 100644 backend/nosql-databases:column-databases.html create mode 100644 backend/nosql-databases:document-databases.html create mode 100644 backend/nosql-databases:realtime-databases.html create mode 100644 backend/nosql-databases:timeseries-databases.html create mode 100644 backend/os-general-knowledge.html create mode 100644 backend/os-general-knowledge:basic-networking-concepts.html create mode 100644 backend/os-general-knowledge:basic-terminal-commands.html create mode 100644 backend/os-general-knowledge:how-oss-work-in-general.html create mode 100644 backend/os-general-knowledge:interprocess-communication.html create mode 100644 backend/os-general-knowledge:io-management.html create mode 100644 backend/os-general-knowledge:memory-management.html create mode 100644 backend/os-general-knowledge:posix-basics.html create mode 100644 backend/os-general-knowledge:process-management.html create mode 100644 backend/os-general-knowledge:terminal-usage.html create mode 100644 backend/os-general-knowledge:threads-and-concurrency.html create mode 100644 backend/relational-databases.html create mode 100644 backend/relational-databases:mariadb.html create mode 100644 backend/relational-databases:mssql.html create mode 100644 backend/relational-databases:mysql.html create mode 100644 backend/relational-databases:oracle.html create mode 100644 backend/relational-databases:postgresql.html create mode 100644 backend/repo-hosting-services.html create mode 100644 backend/repo-hosting-services:bitbucket.html create mode 100644 backend/repo-hosting-services:github.html create mode 100644 backend/repo-hosting-services:gitlab.html create mode 100644 backend/resources.html create mode 100644 backend/scalability.html create mode 100644 backend/scalability:horizontal-vertial-scaling.html create mode 100644 backend/scalability:instrumentation-monitoring-telemetry.html create mode 100644 backend/scalability:migration-strategies.html create mode 100644 backend/scalability:mitigation-strategies.html create mode 100644 backend/scalability:observability.html create mode 100644 backend/search-engines.html create mode 100644 backend/search-engines:elasticsearch.html create mode 100644 backend/search-engines:solr.html create mode 100644 backend/testing.html create mode 100644 backend/testing:functional-testing.html create mode 100644 backend/testing:integration-testing.html create mode 100644 backend/testing:unit-testing.html create mode 100644 backend/version-control-systems.html create mode 100644 backend/version-control-systems:git.html create mode 100644 backend/web-security-knowledge.html create mode 100644 backend/web-security-knowledge:bcrypt.html create mode 100644 backend/web-security-knowledge:content-security-policy.html create mode 100644 backend/web-security-knowledge:cors.html create mode 100644 backend/web-security-knowledge:https.html create mode 100644 backend/web-security-knowledge:md5.html create mode 100644 backend/web-security-knowledge:owasp.html create mode 100644 backend/web-security-knowledge:scrypt.html create mode 100644 backend/web-security-knowledge:sha-family.html create mode 100644 backend/web-security-knowledge:ssl-tls.html create mode 100644 backend/web-servers.html create mode 100644 backend/web-servers:apache.html create mode 100644 backend/web-servers:caddy.html create mode 100644 backend/web-servers:ms-iis.html create mode 100644 backend/web-servers:nginx.html create mode 100644 backend/web-sockets.html create mode 100644 devops.html create mode 100644 devops/devops.html create mode 100644 devops/interactive.html create mode 100644 devops/resources.html create mode 100644 frontend.html create mode 100644 frontend/build-tools.html create mode 100644 frontend/build-tools:linters-formatters.html create mode 100644 frontend/build-tools:linters-formatters:eslint.html create mode 100644 frontend/build-tools:linters-formatters:prettier.html create mode 100644 frontend/build-tools:linters-formatters:standardjs.html create mode 100644 frontend/build-tools:module-bundlers.html create mode 100644 frontend/build-tools:module-bundlers:esbuild.html create mode 100644 frontend/build-tools:module-bundlers:parcel.html create mode 100644 frontend/build-tools:module-bundlers:rollup.html create mode 100644 frontend/build-tools:module-bundlers:vite.html create mode 100644 frontend/build-tools:module-bundlers:webpack.html create mode 100644 frontend/build-tools:task-runners.html create mode 100644 frontend/build-tools:task-runners:npm-scripts.html create mode 100644 frontend/css-architecture.html create mode 100644 frontend/css-architecture:bem.html create mode 100644 frontend/css-architecture:oocss.html create mode 100644 frontend/css-architecture:smacss.html create mode 100644 frontend/css-frameworks.html create mode 100644 frontend/css-frameworks:css-first.html create mode 100644 frontend/css-frameworks:css-first:bootstrap.html create mode 100644 frontend/css-frameworks:css-first:bulma.html create mode 100644 frontend/css-frameworks:js-first.html create mode 100644 frontend/css-frameworks:js-first:chakra-ui.html create mode 100644 frontend/css-frameworks:js-first:material-ui.html create mode 100644 frontend/css-frameworks:js-first:radix-ui.html create mode 100644 frontend/css-frameworks:js-first:tailwind-css.html create mode 100644 frontend/css-preprocessors.html create mode 100644 frontend/css-preprocessors:less.html create mode 100644 frontend/css-preprocessors:postcss.html create mode 100644 frontend/css-preprocessors:sass.html create mode 100644 frontend/css.html create mode 100644 frontend/css:learn-the-basics.html create mode 100644 frontend/css:making-layouts.html create mode 100644 frontend/css:responsive-design-and-media-queries.html create mode 100644 frontend/desktop-applications.html create mode 100644 frontend/desktop-applications:carlo.html create mode 100644 frontend/desktop-applications:electron.html create mode 100644 frontend/desktop-applications:proton-native.html create mode 100644 frontend/graphql.html create mode 100644 frontend/graphql:apollo.html create mode 100644 frontend/graphql:relay-modern.html create mode 100644 frontend/home.html create mode 100644 frontend/html.html create mode 100644 frontend/html:accessibility.html create mode 100644 frontend/html:conventions-and-best-practices.html create mode 100644 frontend/html:forms-and-validations.html create mode 100644 frontend/html:learn-the-basics.html create mode 100644 frontend/html:seo-basics.html create mode 100644 frontend/html:writing-semantic-html.html create mode 100644 frontend/interactive.html create mode 100644 frontend/internet.html create mode 100644 frontend/internet:browsers-and-how-they-work.html create mode 100644 frontend/internet:dns-and-how-it-works.html create mode 100644 frontend/internet:how-does-the-internet-work.html create mode 100644 frontend/internet:what-is-domain-name.html create mode 100644 frontend/internet:what-is-hosting.html create mode 100644 frontend/internet:what-is-http.html create mode 100644 frontend/javascript.html create mode 100644 frontend/javascript:concepts.html create mode 100644 frontend/javascript:es6-and-modular-javascript.html create mode 100644 frontend/javascript:learn-dom-manipulation.html create mode 100644 frontend/javascript:learn-fetch-api-ajax-xhr.html create mode 100644 frontend/javascript:syntax-and-basic-constructs.html create mode 100644 frontend/mobile-applications.html create mode 100644 frontend/mobile-applications:flutter.html create mode 100644 frontend/mobile-applications:ionic.html create mode 100644 frontend/mobile-applications:nativescript.html create mode 100644 frontend/mobile-applications:react-native.html create mode 100644 frontend/modern-css.html create mode 100644 frontend/modern-css:css-modules.html create mode 100644 frontend/modern-css:emotion.html create mode 100644 frontend/modern-css:styled-components.html create mode 100644 frontend/modern-css:styled-jsx.html create mode 100644 frontend/package-managers.html create mode 100644 frontend/package-managers:npm.html create mode 100644 frontend/package-managers:yarn.html create mode 100644 frontend/pick-a-framework.html create mode 100644 frontend/pick-a-framework:angular.html create mode 100644 frontend/pick-a-framework:angular:ngrx.html create mode 100644 frontend/pick-a-framework:angular:rxjs.html create mode 100644 frontend/pick-a-framework:react-js.html create mode 100644 frontend/pick-a-framework:react-js:mobx.html create mode 100644 frontend/pick-a-framework:react-js:recoil.html create mode 100644 frontend/pick-a-framework:react-js:redux.html create mode 100644 frontend/pick-a-framework:vue-js.html create mode 100644 frontend/pick-a-framework:vue-js:vuex.html create mode 100644 frontend/progressive-web-apps.html create mode 100644 frontend/progressive-web-apps:apis.html create mode 100644 frontend/progressive-web-apps:performance.html create mode 100644 frontend/repo-hosting-services.html create mode 100644 frontend/repo-hosting-services:bitbucket.html create mode 100644 frontend/repo-hosting-services:github.html create mode 100644 frontend/repo-hosting-services:gitlab.html create mode 100644 frontend/resources.html create mode 100644 frontend/server-side-rendering.html create mode 100644 frontend/server-side-rendering:angular.html create mode 100644 frontend/server-side-rendering:angular:universal.html create mode 100644 frontend/server-side-rendering:react-js.html create mode 100644 frontend/server-side-rendering:react-js:after-js.html create mode 100644 frontend/server-side-rendering:react-js:next-js.html create mode 100644 frontend/server-side-rendering:vue-js.html create mode 100644 frontend/server-side-rendering:vue-js:nuxt-js.html create mode 100644 frontend/static-site-generators.html create mode 100644 frontend/static-site-generators:eleventy.html create mode 100644 frontend/static-site-generators:gatsbyjs.html create mode 100644 frontend/static-site-generators:gridsome.html create mode 100644 frontend/static-site-generators:hugo.html create mode 100644 frontend/static-site-generators:jekyll.html create mode 100644 frontend/static-site-generators:next-js.html create mode 100644 frontend/static-site-generators:nuxt-js.html create mode 100644 frontend/static-site-generators:vuepress.html create mode 100644 frontend/testing-your-apps.html create mode 100644 frontend/testing-your-apps:ava.html create mode 100644 frontend/testing-your-apps:chai.html create mode 100644 frontend/testing-your-apps:cypress.html create mode 100644 frontend/testing-your-apps:enzyme.html create mode 100644 frontend/testing-your-apps:jasmine.html create mode 100644 frontend/testing-your-apps:jest.html create mode 100644 frontend/testing-your-apps:mocha.html create mode 100644 frontend/testing-your-apps:other-options.html create mode 100644 frontend/testing-your-apps:react-testing-library.html create mode 100644 frontend/type-checkers.html create mode 100644 frontend/type-checkers:flow.html create mode 100644 frontend/type-checkers:typescript.html create mode 100644 frontend/version-control-systems.html create mode 100644 frontend/version-control-systems:basic-usage-of-git.html create mode 100644 frontend/web-assembly.html create mode 100644 frontend/web-components.html create mode 100644 frontend/web-components:custom-elements.html create mode 100644 frontend/web-components:html-templates.html create mode 100644 frontend/web-components:shadow-dom.html create mode 100644 frontend/web-security-knowledge.html create mode 100644 frontend/web-security-knowledge:content-security-policy.html create mode 100644 frontend/web-security-knowledge:cors.html create mode 100644 frontend/web-security-knowledge:https.html create mode 100644 frontend/web-security-knowledge:owasp-security-risks.html create mode 100644 golang.html create mode 100644 golang/golang.html create mode 100644 golang/interactive.html create mode 100644 golang/resources.html create mode 100644 guides.html create mode 100644 guides/asymptotic-notation.html create mode 100644 guides/avoid-render-blocking-javascript-with-async-defer.html create mode 100644 guides/basic-authentication.html create mode 100644 guides/big-o-notation.html create mode 100644 guides/character-encodings.html create mode 100644 guides/ci-cd.html create mode 100644 guides/design-patterns-for-humans.html create mode 100644 guides/dhcp-in-one-picture.html create mode 100644 guides/dns-in-one-picture.html create mode 100644 guides/history-of-javascript.html create mode 100644 guides/http-caching.html create mode 100644 guides/jwt-authentication.html create mode 100644 guides/levels-of-seniority.html create mode 100644 guides/oauth.html create mode 100644 guides/proxy-servers.html create mode 100644 guides/random-numbers.html create mode 100644 guides/scaling-databases.html create mode 100644 guides/session-authentication.html create mode 100644 guides/ssl-tls-https-ssh.html create mode 100644 guides/sso.html create mode 100644 guides/token-authentication.html create mode 100644 guides/torrent-client.html create mode 100644 guides/unfamiliar-codebase.html create mode 100644 guides/what-are-web-vitals.html create mode 100644 guides/what-is-internet.html create mode 100644 guides/what-is-sli-slo-sla.html create mode 100644 guides/why-build-it-and-they-will-come-wont-work-anymore.html create mode 100644 index.html create mode 100644 java.html create mode 100644 java/interactive.html create mode 100644 java/java.html create mode 100644 java/resources.html create mode 100644 postgresql-dba.html create mode 100644 postgresql-dba/interactive.html create mode 100644 postgresql-dba/postgresql-dba.html create mode 100644 postgresql-dba/resources.html create mode 100644 python.html create mode 100644 python/interactive.html create mode 100644 python/python.html create mode 100644 python/resources.html create mode 100644 qa.html create mode 100644 qa/interactive.html create mode 100644 qa/qa.html create mode 100644 qa/resources.html create mode 100644 react.html create mode 100644 react/interactive.html create mode 100644 react/react.html create mode 100644 react/resources.html create mode 100644 roadmaps.html create mode 100644 watch.html create mode 100644 watch/acid-explained.html create mode 100644 watch/all-about-http-caching.html create mode 100644 watch/array-structure.html create mode 100644 watch/arrays-and-objects-in-javascript.html create mode 100644 watch/async-javascript.html create mode 100644 watch/big-o-notation.html create mode 100644 watch/content-delivery-networks.html create mode 100644 watch/dns-explained.html create mode 100644 watch/dns-records.html create mode 100644 watch/floating-point-arithmetic.html create mode 100644 watch/freeze-and-seal-objects-in-javascript.html create mode 100644 watch/how-to-use-css-variables.html create mode 100644 watch/how-to-use-github-actions.html create mode 100644 watch/javascript-fetch-api.html create mode 100644 watch/linked-list-data-structure.html create mode 100644 watch/load-balancers-101.html create mode 100644 watch/osi-model.html create mode 100644 watch/practical-intro-to-react.html create mode 100644 watch/promises-in-javascript.html create mode 100644 watch/queue-data-structure.html create mode 100644 watch/random-number-generators.html create mode 100644 watch/scaling-the-unscalable.html create mode 100644 watch/ssh-ssl-tls.html create mode 100644 watch/stack-data-structure.html create mode 100644 watch/system-design-101.html create mode 100644 watch/tcp-ip-model.html create mode 100644 watch/transport-protocols-tcp-vs-udp.html create mode 100644 watch/what-are-data-structures.html create mode 100644 watch/what-is-cap-theorem.html create mode 100644 watch/what-is-dependency-injection.html create mode 100644 watch/what-is-dom-shadow-dom-virtual-dom.html create mode 100644 watch/what-is-eventual-consistency.html create mode 100644 watch/yaml-in-depth.html diff --git a/404.html b/404.html index 48a3636be..765caed45 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/404.html.html b/404.html.html deleted file mode 100644 index 48a3636be..000000000 --- a/404.html.html +++ /dev/null @@ -1 +0,0 @@ -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/fHNf-HIzSmsHQKUBDdHfU/android.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android.json new file mode 100644 index 000000000..3a2284ec7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/android.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/android.json new file mode 100644 index 000000000..7e75b61af --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/android.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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},"group":"android"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/interactive.json new file mode 100644 index 000000000..3a2284ec7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/resources.json new file mode 100644 index 000000000..3a2284ec7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/android/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular.json new file mode 100644 index 000000000..8109e7e20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/angular.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/angular.json new file mode 100644 index 000000000..1a147a650 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/angular.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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},"group":"angular"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/interactive.json new file mode 100644 index 000000000..8109e7e20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/resources.json new file mode 100644 index 000000000..8109e7e20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/angular/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws.json new file mode 100644 index 000000000..99ee4f043 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/aws.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/aws.json new file mode 100644 index 000000000..888f9bf36 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/aws.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"},"group":"aws"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/interactive.json new file mode 100644 index 000000000..99ee4f043 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/resources.json new file mode 100644 index 000000000..99ee4f043 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/aws/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend.json new file mode 100644 index 000000000..0d068a6e0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis.json new file mode 100644 index 000000000..388e94fd1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication.json new file mode 100644 index 000000000..c7a5829a7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:basic-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:basic-authentication.json new file mode 100644 index 000000000..40b4f562d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:basic-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:basic-authentication"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:cookie-based.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:cookie-based.json new file mode 100644 index 000000000..ed3a8846c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:cookie-based.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:cookie-based"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:jwt.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:jwt.json new file mode 100644 index 000000000..8a118e7cd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:jwt.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:jwt"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:oauth.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:oauth.json new file mode 100644 index 000000000..731458b44 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:oauth.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:oauth"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:openid.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:openid.json new file mode 100644 index 000000000..15a93ff25 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:openid.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:openid"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:saml.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:saml.json new file mode 100644 index 000000000..d889a8cd0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:saml.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:saml"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:token-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:token-authentication.json new file mode 100644 index 000000000..889752c38 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:authentication:token-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:authentication:token-authentication"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:grpc.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:grpc.json new file mode 100644 index 000000000..0d26aa9e2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:grpc.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:grpc"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:hateoas.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:hateoas.json new file mode 100644 index 000000000..d709c52e0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:hateoas.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:hateoas"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:json-apis.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:json-apis.json new file mode 100644 index 000000000..02948bb58 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:json-apis.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:json-apis"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:open-api-spec.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:open-api-spec.json new file mode 100644 index 000000000..8699df90e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:open-api-spec.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:open-api-spec"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:rest.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:rest.json new file mode 100644 index 000000000..501dafa2a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:rest.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:rest"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:soap.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:soap.json new file mode 100644 index 000000000..7514250d8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/apis:soap.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"apis:soap"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns.json new file mode 100644 index 000000000..801200de1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:cqrs.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:cqrs.json new file mode 100644 index 000000000..4d11a7256 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:cqrs.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns:cqrs"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:microservices.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:microservices.json new file mode 100644 index 000000000..e5a6042fc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:microservices.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns:microservices"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:monolithic-apps.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:monolithic-apps.json new file mode 100644 index 000000000..c24d5204d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:monolithic-apps.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns:monolithic-apps"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:serverless.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:serverless.json new file mode 100644 index 000000000..e80e24bf7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:serverless.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns:serverless"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:soa.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:soa.json new file mode 100644 index 000000000..c14d879f0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/architectural-patterns:soa.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"architectural-patterns:soa"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend.json new file mode 100644 index 000000000..6757a7ee2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"basic-frontend"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:css.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:css.json new file mode 100644 index 000000000..2d18860fc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:css.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"basic-frontend:css"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:html.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:html.json new file mode 100644 index 000000000..547c0ecfb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:html.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"basic-frontend:html"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:javascript.json new file mode 100644 index 000000000..fce491bb0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/basic-frontend:javascript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"basic-frontend:javascript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching.json new file mode 100644 index 000000000..0f308252f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:cdn.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:cdn.json new file mode 100644 index 000000000..1b59f56c8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:cdn.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching:cdn"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:client-side.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:client-side.json new file mode 100644 index 000000000..4638ed4e6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:client-side.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching:client-side"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side.json new file mode 100644 index 000000000..5bdff63c6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching:server-side"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:memcached.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:memcached.json new file mode 100644 index 000000000..2a09f2433 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:memcached.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching:server-side:memcached"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:redis.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:redis.json new file mode 100644 index 000000000..1f3b8bddb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/caching:server-side:redis.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"caching:server-side:redis"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/ci-cd.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/ci-cd.json new file mode 100644 index 000000000..99892a2fc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/ci-cd.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"ci-cd"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization.json new file mode 100644 index 000000000..7d1a0a534 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"containerization"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:docker.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:docker.json new file mode 100644 index 000000000..51f11a527 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:docker.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"containerization:docker"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:lxc.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:lxc.json new file mode 100644 index 000000000..74ce20344 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:lxc.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"containerization:lxc"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:rkt.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:rkt.json new file mode 100644 index 000000000..e9b3256d0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/containerization:rkt.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"containerization:rkt"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles.json new file mode 100644 index 000000000..957163d26 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:domain-driven-design.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:domain-driven-design.json new file mode 100644 index 000000000..b817ada5d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:domain-driven-design.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:domain-driven-design"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:dry.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:dry.json new file mode 100644 index 000000000..1b330927e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:dry.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:dry"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:gof-design-patterns.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:gof-design-patterns.json new file mode 100644 index 000000000..10c8f072b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:gof-design-patterns.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:gof-design-patterns"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:kiss.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:kiss.json new file mode 100644 index 000000000..83e477e9e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:kiss.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:kiss"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:solid.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:solid.json new file mode 100644 index 000000000..62a9de50a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:solid.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:solid"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:test-driven-development.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:test-driven-development.json new file mode 100644 index 000000000..bc0c51f07 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:test-driven-development.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:test-driven-development"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:yagni.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:yagni.json new file mode 100644 index 000000000..f293e4ef2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/design-and-development-principles:yagni.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"design-and-development-principles:yagni"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases.json new file mode 100644 index 000000000..afb9feafb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"graph-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases:neo4j.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases:neo4j.json new file mode 100644 index 000000000..5dfd4ff24 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graph-databases:neo4j.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"graph-databases:neo4j"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql.json new file mode 100644 index 000000000..b7784075a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"graphql"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:apollo.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:apollo.json new file mode 100644 index 000000000..83181ddb8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:apollo.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"graphql:apollo"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:relay-modern.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:relay-modern.json new file mode 100644 index 000000000..490dead39 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/graphql:relay-modern.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"graphql:relay-modern"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/home.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/home.json new file mode 100644 index 000000000..d1a86091a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/home.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"home"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/interactive.json new file mode 100644 index 000000000..0d068a6e0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet.json new file mode 100644 index 000000000..f17d5e8e2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:browsers-and-how-they-work.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:browsers-and-how-they-work.json new file mode 100644 index 000000000..115cadad9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:browsers-and-how-they-work.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:browsers-and-how-they-work"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:dns-and-how-it-works.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:dns-and-how-it-works.json new file mode 100644 index 000000000..0aa2dc6bd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:dns-and-how-it-works.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:dns-and-how-it-works"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:how-does-the-internet-work.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:how-does-the-internet-work.json new file mode 100644 index 000000000..5ae09e629 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:how-does-the-internet-work.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:how-does-the-internet-work"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-domain-name.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-domain-name.json new file mode 100644 index 000000000..4b917163e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-domain-name.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:what-is-domain-name"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-hosting.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-hosting.json new file mode 100644 index 000000000..c5b05b7a0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-hosting.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:what-is-hosting"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-http.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-http.json new file mode 100644 index 000000000..b23bf2895 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/internet:what-is-http.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"internet:what-is-http"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language.json new file mode 100644 index 000000000..4b8164727 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:csharp.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:csharp.json new file mode 100644 index 000000000..528001680 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:csharp.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:csharp"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:go.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:go.json new file mode 100644 index 000000000..49922434b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:go.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:go"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:java.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:java.json new file mode 100644 index 000000000..d62ec4bdb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:java.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:java"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:javascript.json new file mode 100644 index 000000000..b238d72fa --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:javascript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:javascript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:php.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:php.json new file mode 100644 index 000000000..75626d225 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:php.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:php"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:python.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:python.json new file mode 100644 index 000000000..7a3b9ee20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:python.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:python"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:ruby.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:ruby.json new file mode 100644 index 000000000..5d0a3a2a8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:ruby.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:ruby"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:rust.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:rust.json new file mode 100644 index 000000000..596b583b3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/learn-a-language:rust.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"learn-a-language:rust"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers.json new file mode 100644 index 000000000..c5e204c35 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"message-brokers"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:kafka.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:kafka.json new file mode 100644 index 000000000..570681a93 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:kafka.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"message-brokers:kafka"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:rabbitmq.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:rabbitmq.json new file mode 100644 index 000000000..bdd6c308a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/message-brokers:rabbitmq.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"message-brokers:rabbitmq"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases.json new file mode 100644 index 000000000..0a6735db2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:acid.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:acid.json new file mode 100644 index 000000000..e3598ad68 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:acid.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:acid"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:cap-theorem.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:cap-theorem.json new file mode 100644 index 000000000..698a9160b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:cap-theorem.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:cap-theorem"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:data-replication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:data-replication.json new file mode 100644 index 000000000..e6c7cb6e1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:data-replication.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:data-replication"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-indexes.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-indexes.json new file mode 100644 index 000000000..66ce81a42 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-indexes.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:database-indexes"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-normalization.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-normalization.json new file mode 100644 index 000000000..76729d121 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:database-normalization.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:database-normalization"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:n-plus-one-problem.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:n-plus-one-problem.json new file mode 100644 index 000000000..c88bb6104 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:n-plus-one-problem.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:n-plus-one-problem"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:orms.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:orms.json new file mode 100644 index 000000000..5f8b2c472 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:orms.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:orms"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:sharding-strategies.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:sharding-strategies.json new file mode 100644 index 000000000..cf8d1e0ff --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:sharding-strategies.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:sharding-strategies"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:transactions.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:transactions.json new file mode 100644 index 000000000..8d6ffbd04 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/more-about-databases:transactions.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"more-about-databases:transactions"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases.json new file mode 100644 index 000000000..2ba37cccd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"nosql-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:column-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:column-databases.json new file mode 100644 index 000000000..f4bbcda3f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:column-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"nosql-databases:column-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:document-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:document-databases.json new file mode 100644 index 000000000..9169840c4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:document-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"nosql-databases:document-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:realtime-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:realtime-databases.json new file mode 100644 index 000000000..8dc0254c8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:realtime-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"nosql-databases:realtime-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:timeseries-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:timeseries-databases.json new file mode 100644 index 000000000..7333b25a2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/nosql-databases:timeseries-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"nosql-databases:timeseries-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge.json new file mode 100644 index 000000000..c676208d3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-networking-concepts.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-networking-concepts.json new file mode 100644 index 000000000..6dc9e7f67 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-networking-concepts.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:basic-networking-concepts"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-terminal-commands.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-terminal-commands.json new file mode 100644 index 000000000..18b3befcb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:basic-terminal-commands.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:basic-terminal-commands"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:how-oss-work-in-general.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:how-oss-work-in-general.json new file mode 100644 index 000000000..0c45e08d2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:how-oss-work-in-general.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:how-oss-work-in-general"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:interprocess-communication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:interprocess-communication.json new file mode 100644 index 000000000..047e243ff --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:interprocess-communication.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:interprocess-communication"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:io-management.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:io-management.json new file mode 100644 index 000000000..4b5d77b31 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:io-management.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:io-management"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:memory-management.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:memory-management.json new file mode 100644 index 000000000..12eab9176 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:memory-management.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:memory-management"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:posix-basics.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:posix-basics.json new file mode 100644 index 000000000..eabfed4bc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:posix-basics.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:posix-basics"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:process-management.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:process-management.json new file mode 100644 index 000000000..5afa82f1a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:process-management.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:process-management"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:terminal-usage.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:terminal-usage.json new file mode 100644 index 000000000..d6801c92a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:terminal-usage.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:terminal-usage"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:threads-and-concurrency.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:threads-and-concurrency.json new file mode 100644 index 000000000..f4e73cbb2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/os-general-knowledge:threads-and-concurrency.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"os-general-knowledge:threads-and-concurrency"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases.json new file mode 100644 index 000000000..b376fd289 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mariadb.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mariadb.json new file mode 100644 index 000000000..a7d1dba1d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mariadb.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases:mariadb"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mssql.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mssql.json new file mode 100644 index 000000000..b10819d70 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mssql.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases:mssql"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mysql.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mysql.json new file mode 100644 index 000000000..40feafb18 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:mysql.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases:mysql"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:oracle.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:oracle.json new file mode 100644 index 000000000..345d221b0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:oracle.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases:oracle"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:postgresql.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:postgresql.json new file mode 100644 index 000000000..25b7f4030 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/relational-databases:postgresql.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"relational-databases:postgresql"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services.json new file mode 100644 index 000000000..56e6321c5 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"repo-hosting-services"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:bitbucket.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:bitbucket.json new file mode 100644 index 000000000..ab7afecd5 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:bitbucket.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"repo-hosting-services:bitbucket"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:github.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:github.json new file mode 100644 index 000000000..38c12b2ef --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:github.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"repo-hosting-services:github"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:gitlab.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:gitlab.json new file mode 100644 index 000000000..8bbe8c2be --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/repo-hosting-services:gitlab.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"repo-hosting-services:gitlab"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/resources.json new file mode 100644 index 000000000..0d068a6e0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability.json new file mode 100644 index 000000000..3fe85fffb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:horizontal-vertial-scaling.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:horizontal-vertial-scaling.json new file mode 100644 index 000000000..e398c5118 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:horizontal-vertial-scaling.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability:horizontal-vertial-scaling"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:instrumentation-monitoring-telemetry.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:instrumentation-monitoring-telemetry.json new file mode 100644 index 000000000..853720bda --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:instrumentation-monitoring-telemetry.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability:instrumentation-monitoring-telemetry"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:migration-strategies.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:migration-strategies.json new file mode 100644 index 000000000..1ecb3fde3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:migration-strategies.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability:migration-strategies"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:mitigation-strategies.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:mitigation-strategies.json new file mode 100644 index 000000000..e6d2ff0f7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:mitigation-strategies.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability:mitigation-strategies"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:observability.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:observability.json new file mode 100644 index 000000000..5ef84e8cd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/scalability:observability.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"scalability:observability"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines.json new file mode 100644 index 000000000..644280666 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"search-engines"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:elasticsearch.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:elasticsearch.json new file mode 100644 index 000000000..153628f0a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:elasticsearch.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"search-engines:elasticsearch"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:solr.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:solr.json new file mode 100644 index 000000000..e69781e4f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/search-engines:solr.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"search-engines:solr"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing.json new file mode 100644 index 000000000..f3e7603a7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"testing"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:functional-testing.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:functional-testing.json new file mode 100644 index 000000000..9eebf4664 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:functional-testing.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"testing:functional-testing"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:integration-testing.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:integration-testing.json new file mode 100644 index 000000000..fb025c3e2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:integration-testing.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"testing:integration-testing"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:unit-testing.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:unit-testing.json new file mode 100644 index 000000000..076c9dccb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/testing:unit-testing.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"testing:unit-testing"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems.json new file mode 100644 index 000000000..e28833f14 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"version-control-systems"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems:git.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems:git.json new file mode 100644 index 000000000..4e115d720 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/version-control-systems:git.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"version-control-systems:git"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge.json new file mode 100644 index 000000000..dbd92471d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:bcrypt.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:bcrypt.json new file mode 100644 index 000000000..7b441d11f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:bcrypt.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:bcrypt"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:content-security-policy.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:content-security-policy.json new file mode 100644 index 000000000..31743c12f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:content-security-policy.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:content-security-policy"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:cors.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:cors.json new file mode 100644 index 000000000..510230507 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:cors.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:cors"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:https.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:https.json new file mode 100644 index 000000000..6f62a2f3e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:https.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:https"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:md5.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:md5.json new file mode 100644 index 000000000..918f22924 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:md5.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:md5"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:owasp.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:owasp.json new file mode 100644 index 000000000..46635de68 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:owasp.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:owasp"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:scrypt.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:scrypt.json new file mode 100644 index 000000000..d09c95fc2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:scrypt.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:scrypt"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:sha-family.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:sha-family.json new file mode 100644 index 000000000..72b15fcb9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:sha-family.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:sha-family"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:ssl-tls.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:ssl-tls.json new file mode 100644 index 000000000..6e6972d19 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-security-knowledge:ssl-tls.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-security-knowledge:ssl-tls"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers.json new file mode 100644 index 000000000..171dfe8fc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-servers"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:apache.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:apache.json new file mode 100644 index 000000000..581ddae4f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:apache.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-servers:apache"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:caddy.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:caddy.json new file mode 100644 index 000000000..0a336a034 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:caddy.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-servers:caddy"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:ms-iis.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:ms-iis.json new file mode 100644 index 000000000..1ff4aac09 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:ms-iis.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-servers:ms-iis"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:nginx.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:nginx.json new file mode 100644 index 000000000..332a78565 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-servers:nginx.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-servers:nginx"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-sockets.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-sockets.json new file mode 100644 index 000000000..180be2671 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/backend/web-sockets.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","id":"backend","metaPath":"/roadmaps/101-backend/meta.json","isUpcoming":false},"group":"web-sockets"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops.json new file mode 100644 index 000000000..ee244b3db --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/devops.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/devops.json new file mode 100644 index 000000000..7aa9d9c0e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/devops.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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},"group":"devops"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/interactive.json new file mode 100644 index 000000000..ee244b3db --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/resources.json new file mode 100644 index 000000000..ee244b3db --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/devops/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend.json new file mode 100644 index 000000000..99f11fbbe --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools.json new file mode 100644 index 000000000..51fe83ef2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters.json new file mode 100644 index 000000000..4e7a9f1db --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:linters-formatters"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:eslint.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:eslint.json new file mode 100644 index 000000000..83754199a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:eslint.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:linters-formatters:eslint"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:prettier.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:prettier.json new file mode 100644 index 000000000..8f9c2b3e9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:prettier.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:linters-formatters:prettier"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:standardjs.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:standardjs.json new file mode 100644 index 000000000..f764eaf2c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:linters-formatters:standardjs.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:linters-formatters:standardjs"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers.json new file mode 100644 index 000000000..11acbde52 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:esbuild.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:esbuild.json new file mode 100644 index 000000000..e25da52d1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:esbuild.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers:esbuild"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:parcel.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:parcel.json new file mode 100644 index 000000000..5f7960f00 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:parcel.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers:parcel"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:rollup.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:rollup.json new file mode 100644 index 000000000..7c4b68ca5 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:rollup.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers:rollup"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:vite.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:vite.json new file mode 100644 index 000000000..79003bf0d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:vite.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers:vite"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:webpack.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:webpack.json new file mode 100644 index 000000000..b67477cb3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:module-bundlers:webpack.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:module-bundlers:webpack"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners.json new file mode 100644 index 000000000..bfc2ee5a1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:task-runners"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners:npm-scripts.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners:npm-scripts.json new file mode 100644 index 000000000..db7cdf5e7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/build-tools:task-runners:npm-scripts.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"build-tools:task-runners:npm-scripts"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture.json new file mode 100644 index 000000000..21cbf2e10 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-architecture"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:bem.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:bem.json new file mode 100644 index 000000000..80da9a1eb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:bem.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-architecture:bem"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:oocss.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:oocss.json new file mode 100644 index 000000000..e4df864db --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:oocss.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-architecture:oocss"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:smacss.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:smacss.json new file mode 100644 index 000000000..5a9c50162 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-architecture:smacss.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-architecture:smacss"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks.json new file mode 100644 index 000000000..d9a89aba4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first.json new file mode 100644 index 000000000..d825c93d2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:css-first"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bootstrap.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bootstrap.json new file mode 100644 index 000000000..1637e8443 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bootstrap.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:css-first:bootstrap"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bulma.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bulma.json new file mode 100644 index 000000000..17582f86a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:css-first:bulma.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:css-first:bulma"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first.json new file mode 100644 index 000000000..db12e9086 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:js-first"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:chakra-ui.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:chakra-ui.json new file mode 100644 index 000000000..b068499fc --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:chakra-ui.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:js-first:chakra-ui"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:material-ui.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:material-ui.json new file mode 100644 index 000000000..2a5bdf22b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:material-ui.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:js-first:material-ui"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:radix-ui.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:radix-ui.json new file mode 100644 index 000000000..4c68a35cd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:radix-ui.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:js-first:radix-ui"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:tailwind-css.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:tailwind-css.json new file mode 100644 index 000000000..9cd8c5ab1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-frameworks:js-first:tailwind-css.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-frameworks:js-first:tailwind-css"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors.json new file mode 100644 index 000000000..5511c2bc2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-preprocessors"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:less.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:less.json new file mode 100644 index 000000000..427cc9fa0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:less.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-preprocessors:less"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:postcss.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:postcss.json new file mode 100644 index 000000000..56fdea058 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:postcss.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-preprocessors:postcss"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:sass.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:sass.json new file mode 100644 index 000000000..8196c5d90 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css-preprocessors:sass.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css-preprocessors:sass"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css.json new file mode 100644 index 000000000..5ad1669f1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:learn-the-basics.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:learn-the-basics.json new file mode 100644 index 000000000..ea7f067a0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:learn-the-basics.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css:learn-the-basics"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:making-layouts.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:making-layouts.json new file mode 100644 index 000000000..671c1699d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:making-layouts.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css:making-layouts"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:responsive-design-and-media-queries.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:responsive-design-and-media-queries.json new file mode 100644 index 000000000..d020161c6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/css:responsive-design-and-media-queries.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"css:responsive-design-and-media-queries"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications.json new file mode 100644 index 000000000..6a7566611 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"desktop-applications"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:carlo.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:carlo.json new file mode 100644 index 000000000..018fe9427 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:carlo.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"desktop-applications:carlo"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:electron.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:electron.json new file mode 100644 index 000000000..9c2403c16 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:electron.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"desktop-applications:electron"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:proton-native.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:proton-native.json new file mode 100644 index 000000000..f6d13c170 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/desktop-applications:proton-native.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"desktop-applications:proton-native"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql.json new file mode 100644 index 000000000..399245b6f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"graphql"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:apollo.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:apollo.json new file mode 100644 index 000000000..25c626426 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:apollo.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"graphql:apollo"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:relay-modern.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:relay-modern.json new file mode 100644 index 000000000..382e92718 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/graphql:relay-modern.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"graphql:relay-modern"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/home.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/home.json new file mode 100644 index 000000000..ce4fad6be --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/home.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"home"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html.json new file mode 100644 index 000000000..faeb5ebeb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:accessibility.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:accessibility.json new file mode 100644 index 000000000..1eb6c32ef --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:accessibility.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:accessibility"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:conventions-and-best-practices.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:conventions-and-best-practices.json new file mode 100644 index 000000000..310d5926a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:conventions-and-best-practices.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:conventions-and-best-practices"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:forms-and-validations.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:forms-and-validations.json new file mode 100644 index 000000000..d99b4ece1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:forms-and-validations.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:forms-and-validations"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:learn-the-basics.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:learn-the-basics.json new file mode 100644 index 000000000..b66c860d4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:learn-the-basics.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:learn-the-basics"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:seo-basics.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:seo-basics.json new file mode 100644 index 000000000..b24ad0e20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:seo-basics.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:seo-basics"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:writing-semantic-html.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:writing-semantic-html.json new file mode 100644 index 000000000..0252e6e6d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/html:writing-semantic-html.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"html:writing-semantic-html"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/interactive.json new file mode 100644 index 000000000..99f11fbbe --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet.json new file mode 100644 index 000000000..7d0e939fa --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:browsers-and-how-they-work.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:browsers-and-how-they-work.json new file mode 100644 index 000000000..66f1b27a4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:browsers-and-how-they-work.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:browsers-and-how-they-work"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:dns-and-how-it-works.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:dns-and-how-it-works.json new file mode 100644 index 000000000..eb62647ec --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:dns-and-how-it-works.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:dns-and-how-it-works"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:how-does-the-internet-work.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:how-does-the-internet-work.json new file mode 100644 index 000000000..cf2c5b0d9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:how-does-the-internet-work.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:how-does-the-internet-work"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-domain-name.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-domain-name.json new file mode 100644 index 000000000..9f61e2242 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-domain-name.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:what-is-domain-name"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-hosting.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-hosting.json new file mode 100644 index 000000000..5eeea7da5 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-hosting.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:what-is-hosting"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-http.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-http.json new file mode 100644 index 000000000..88e0b6d05 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/internet:what-is-http.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"internet:what-is-http"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript.json new file mode 100644 index 000000000..cb2e3d74e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:concepts.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:concepts.json new file mode 100644 index 000000000..14e0211e7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:concepts.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript:concepts"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:es6-and-modular-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:es6-and-modular-javascript.json new file mode 100644 index 000000000..574134405 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:es6-and-modular-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript:es6-and-modular-javascript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-dom-manipulation.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-dom-manipulation.json new file mode 100644 index 000000000..e88e7c162 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-dom-manipulation.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript:learn-dom-manipulation"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-fetch-api-ajax-xhr.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-fetch-api-ajax-xhr.json new file mode 100644 index 000000000..01e2ca6b2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:learn-fetch-api-ajax-xhr.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript:learn-fetch-api-ajax-xhr"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:syntax-and-basic-constructs.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:syntax-and-basic-constructs.json new file mode 100644 index 000000000..095fc04ea --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/javascript:syntax-and-basic-constructs.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"javascript:syntax-and-basic-constructs"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications.json new file mode 100644 index 000000000..5ed8f56cb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"mobile-applications"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:flutter.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:flutter.json new file mode 100644 index 000000000..daaf2e820 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:flutter.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"mobile-applications:flutter"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:ionic.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:ionic.json new file mode 100644 index 000000000..3991db6b1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:ionic.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"mobile-applications:ionic"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:nativescript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:nativescript.json new file mode 100644 index 000000000..010a3122c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:nativescript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"mobile-applications:nativescript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:react-native.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:react-native.json new file mode 100644 index 000000000..50e1ccd60 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/mobile-applications:react-native.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"mobile-applications:react-native"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css.json new file mode 100644 index 000000000..22f991cfd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"modern-css"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:css-modules.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:css-modules.json new file mode 100644 index 000000000..7d3fbbcba --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:css-modules.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"modern-css:css-modules"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:emotion.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:emotion.json new file mode 100644 index 000000000..193ab08c4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:emotion.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"modern-css:emotion"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-components.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-components.json new file mode 100644 index 000000000..6adc20c70 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-components.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"modern-css:styled-components"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-jsx.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-jsx.json new file mode 100644 index 000000000..b320c4cf6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/modern-css:styled-jsx.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"modern-css:styled-jsx"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers.json new file mode 100644 index 000000000..83892aee2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"package-managers"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:npm.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:npm.json new file mode 100644 index 000000000..7ae5414a6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:npm.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"package-managers:npm"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:yarn.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:yarn.json new file mode 100644 index 000000000..56dcb958c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/package-managers:yarn.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"package-managers:yarn"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework.json new file mode 100644 index 000000000..8185926d6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular.json new file mode 100644 index 000000000..f01e39566 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:angular"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:ngrx.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:ngrx.json new file mode 100644 index 000000000..85f5c52e4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:ngrx.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:angular:ngrx"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:rxjs.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:rxjs.json new file mode 100644 index 000000000..777fdd594 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:angular:rxjs.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:angular:rxjs"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js.json new file mode 100644 index 000000000..c628d818d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:react-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:mobx.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:mobx.json new file mode 100644 index 000000000..0f4488e18 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:mobx.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:react-js:mobx"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:recoil.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:recoil.json new file mode 100644 index 000000000..f46ea184c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:recoil.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:react-js:recoil"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:redux.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:redux.json new file mode 100644 index 000000000..e4a1def80 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:react-js:redux.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:react-js:redux"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js.json new file mode 100644 index 000000000..e27a1c62b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:vue-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js:vuex.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js:vuex.json new file mode 100644 index 000000000..a471e6516 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/pick-a-framework:vue-js:vuex.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"pick-a-framework:vue-js:vuex"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps.json new file mode 100644 index 000000000..90235d482 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"progressive-web-apps"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:apis.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:apis.json new file mode 100644 index 000000000..79c1e06f6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:apis.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"progressive-web-apps:apis"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:performance.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:performance.json new file mode 100644 index 000000000..adbc89e48 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/progressive-web-apps:performance.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"progressive-web-apps:performance"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services.json new file mode 100644 index 000000000..61f045828 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"repo-hosting-services"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:bitbucket.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:bitbucket.json new file mode 100644 index 000000000..ab50549b1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:bitbucket.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"repo-hosting-services:bitbucket"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:github.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:github.json new file mode 100644 index 000000000..072eb625e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:github.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"repo-hosting-services:github"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:gitlab.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:gitlab.json new file mode 100644 index 000000000..3c8507233 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/repo-hosting-services:gitlab.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"repo-hosting-services:gitlab"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/resources.json new file mode 100644 index 000000000..99f11fbbe --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering.json new file mode 100644 index 000000000..35810447c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular.json new file mode 100644 index 000000000..a2a4986b9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:angular"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular:universal.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular:universal.json new file mode 100644 index 000000000..f159dfb1a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:angular:universal.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:angular:universal"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js.json new file mode 100644 index 000000000..558a33f97 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:react-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:after-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:after-js.json new file mode 100644 index 000000000..9f9842672 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:after-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:react-js:after-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:next-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:next-js.json new file mode 100644 index 000000000..da89ac838 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:react-js:next-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:react-js:next-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js.json new file mode 100644 index 000000000..9d53dcb50 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:vue-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js:nuxt-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js:nuxt-js.json new file mode 100644 index 000000000..ecd8872b6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/server-side-rendering:vue-js:nuxt-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"server-side-rendering:vue-js:nuxt-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators.json new file mode 100644 index 000000000..a02b19638 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:eleventy.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:eleventy.json new file mode 100644 index 000000000..585261666 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:eleventy.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:eleventy"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gatsbyjs.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gatsbyjs.json new file mode 100644 index 000000000..d63756ee1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gatsbyjs.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:gatsbyjs"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gridsome.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gridsome.json new file mode 100644 index 000000000..e3bd53380 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:gridsome.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:gridsome"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:hugo.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:hugo.json new file mode 100644 index 000000000..d7bc42455 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:hugo.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:hugo"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:jekyll.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:jekyll.json new file mode 100644 index 000000000..01ebcf00f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:jekyll.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:jekyll"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:next-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:next-js.json new file mode 100644 index 000000000..8d54db28d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:next-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:next-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:nuxt-js.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:nuxt-js.json new file mode 100644 index 000000000..ab81315df --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:nuxt-js.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:nuxt-js"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:vuepress.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:vuepress.json new file mode 100644 index 000000000..b41524032 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/static-site-generators:vuepress.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"static-site-generators:vuepress"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps.json new file mode 100644 index 000000000..d8ea36b54 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:ava.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:ava.json new file mode 100644 index 000000000..881f963b4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:ava.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:ava"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:chai.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:chai.json new file mode 100644 index 000000000..7c3542420 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:chai.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:chai"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:cypress.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:cypress.json new file mode 100644 index 000000000..9ddbdf843 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:cypress.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:cypress"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:enzyme.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:enzyme.json new file mode 100644 index 000000000..b57e07d8f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:enzyme.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:enzyme"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jasmine.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jasmine.json new file mode 100644 index 000000000..123e0fb92 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jasmine.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:jasmine"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jest.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jest.json new file mode 100644 index 000000000..34ebe3b6a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:jest.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:jest"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:mocha.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:mocha.json new file mode 100644 index 000000000..3cff3d8a3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:mocha.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:mocha"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:other-options.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:other-options.json new file mode 100644 index 000000000..ce3d1d3f3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:other-options.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:other-options"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:react-testing-library.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:react-testing-library.json new file mode 100644 index 000000000..ed2dc6c66 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/testing-your-apps:react-testing-library.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"testing-your-apps:react-testing-library"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers.json new file mode 100644 index 000000000..263e5cc8d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"type-checkers"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:flow.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:flow.json new file mode 100644 index 000000000..3284b7f20 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:flow.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"type-checkers:flow"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:typescript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:typescript.json new file mode 100644 index 000000000..c13eb0252 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/type-checkers:typescript.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"type-checkers:typescript"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems.json new file mode 100644 index 000000000..cf66d96c3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"version-control-systems"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems:basic-usage-of-git.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems:basic-usage-of-git.json new file mode 100644 index 000000000..60a50636f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/version-control-systems:basic-usage-of-git.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"version-control-systems:basic-usage-of-git"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-assembly.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-assembly.json new file mode 100644 index 000000000..eaff093f7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-assembly.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-assembly"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components.json new file mode 100644 index 000000000..e1f45f72f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-components"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:custom-elements.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:custom-elements.json new file mode 100644 index 000000000..0c3ab4d7e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:custom-elements.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-components:custom-elements"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:html-templates.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:html-templates.json new file mode 100644 index 000000000..52cc24a2b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:html-templates.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-components:html-templates"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:shadow-dom.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:shadow-dom.json new file mode 100644 index 000000000..4e79f9adf --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-components:shadow-dom.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-components:shadow-dom"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge.json new file mode 100644 index 000000000..cecf50ca7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-security-knowledge"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:content-security-policy.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:content-security-policy.json new file mode 100644 index 000000000..458d3c9b8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:content-security-policy.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-security-knowledge:content-security-policy"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:cors.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:cors.json new file mode 100644 index 000000000..d86b153cb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:cors.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-security-knowledge:cors"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:https.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:https.json new file mode 100644 index 000000000..a7f4c2e8f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:https.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-security-knowledge:https"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:owasp-security-risks.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:owasp-security-risks.json new file mode 100644 index 000000000..a77ed3ad0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/frontend/web-security-knowledge:owasp-security-risks.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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},"group":"web-security-knowledge:owasp-security-risks"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang.json new file mode 100644 index 000000000..6da020878 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/golang.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/golang.json new file mode 100644 index 000000000..6ee73f3ca --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/golang.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"},"group":"golang"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/interactive.json new file mode 100644 index 000000000..6da020878 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/resources.json new file mode 100644 index 000000000..6da020878 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/golang/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides.json new file mode 100644 index 000000000..3bfcd48ad --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides.json @@ -0,0 +1 @@ +{"pageProps":{"guides":[{"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","formattedCreatedAt":"September 10, 2021","formattedUpdatedAt":"September 10, 2021","author":{"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."}},{"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","formattedCreatedAt":"September 5, 2021","formattedUpdatedAt":"September 5, 2021","author":{"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."}},{"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","formattedCreatedAt":"August 31, 2021","formattedUpdatedAt":"August 31, 2021","author":{"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."}},{"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","formattedCreatedAt":"July 9, 2021","formattedUpdatedAt":"July 9, 2021","author":{"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."}},{"id":"sso","title":"SSO — 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","formattedCreatedAt":"July 1, 2021","formattedUpdatedAt":"July 1, 2021","author":{"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."}},{"id":"oauth","title":"OAuth — 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","formattedCreatedAt":"June 28, 2021","formattedUpdatedAt":"June 28, 2021","author":{"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."}},{"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","formattedCreatedAt":"June 20, 2021","formattedUpdatedAt":"June 20, 2021","author":{"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."}},{"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","formattedCreatedAt":"June 2, 2021","formattedUpdatedAt":"June 2, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 26, 2021","formattedUpdatedAt":"May 26, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 19, 2021","formattedUpdatedAt":"May 19, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 14, 2021","formattedUpdatedAt":"May 14, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 4, 2021","formattedUpdatedAt":"May 4, 2021","author":{"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."}},{"id":"why-build-it-and-they-will-come-wont-work-anymore","title":"Build it and they will come?","description":"Why “build it and they will come” alone won’t work anymore","isPro":false,"authorUsername":"spekulatius","updatedAt":"2021-05-04T12:59:14.191Z","createdAt":"2021-05-04T12:59:14.191Z","formattedCreatedAt":"May 4, 2021","formattedUpdatedAt":"May 4, 2021","author":{"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"}},{"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","formattedCreatedAt":"April 28, 2021","formattedUpdatedAt":"April 28, 2021","author":{"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."}},{"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","formattedCreatedAt":"April 22, 2021","formattedUpdatedAt":"April 22, 2021","author":{"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."}},{"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","formattedCreatedAt":"April 3, 2021","formattedUpdatedAt":"April 3, 2021","author":{"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."}},{"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","formattedCreatedAt":"March 15, 2021","formattedUpdatedAt":"March 15, 2021","author":{"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."}},{"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","formattedCreatedAt":"March 14, 2021","formattedUpdatedAt":"March 14, 2021","author":{"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."}},{"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","formattedCreatedAt":"March 1, 2021","formattedUpdatedAt":"March 1, 2021","author":{"username":"dmytrobol","name":"Dmytro Bolkachov","twitter":"dmytrobol","picture":"/authors/dmytrobol.png","bio":"JavaScript Lad, Movie buff and coder interested in everything web related"}},{"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","formattedCreatedAt":"February 18, 2021","formattedUpdatedAt":"February 18, 2021","author":{"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."}},{"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/","formattedCreatedAt":"January 17, 2021","formattedUpdatedAt":"January 17, 2021","author":{"username":"jesse","name":"Jesse Li","twitter":"__jesse_li","picture":"/authors/jesse.png","bio":"Software engineer."}},{"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","formattedCreatedAt":"December 3, 2020","formattedUpdatedAt":"December 3, 2020","author":{"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."}},{"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","formattedCreatedAt":"January 23, 2019","formattedUpdatedAt":"October 9, 2019","author":{"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."}},{"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","formattedCreatedAt":"December 4, 2018","formattedUpdatedAt":"December 4, 2018","author":{"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."}},{"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","formattedCreatedAt":"November 29, 2018","formattedUpdatedAt":"November 29, 2018","author":{"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."}},{"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","formattedCreatedAt":"October 28, 2017","formattedUpdatedAt":"October 28, 2017","author":{"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."}},{"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","formattedCreatedAt":"October 24, 2017","formattedUpdatedAt":"October 24, 2017","author":{"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)"}}]},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/asymptotic-notation.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/asymptotic-notation.json new file mode 100644 index 000000000..bfd87e789 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/asymptotic-notation.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"April 3, 2021","formattedUpdatedAt":"April 3, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/avoid-render-blocking-javascript-with-async-defer.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/avoid-render-blocking-javascript-with-async-defer.json new file mode 100644 index 000000000..7d1b3d4df --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/avoid-render-blocking-javascript-with-async-defer.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"September 10, 2021","formattedUpdatedAt":"September 10, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/basic-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/basic-authentication.json new file mode 100644 index 000000000..7e3b18828 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/basic-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"May 19, 2021","formattedUpdatedAt":"May 19, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/big-o-notation.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/big-o-notation.json new file mode 100644 index 000000000..1bcfa8119 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/big-o-notation.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"March 15, 2021","formattedUpdatedAt":"March 15, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/character-encodings.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/character-encodings.json new file mode 100644 index 000000000..13ac5dc7c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/character-encodings.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"May 14, 2021","formattedUpdatedAt":"May 14, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ci-cd.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ci-cd.json new file mode 100644 index 000000000..61a834e1d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ci-cd.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"July 9, 2021","formattedUpdatedAt":"July 9, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/design-patterns-for-humans.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/design-patterns-for-humans.json new file mode 100644 index 000000000..b047ded94 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/design-patterns-for-humans.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"January 23, 2019","formattedUpdatedAt":"October 9, 2019","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dhcp-in-one-picture.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dhcp-in-one-picture.json new file mode 100644 index 000000000..ea93afc69 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dhcp-in-one-picture.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"April 28, 2021","formattedUpdatedAt":"April 28, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dns-in-one-picture.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dns-in-one-picture.json new file mode 100644 index 000000000..6fd155770 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/dns-in-one-picture.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"December 4, 2018","formattedUpdatedAt":"December 4, 2018","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/history-of-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/history-of-javascript.json new file mode 100644 index 000000000..1884484d6 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/history-of-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"October 28, 2017","formattedUpdatedAt":"October 28, 2017","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/http-caching.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/http-caching.json new file mode 100644 index 000000000..b7acc472d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/http-caching.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"November 29, 2018","formattedUpdatedAt":"November 29, 2018","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/jwt-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/jwt-authentication.json new file mode 100644 index 000000000..e1c486fa7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/jwt-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"June 20, 2021","formattedUpdatedAt":"June 20, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/levels-of-seniority.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/levels-of-seniority.json new file mode 100644 index 000000000..07704edaf --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/levels-of-seniority.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"December 3, 2020","formattedUpdatedAt":"December 3, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/oauth.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/oauth.json new file mode 100644 index 000000000..f07f5cab3 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/oauth.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"id":"oauth","title":"OAuth — 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","formattedCreatedAt":"June 28, 2021","formattedUpdatedAt":"June 28, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/proxy-servers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/proxy-servers.json new file mode 100644 index 000000000..0e1c3de5e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/proxy-servers.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"October 24, 2017","formattedUpdatedAt":"October 24, 2017","author":{"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)"}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/random-numbers.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/random-numbers.json new file mode 100644 index 000000000..45da5a209 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/random-numbers.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"March 14, 2021","formattedUpdatedAt":"March 14, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/scaling-databases.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/scaling-databases.json new file mode 100644 index 000000000..be2081b31 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/scaling-databases.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"February 18, 2021","formattedUpdatedAt":"February 18, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/session-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/session-authentication.json new file mode 100644 index 000000000..b30c9a097 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/session-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"May 26, 2021","formattedUpdatedAt":"May 26, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ssl-tls-https-ssh.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ssl-tls-https-ssh.json new file mode 100644 index 000000000..fc9775eca --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/ssl-tls-https-ssh.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"April 22, 2021","formattedUpdatedAt":"April 22, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/sso.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/sso.json new file mode 100644 index 000000000..40fe7be33 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/sso.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"id":"sso","title":"SSO — 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","formattedCreatedAt":"July 1, 2021","formattedUpdatedAt":"July 1, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/token-authentication.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/token-authentication.json new file mode 100644 index 000000000..2b799e09e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/token-authentication.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"June 2, 2021","formattedUpdatedAt":"June 2, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/torrent-client.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/torrent-client.json new file mode 100644 index 000000000..f6339801c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/torrent-client.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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/","formattedCreatedAt":"January 17, 2021","formattedUpdatedAt":"January 17, 2021","author":{"username":"jesse","name":"Jesse Li","twitter":"__jesse_li","picture":"/authors/jesse.png","bio":"Software engineer."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/unfamiliar-codebase.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/unfamiliar-codebase.json new file mode 100644 index 000000000..adb4756b8 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/unfamiliar-codebase.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"May 4, 2021","formattedUpdatedAt":"May 4, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-are-web-vitals.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-are-web-vitals.json new file mode 100644 index 000000000..ee99bd0d9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-are-web-vitals.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"September 5, 2021","formattedUpdatedAt":"September 5, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-internet.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-internet.json new file mode 100644 index 000000000..1f5c43012 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-internet.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"March 1, 2021","formattedUpdatedAt":"March 1, 2021","author":{"username":"dmytrobol","name":"Dmytro Bolkachov","twitter":"dmytrobol","picture":"/authors/dmytrobol.png","bio":"JavaScript Lad, Movie buff and coder interested in everything web related"}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-sli-slo-sla.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-sli-slo-sla.json new file mode 100644 index 000000000..69786addf --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/what-is-sli-slo-sla.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"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","formattedCreatedAt":"August 31, 2021","formattedUpdatedAt":"August 31, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/why-build-it-and-they-will-come-wont-work-anymore.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/why-build-it-and-they-will-come-wont-work-anymore.json new file mode 100644 index 000000000..a3e5e5546 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/guides/why-build-it-and-they-will-come-wont-work-anymore.json @@ -0,0 +1 @@ +{"pageProps":{"guide":{"id":"why-build-it-and-they-will-come-wont-work-anymore","title":"Build it and they will come?","description":"Why “build it and they will come” alone won’t work anymore","isPro":false,"authorUsername":"spekulatius","updatedAt":"2021-05-04T12:59:14.191Z","createdAt":"2021-05-04T12:59:14.191Z","formattedCreatedAt":"May 4, 2021","formattedUpdatedAt":"May 4, 2021","author":{"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"}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/index.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/index.json new file mode 100644 index 000000000..50f7c8a2b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/index.json @@ -0,0 +1 @@ +{"pageProps":{"roadmaps":[{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}],"guides":[{"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","formattedCreatedAt":"September 10, 2021","formattedUpdatedAt":"September 10, 2021","author":{"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."}},{"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","formattedCreatedAt":"September 5, 2021","formattedUpdatedAt":"September 5, 2021","author":{"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."}},{"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","formattedCreatedAt":"August 31, 2021","formattedUpdatedAt":"August 31, 2021","author":{"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."}},{"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","formattedCreatedAt":"July 9, 2021","formattedUpdatedAt":"July 9, 2021","author":{"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."}},{"id":"sso","title":"SSO — 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","formattedCreatedAt":"July 1, 2021","formattedUpdatedAt":"July 1, 2021","author":{"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."}},{"id":"oauth","title":"OAuth — 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","formattedCreatedAt":"June 28, 2021","formattedUpdatedAt":"June 28, 2021","author":{"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."}},{"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","formattedCreatedAt":"June 20, 2021","formattedUpdatedAt":"June 20, 2021","author":{"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."}},{"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","formattedCreatedAt":"June 2, 2021","formattedUpdatedAt":"June 2, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 26, 2021","formattedUpdatedAt":"May 26, 2021","author":{"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."}},{"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","formattedCreatedAt":"May 19, 2021","formattedUpdatedAt":"May 19, 2021","author":{"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."}}],"videos":[{"id":"queue-data-structure","title":"Queue Data Structure","description":"Learn everything you need to know about the queue data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=mDCi1lXd9hc","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2022-02-14T19:59:14.191Z","createdAt":"2022-02-14T19:59:14.191Z","formattedCreatedAt":"February 14, 2022","formattedUpdatedAt":"February 14, 2022","author":{"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."}},{"id":"stack-data-structure","title":"Stack Data Structure","description":"Learn everything you need to know about the stack data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=I5lq6sCuABE","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2022-02-07T19:59:14.191Z","createdAt":"2022-02-07T19:59:14.191Z","formattedCreatedAt":"February 7, 2022","formattedUpdatedAt":"February 7, 2022","author":{"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."}},{"id":"linked-list-data-structure","title":"Linked List Data Structure","description":"Learn everything you need to know about linked list data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=odW9FU8jPRQ","authorUsername":"kamranahmedse","duration":"11 minutes","updatedAt":"2022-01-31T19:59:14.191Z","createdAt":"2022-01-31T19:59:14.191Z","formattedCreatedAt":"January 31, 2022","formattedUpdatedAt":"January 31, 2022","author":{"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."}},{"id":"array-structure","title":"All about Array Data Structure","description":"Learn everything you need to know about array data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=QJNwK2uJyGs","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2022-01-09T19:59:14.191Z","createdAt":"2022-01-09T19:59:14.191Z","formattedCreatedAt":"January 9, 2022","formattedUpdatedAt":"January 9, 2022","author":{"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."}},{"id":"what-are-data-structures","title":"What are Data Structures?","description":"Learn about the different data structures in this illustrated series","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=9rhT3P1MDHk","authorUsername":"kamranahmedse","duration":"1 minute","updatedAt":"2021-12-12T19:59:14.191Z","createdAt":"2021-12-12T19:59:14.191Z","formattedCreatedAt":"December 12, 2021","formattedUpdatedAt":"December 12, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 30, 2021","formattedUpdatedAt":"November 30, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 25, 2021","formattedUpdatedAt":"November 25, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 14, 2021","formattedUpdatedAt":"November 14, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 3, 2021","formattedUpdatedAt":"November 3, 2021","author":{"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."}},{"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","formattedCreatedAt":"October 25, 2021","formattedUpdatedAt":"October 25, 2021","author":{"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."}}]},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/java.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java.json new file mode 100644 index 000000000..183e98d67 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/interactive.json new file mode 100644 index 000000000..183e98d67 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/java.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/java.json new file mode 100644 index 000000000..eb3e1d58f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/java.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"},"group":"java"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/resources.json new file mode 100644 index 000000000..183e98d67 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/java/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba.json new file mode 100644 index 000000000..f4abb64f0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/interactive.json new file mode 100644 index 000000000..f4abb64f0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/postgresql-dba.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/postgresql-dba.json new file mode 100644 index 000000000..1d0aea3a9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/postgresql-dba.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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},"group":"postgresql-dba"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/resources.json new file mode 100644 index 000000000..f4abb64f0 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/postgresql-dba/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/python.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python.json new file mode 100644 index 000000000..b6f601164 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/interactive.json new file mode 100644 index 000000000..b6f601164 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/python.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/python.json new file mode 100644 index 000000000..0b381e754 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/python.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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},"group":"python"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/resources.json new file mode 100644 index 000000000..b6f601164 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/python/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa.json new file mode 100644 index 000000000..371340b60 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/interactive.json new file mode 100644 index 000000000..371340b60 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/qa.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/qa.json new file mode 100644 index 000000000..46ed59134 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/qa.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"},"group":"qa"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/resources.json new file mode 100644 index 000000000..371340b60 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/qa/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/react.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react.json new file mode 100644 index 000000000..9dcbdd912 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/interactive.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/interactive.json new file mode 100644 index 000000000..9dcbdd912 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/interactive.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/react.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/react.json new file mode 100644 index 000000000..0f0d2e309 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/react.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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},"group":"react"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/resources.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/resources.json new file mode 100644 index 000000000..9dcbdd912 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/react/resources.json @@ -0,0 +1 @@ +{"pageProps":{"roadmap":{"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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/roadmaps.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/roadmaps.json new file mode 100644 index 000000000..475c710f5 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/roadmaps.json @@ -0,0 +1 @@ +{"pageProps":{"roadmaps":[{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}]},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch.json new file mode 100644 index 000000000..f081dd98a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch.json @@ -0,0 +1 @@ +{"pageProps":{"videos":[{"id":"queue-data-structure","title":"Queue Data Structure","description":"Learn everything you need to know about the queue data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=mDCi1lXd9hc","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2022-02-14T19:59:14.191Z","createdAt":"2022-02-14T19:59:14.191Z","formattedCreatedAt":"February 14, 2022","formattedUpdatedAt":"February 14, 2022","author":{"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."}},{"id":"stack-data-structure","title":"Stack Data Structure","description":"Learn everything you need to know about the stack data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=I5lq6sCuABE","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2022-02-07T19:59:14.191Z","createdAt":"2022-02-07T19:59:14.191Z","formattedCreatedAt":"February 7, 2022","formattedUpdatedAt":"February 7, 2022","author":{"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."}},{"id":"linked-list-data-structure","title":"Linked List Data Structure","description":"Learn everything you need to know about linked list data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=odW9FU8jPRQ","authorUsername":"kamranahmedse","duration":"11 minutes","updatedAt":"2022-01-31T19:59:14.191Z","createdAt":"2022-01-31T19:59:14.191Z","formattedCreatedAt":"January 31, 2022","formattedUpdatedAt":"January 31, 2022","author":{"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."}},{"id":"array-structure","title":"All about Array Data Structure","description":"Learn everything you need to know about array data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=QJNwK2uJyGs","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2022-01-09T19:59:14.191Z","createdAt":"2022-01-09T19:59:14.191Z","formattedCreatedAt":"January 9, 2022","formattedUpdatedAt":"January 9, 2022","author":{"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."}},{"id":"what-are-data-structures","title":"What are Data Structures?","description":"Learn about the different data structures in this illustrated series","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=9rhT3P1MDHk","authorUsername":"kamranahmedse","duration":"1 minute","updatedAt":"2021-12-12T19:59:14.191Z","createdAt":"2021-12-12T19:59:14.191Z","formattedCreatedAt":"December 12, 2021","formattedUpdatedAt":"December 12, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 30, 2021","formattedUpdatedAt":"November 30, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 25, 2021","formattedUpdatedAt":"November 25, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 14, 2021","formattedUpdatedAt":"November 14, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 3, 2021","formattedUpdatedAt":"November 3, 2021","author":{"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."}},{"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","formattedCreatedAt":"October 25, 2021","formattedUpdatedAt":"October 25, 2021","author":{"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."}},{"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","formattedCreatedAt":"October 18, 2021","formattedUpdatedAt":"October 18, 2021","author":{"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."}},{"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","formattedCreatedAt":"October 10, 2021","formattedUpdatedAt":"October 10, 2021","author":{"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."}},{"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","formattedCreatedAt":"October 5, 2021","formattedUpdatedAt":"October 5, 2021","author":{"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."}},{"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","formattedCreatedAt":"September 26, 2021","formattedUpdatedAt":"September 26, 2021","author":{"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."}},{"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","formattedCreatedAt":"November 21, 2020","formattedUpdatedAt":"November 21, 2020","author":{"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."}},{"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","formattedCreatedAt":"November 6, 2020","formattedUpdatedAt":"November 6, 2020","author":{"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."}},{"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","formattedCreatedAt":"October 24, 2020","formattedUpdatedAt":"October 24, 2020","author":{"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."}},{"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","formattedCreatedAt":"October 16, 2020","formattedUpdatedAt":"October 16, 2020","author":{"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."}},{"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","formattedCreatedAt":"October 4, 2020","formattedUpdatedAt":"October 4, 2020","author":{"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."}},{"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","formattedCreatedAt":"September 26, 2020","formattedUpdatedAt":"September 26, 2020","author":{"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."}},{"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","formattedCreatedAt":"September 18, 2020","formattedUpdatedAt":"September 18, 2020","author":{"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."}},{"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","formattedCreatedAt":"August 31, 2020","formattedUpdatedAt":"August 31, 2020","author":{"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."}},{"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","formattedCreatedAt":"August 17, 2020","formattedUpdatedAt":"August 17, 2020","author":{"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."}},{"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","formattedCreatedAt":"August 8, 2020","formattedUpdatedAt":"August 8, 2020","author":{"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."}},{"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","formattedCreatedAt":"August 2, 2020","formattedUpdatedAt":"August 2, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 26, 2020","formattedUpdatedAt":"July 26, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 20, 2020","formattedUpdatedAt":"July 20, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 20, 2020","formattedUpdatedAt":"July 20, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 13, 2020","formattedUpdatedAt":"July 13, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 9, 2020","formattedUpdatedAt":"July 9, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 4, 2020","formattedUpdatedAt":"July 4, 2020","author":{"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."}},{"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","formattedCreatedAt":"July 3, 2020","formattedUpdatedAt":"July 3, 2020","author":{"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."}},{"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","formattedCreatedAt":"May 9, 2020","formattedUpdatedAt":"May 9, 2020","author":{"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."}}]},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/acid-explained.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/acid-explained.json new file mode 100644 index 000000000..d4f1c2bc9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/acid-explained.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"September 26, 2021","formattedUpdatedAt":"September 26, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/all-about-http-caching.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/all-about-http-caching.json new file mode 100644 index 000000000..8e2725cf9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/all-about-http-caching.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 4, 2020","formattedUpdatedAt":"October 4, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/array-structure.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/array-structure.json new file mode 100644 index 000000000..c848dcece --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/array-structure.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"id":"array-structure","title":"All about Array Data Structure","description":"Learn everything you need to know about array data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=QJNwK2uJyGs","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2022-01-09T19:59:14.191Z","createdAt":"2022-01-09T19:59:14.191Z","formattedCreatedAt":"January 9, 2022","formattedUpdatedAt":"January 9, 2022","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/arrays-and-objects-in-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/arrays-and-objects-in-javascript.json new file mode 100644 index 000000000..027bea57c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/arrays-and-objects-in-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"May 9, 2020","formattedUpdatedAt":"May 9, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/async-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/async-javascript.json new file mode 100644 index 000000000..3485c59ab --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/async-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 14, 2021","formattedUpdatedAt":"November 14, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/big-o-notation.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/big-o-notation.json new file mode 100644 index 000000000..4cbd0648c --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/big-o-notation.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 25, 2021","formattedUpdatedAt":"October 25, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/content-delivery-networks.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/content-delivery-networks.json new file mode 100644 index 000000000..734582505 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/content-delivery-networks.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"September 26, 2020","formattedUpdatedAt":"September 26, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-explained.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-explained.json new file mode 100644 index 000000000..c07f37a5a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-explained.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"August 17, 2020","formattedUpdatedAt":"August 17, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-records.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-records.json new file mode 100644 index 000000000..cd921b0b4 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/dns-records.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"August 31, 2020","formattedUpdatedAt":"August 31, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/floating-point-arithmetic.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/floating-point-arithmetic.json new file mode 100644 index 000000000..7aa012deb --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/floating-point-arithmetic.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 10, 2021","formattedUpdatedAt":"October 10, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/freeze-and-seal-objects-in-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/freeze-and-seal-objects-in-javascript.json new file mode 100644 index 000000000..7e950ae2a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/freeze-and-seal-objects-in-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 16, 2020","formattedUpdatedAt":"October 16, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-css-variables.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-css-variables.json new file mode 100644 index 000000000..eabd9ecb1 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-css-variables.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 3, 2020","formattedUpdatedAt":"July 3, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-github-actions.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-github-actions.json new file mode 100644 index 000000000..e2d4cad9f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/how-to-use-github-actions.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 13, 2020","formattedUpdatedAt":"July 13, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/javascript-fetch-api.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/javascript-fetch-api.json new file mode 100644 index 000000000..1e8a7dbed --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/javascript-fetch-api.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"August 2, 2020","formattedUpdatedAt":"August 2, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/linked-list-data-structure.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/linked-list-data-structure.json new file mode 100644 index 000000000..4fd302d93 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/linked-list-data-structure.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"id":"linked-list-data-structure","title":"Linked List Data Structure","description":"Learn everything you need to know about linked list data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=odW9FU8jPRQ","authorUsername":"kamranahmedse","duration":"11 minutes","updatedAt":"2022-01-31T19:59:14.191Z","createdAt":"2022-01-31T19:59:14.191Z","formattedCreatedAt":"January 31, 2022","formattedUpdatedAt":"January 31, 2022","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/load-balancers-101.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/load-balancers-101.json new file mode 100644 index 000000000..b11183601 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/load-balancers-101.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"September 18, 2020","formattedUpdatedAt":"September 18, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/osi-model.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/osi-model.json new file mode 100644 index 000000000..fcd860acd --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/osi-model.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 24, 2020","formattedUpdatedAt":"October 24, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/practical-intro-to-react.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/practical-intro-to-react.json new file mode 100644 index 000000000..018b26b9e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/practical-intro-to-react.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 9, 2020","formattedUpdatedAt":"July 9, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/promises-in-javascript.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/promises-in-javascript.json new file mode 100644 index 000000000..4bf201040 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/promises-in-javascript.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 20, 2020","formattedUpdatedAt":"July 20, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/queue-data-structure.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/queue-data-structure.json new file mode 100644 index 000000000..71ce6521e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/queue-data-structure.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"id":"queue-data-structure","title":"Queue Data Structure","description":"Learn everything you need to know about the queue data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=mDCi1lXd9hc","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2022-02-14T19:59:14.191Z","createdAt":"2022-02-14T19:59:14.191Z","formattedCreatedAt":"February 14, 2022","formattedUpdatedAt":"February 14, 2022","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/random-number-generators.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/random-number-generators.json new file mode 100644 index 000000000..1689cc6c2 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/random-number-generators.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 3, 2021","formattedUpdatedAt":"November 3, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/scaling-the-unscalable.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/scaling-the-unscalable.json new file mode 100644 index 000000000..dfce4ed6b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/scaling-the-unscalable.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 26, 2020","formattedUpdatedAt":"July 26, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/ssh-ssl-tls.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/ssh-ssl-tls.json new file mode 100644 index 000000000..dba08e8c7 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/ssh-ssl-tls.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 25, 2021","formattedUpdatedAt":"November 25, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/stack-data-structure.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/stack-data-structure.json new file mode 100644 index 000000000..0432bf40b --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/stack-data-structure.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"id":"stack-data-structure","title":"Stack Data Structure","description":"Learn everything you need to know about the stack data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=I5lq6sCuABE","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2022-02-07T19:59:14.191Z","createdAt":"2022-02-07T19:59:14.191Z","formattedCreatedAt":"February 7, 2022","formattedUpdatedAt":"February 7, 2022","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/system-design-101.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/system-design-101.json new file mode 100644 index 000000000..190b8780d --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/system-design-101.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"August 8, 2020","formattedUpdatedAt":"August 8, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/tcp-ip-model.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/tcp-ip-model.json new file mode 100644 index 000000000..4b84bd248 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/tcp-ip-model.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 6, 2020","formattedUpdatedAt":"November 6, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/transport-protocols-tcp-vs-udp.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/transport-protocols-tcp-vs-udp.json new file mode 100644 index 000000000..443731e4e --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/transport-protocols-tcp-vs-udp.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 21, 2020","formattedUpdatedAt":"November 21, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-are-data-structures.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-are-data-structures.json new file mode 100644 index 000000000..75dbcdfb9 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-are-data-structures.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"id":"what-are-data-structures","title":"What are Data Structures?","description":"Learn about the different data structures in this illustrated series","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=9rhT3P1MDHk","authorUsername":"kamranahmedse","duration":"1 minute","updatedAt":"2021-12-12T19:59:14.191Z","createdAt":"2021-12-12T19:59:14.191Z","formattedCreatedAt":"December 12, 2021","formattedUpdatedAt":"December 12, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-cap-theorem.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-cap-theorem.json new file mode 100644 index 000000000..92dcd1b6a --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-cap-theorem.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 5, 2021","formattedUpdatedAt":"October 5, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dependency-injection.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dependency-injection.json new file mode 100644 index 000000000..2be365028 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dependency-injection.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 4, 2020","formattedUpdatedAt":"July 4, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dom-shadow-dom-virtual-dom.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dom-shadow-dom-virtual-dom.json new file mode 100644 index 000000000..79cd3874f --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-dom-shadow-dom-virtual-dom.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"July 20, 2020","formattedUpdatedAt":"July 20, 2020","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-eventual-consistency.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-eventual-consistency.json new file mode 100644 index 000000000..faaa5f1ee --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/what-is-eventual-consistency.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"November 30, 2021","formattedUpdatedAt":"November 30, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/yaml-in-depth.json b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/yaml-in-depth.json new file mode 100644 index 000000000..92f086a42 --- /dev/null +++ b/_next/data/fHNf-HIzSmsHQKUBDdHfU/watch/yaml-in-depth.json @@ -0,0 +1 @@ +{"pageProps":{"video":{"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","formattedCreatedAt":"October 18, 2021","formattedUpdatedAt":"October 18, 2021","author":{"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."}}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/static/EFrUpveU2FwZFMY71nRho/_buildManifest.js b/_next/static/EFrUpveU2FwZFMY71nRho/_buildManifest.js deleted file mode 100644 index 6dbd54c8d..000000000 --- a/_next/static/EFrUpveU2FwZFMY71nRho/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST=function(s,a,c,e,t,i,d,u,r,p){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,u,a,"static/chunks/pages/index-675e25be654b64d6.js"],"/_error":["static/chunks/pages/_error-a3f18418a2205cb8.js"],"/about":[s,c,a,"static/chunks/pages/about-623b47eba9954a4d.js"],"/guides":[s,a,"static/chunks/pages/guides-54d9ecaa2b4a7a03.js"],"/guides/[guide]":[s,c,a,e,"static/chunks/pages/guides/[guide]-1de76af8759092a5.js"],"/privacy":[s,c,a,"static/chunks/pages/privacy-c0ba7386ab554061.js"],"/roadmaps":[s,u,a,"static/chunks/pages/roadmaps-6df0423317f329e4.js"],"/signup":[s,"static/chunks/18-f1cca63db2f6fdde.js",a,"static/chunks/pages/signup-23b39d08caba243b.js"],"/terms":[s,c,a,t,"static/chunks/pages/terms-a9755e4816f2d575.js"],"/thanks":[s,a,"static/chunks/pages/thanks-e8549488828c469c.js"],"/watch":[s,a,"static/chunks/pages/watch-c2fbdfcde4d79a92.js"],"/watch/[video]":[s,c,a,i,"static/chunks/pages/watch/[video]-943ed5fcaf72d0bf.js"],"/[roadmap]":[s,c,r,a,e,i,t,d,p,"static/chunks/pages/[roadmap]-ac6e875cba90c106.js"],"/[roadmap]/interactive":[s,c,r,a,e,i,t,d,p,"static/chunks/pages/[roadmap]/interactive-d208ea1b52c48a31.js"],"/[roadmap]/resources":[s,c,a,e,i,t,d,"static/chunks/pages/[roadmap]/resources-17dfdfdb3794b758.js"],"/[roadmap]/[group]":[s,c,a,e,i,t,d,"static/chunks/pages/[roadmap]/[group]-677b22076f4fca23.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-f2ef73bf59f135ea.js","static/chunks/515-ff9433ec58b1ff02.js","static/chunks/22-14757297dd54265a.js","static/chunks/564-45d4208eb9e1bece.js","static/chunks/547-e77cdbe9dac50250.js","static/chunks/366-ef3f1077adc9d727.js","static/chunks/280-b46493f2a88f5f68.js","static/chunks/919-59daa32154b35047.js","static/chunks/26-eac7646c5923a8cb.js","static/chunks/714-cfca685af6f03f83.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/EFrUpveU2FwZFMY71nRho/_middlewareManifest.js b/_next/static/EFrUpveU2FwZFMY71nRho/_middlewareManifest.js deleted file mode 100644 index 706a002a3..000000000 --- a/_next/static/EFrUpveU2FwZFMY71nRho/_middlewareManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__MIDDLEWARE_MANIFEST=[],self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/EFrUpveU2FwZFMY71nRho/_ssgManifest.js b/_next/static/EFrUpveU2FwZFMY71nRho/_ssgManifest.js deleted file mode 100644 index 0511aa895..000000000 --- a/_next/static/EFrUpveU2FwZFMY71nRho/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set,self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/chunks/280-6ddfb0290d2caf59.js b/_next/static/chunks/280-6ddfb0290d2caf59.js new file mode 100644 index 000000000..2f72eca73 --- /dev/null +++ b/_next/static/chunks/280-6ddfb0290d2caf59.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[280],{79280:function(e,t,n){var r={"./authors":58712,"./authors.json":58712,"./guides":19552,"./guides.json":19552,"./guides/asymptotic-notation.md":43070,"./guides/avoid-render-blocking-javascript-with-async-defer.md":58829,"./guides/basic-authentication.md":15151,"./guides/big-o-notation.md":55198,"./guides/character-encodings.md":33180,"./guides/ci-cd.md":77354,"./guides/design-patterns-for-humans.md":13406,"./guides/dhcp-in-one-picture.md":33784,"./guides/dns-in-one-picture.md":9937,"./guides/history-of-javascript.md":98003,"./guides/http-caching.md":69128,"./guides/journey-to-http2.md":43045,"./guides/jwt-authentication.md":25772,"./guides/levels-of-seniority.md":33878,"./guides/oauth.md":90801,"./guides/project-history.md":46681,"./guides/proxy-servers.md":37035,"./guides/random-numbers.md":513,"./guides/scaling-databases.md":87507,"./guides/session-authentication.md":18676,"./guides/ssl-tls-https-ssh.md":86053,"./guides/sso.md":9809,"./guides/token-authentication.md":85607,"./guides/torrent-client.md":53406,"./guides/unfamiliar-codebase.md":15941,"./guides/upcoming.md":85104,"./guides/what-are-web-vitals.md":93442,"./guides/what-is-internet.md":1470,"./guides/what-is-sli-slo-sla.md":71307,"./guides/why-build-it-and-they-will-come-wont-work-anymore.md":19554,"./pages/about.md":74160,"./pages/privacy.md":25591,"./pages/terms.md":32547,"./roadmaps":1662,"./roadmaps.json":1662,"./roadmaps/100-frontend/content-paths":18359,"./roadmaps/100-frontend/content-paths.json":18359,"./roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md":65606,"./roadmaps/100-frontend/content/100-internet/101-what-is-http.md":40181,"./roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md":66152,"./roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md":13405,"./roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md":2222,"./roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md":48129,"./roadmaps/100-frontend/content/100-internet/readme.md":62633,"./roadmaps/100-frontend/content/101-html/100-learn-the-basics.md":17828,"./roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md":90258,"./roadmaps/100-frontend/content/101-html/102-forms-and-validations.md":40757,"./roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md":31881,"./roadmaps/100-frontend/content/101-html/104-accessibility.md":23699,"./roadmaps/100-frontend/content/101-html/105-seo-basics.md":20584,"./roadmaps/100-frontend/content/101-html/readme.md":33913,"./roadmaps/100-frontend/content/102-css/100-learn-the-basics.md":88533,"./roadmaps/100-frontend/content/102-css/101-making-layouts.md":13780,"./roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md":41118,"./roadmaps/100-frontend/content/102-css/readme.md":35211,"./roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md":30617,"./roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md":51569,"./roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md":74746,"./roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md":66401,"./roadmaps/100-frontend/content/103-javascript/104-concepts.md":82698,"./roadmaps/100-frontend/content/103-javascript/readme.md":8613,"./roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md":42555,"./roadmaps/100-frontend/content/104-version-control-systems/readme.md":8405,"./roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md":58548,"./roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md":41952,"./roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md":56145,"./roadmaps/100-frontend/content/105-repo-hosting-services/readme.md":40493,"./roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md":62510,"./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":38705,"./roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md":98633,"./roadmaps/100-frontend/content/106-web-security-knowledge/readme.md":49012,"./roadmaps/100-frontend/content/107-package-managers/100-npm.md":61415,"./roadmaps/100-frontend/content/107-package-managers/101-yarn.md":16356,"./roadmaps/100-frontend/content/107-package-managers/readme.md":88988,"./roadmaps/100-frontend/content/108-css-architecture/100-bem.md":86665,"./roadmaps/100-frontend/content/108-css-architecture/101-oocss.md":21750,"./roadmaps/100-frontend/content/108-css-architecture/102-smacss.md":58887,"./roadmaps/100-frontend/content/108-css-architecture/readme.md":45220,"./roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md":84447,"./roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md":85106,"./roadmaps/100-frontend/content/109-css-preprocessors/102-less.md":22972,"./roadmaps/100-frontend/content/109-css-preprocessors/readme.md":68365,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md":86523,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md":88664,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md":86795,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md":19500,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md":5104,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md":25648,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md":20762,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md":76459,"./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":62816,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md":74453,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md":82310,"./roadmaps/100-frontend/content/110-build-tools/readme.md":37093,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md":57139,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md":25783,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md":57810,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md":96199,"./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":13162,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md":23666,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md":80549,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md":85277,"./roadmaps/100-frontend/content/111-pick-a-framework/readme.md":91473,"./roadmaps/100-frontend/content/112-modern-css/100-styled-components.md":73745,"./roadmaps/100-frontend/content/112-modern-css/101-css-modules.md":51720,"./roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md":24349,"./roadmaps/100-frontend/content/112-modern-css/103-emotion.md":14291,"./roadmaps/100-frontend/content/112-modern-css/readme.md":59904,"./roadmaps/100-frontend/content/113-web-components/100-html-templates.md":41484,"./roadmaps/100-frontend/content/113-web-components/101-custom-elements.md":16625,"./roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md":32901,"./roadmaps/100-frontend/content/113-web-components/readme.md":58933,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md":94642,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md":14505,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md":94740,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md":21160,"./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":99120,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md":13694,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md":17562,"./roadmaps/100-frontend/content/114-css-frameworks/readme.md":21879,"./roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md":25996,"./roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md":42772,"./roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md":73431,"./roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md":44375,"./roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md":64946,"./roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md":69011,"./roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md":95136,"./roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md":30327,"./roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md":68976,"./roadmaps/100-frontend/content/115-testing-your-apps/readme.md":25770,"./roadmaps/100-frontend/content/116-type-checkers/100-typescript.md":83227,"./roadmaps/100-frontend/content/116-type-checkers/101-flow.md":79935,"./roadmaps/100-frontend/content/116-type-checkers/readme.md":98323,"./roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md":54990,"./roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md":95089,"./roadmaps/100-frontend/content/117-progressive-web-apps/readme.md":72768,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md":99086,"./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":88747,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md":67815,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md":26394,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md":62573,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md":35137,"./roadmaps/100-frontend/content/118-server-side-rendering/readme.md":71905,"./roadmaps/100-frontend/content/119-graphql/100-apollo.md":60410,"./roadmaps/100-frontend/content/119-graphql/101-relay-modern.md":60485,"./roadmaps/100-frontend/content/119-graphql/readme.md":24133,"./roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md":57935,"./roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md":1291,"./roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md":20855,"./roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md":32374,"./roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md":51898,"./roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md":90355,"./roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md":82578,"./roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md":80476,"./roadmaps/100-frontend/content/120-static-site-generators/readme.md":35470,"./roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md":52919,"./roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md":15760,"./roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md":59268,"./roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md":17280,"./roadmaps/100-frontend/content/121-mobile-applications/readme.md":20388,"./roadmaps/100-frontend/content/122-desktop-applications/100-electron.md":37137,"./roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md":30373,"./roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md":55588,"./roadmaps/100-frontend/content/122-desktop-applications/readme.md":78773,"./roadmaps/100-frontend/content/123-web-assembly.md":9429,"./roadmaps/100-frontend/content/readme.md":17086,"./roadmaps/100-frontend/meta":39258,"./roadmaps/100-frontend/meta.json":39258,"./roadmaps/100-frontend/resources.md":47083,"./roadmaps/101-backend/content-paths":33309,"./roadmaps/101-backend/content-paths.json":33309,"./roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md":31921,"./roadmaps/101-backend/content/100-internet/101-what-is-http.md":24765,"./roadmaps/101-backend/content/100-internet/102-browsers-and-how-they-work.md":98817,"./roadmaps/101-backend/content/100-internet/103-dns-and-how-it-works.md":60450,"./roadmaps/101-backend/content/100-internet/104-what-is-domain-name.md":98402,"./roadmaps/101-backend/content/100-internet/105-what-is-hosting.md":52573,"./roadmaps/101-backend/content/100-internet/readme.md":91812,"./roadmaps/101-backend/content/101-basic-frontend/100-html.md":56363,"./roadmaps/101-backend/content/101-basic-frontend/101-css.md":91440,"./roadmaps/101-backend/content/101-basic-frontend/102-javascript.md":65898,"./roadmaps/101-backend/content/101-basic-frontend/readme.md":80760,"./roadmaps/101-backend/content/102-os-general-knowledge/100-terminal-usage.md":43869,"./roadmaps/101-backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md":55739,"./roadmaps/101-backend/content/102-os-general-knowledge/102-process-management.md":25210,"./roadmaps/101-backend/content/102-os-general-knowledge/103-threads-and-concurrency.md":73693,"./roadmaps/101-backend/content/102-os-general-knowledge/104-basic-terminal-commands.md":72175,"./roadmaps/101-backend/content/102-os-general-knowledge/105-memory-management.md":62300,"./roadmaps/101-backend/content/102-os-general-knowledge/106-interprocess-communication.md":94668,"./roadmaps/101-backend/content/102-os-general-knowledge/107-io-management.md":86789,"./roadmaps/101-backend/content/102-os-general-knowledge/108-posix-basics.md":39736,"./roadmaps/101-backend/content/102-os-general-knowledge/109-basic-networking-concepts.md":47142,"./roadmaps/101-backend/content/102-os-general-knowledge/readme.md":98419,"./roadmaps/101-backend/content/103-learn-a-language/100-go.md":75063,"./roadmaps/101-backend/content/103-learn-a-language/101-rust.md":4332,"./roadmaps/101-backend/content/103-learn-a-language/102-java.md":76017,"./roadmaps/101-backend/content/103-learn-a-language/103-csharp.md":99855,"./roadmaps/101-backend/content/103-learn-a-language/103-php.md":80110,"./roadmaps/101-backend/content/103-learn-a-language/105-javascript.md":30174,"./roadmaps/101-backend/content/103-learn-a-language/106-python.md":82331,"./roadmaps/101-backend/content/103-learn-a-language/107-ruby.md":4236,"./roadmaps/101-backend/content/103-learn-a-language/readme.md":22533,"./roadmaps/101-backend/content/104-version-control-systems/100-basic-usage-of-git.md":63163,"./roadmaps/101-backend/content/104-version-control-systems/readme.md":32223,"./roadmaps/101-backend/content/105-repo-hosting-services/100-github.md":66926,"./roadmaps/101-backend/content/105-repo-hosting-services/101-gitlab.md":11425,"./roadmaps/101-backend/content/105-repo-hosting-services/102-bitbucket.md":94448,"./roadmaps/101-backend/content/105-repo-hosting-services/readme.md":1973,"./roadmaps/101-backend/content/106-relational-databases/100-postgresql.md":29982,"./roadmaps/101-backend/content/106-relational-databases/101-mysql.md":16468,"./roadmaps/101-backend/content/106-relational-databases/102-mariadb.md":40795,"./roadmaps/101-backend/content/106-relational-databases/103-mssql.md":1485,"./roadmaps/101-backend/content/106-relational-databases/104-oracle.md":54528,"./roadmaps/101-backend/content/106-relational-databases/readme.md":59539,"./roadmaps/101-backend/content/107-nosql-databases/100-document-databases.md":16090,"./roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md":58036,"./roadmaps/101-backend/content/107-nosql-databases/102-timeseries-databases.md":29569,"./roadmaps/101-backend/content/107-nosql-databases/103-realtime-databases.md":55005,"./roadmaps/101-backend/content/107-nosql-databases/readme.md":68633,"./roadmaps/101-backend/content/108-more-about-databases/100-orms.md":11223,"./roadmaps/101-backend/content/108-more-about-databases/101-acid.md":98963,"./roadmaps/101-backend/content/108-more-about-databases/102-transactions.md":73696,"./roadmaps/101-backend/content/108-more-about-databases/103-n-plus-one-problem.md":13381,"./roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md":70052,"./roadmaps/101-backend/content/108-more-about-databases/105-database-indexes.md":20290,"./roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md":89952,"./roadmaps/101-backend/content/108-more-about-databases/107-sharding-strategies.md":70188,"./roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md":17250,"./roadmaps/101-backend/content/108-more-about-databases/readme.md":30506,"./roadmaps/101-backend/content/109-apis/100-rest.md":64361,"./roadmaps/101-backend/content/109-apis/101-json-apis.md":48567,"./roadmaps/101-backend/content/109-apis/102-soap.md":6277,"./roadmaps/101-backend/content/109-apis/103-grpc.md":35896,"./roadmaps/101-backend/content/109-apis/104-hateoas.md":81995,"./roadmaps/101-backend/content/109-apis/105-open-api-spec.md":51690,"./roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md":28558,"./roadmaps/101-backend/content/109-apis/106-authentication/101-oauth.md":39693,"./roadmaps/101-backend/content/109-apis/106-authentication/102-basic-authentication.md":86863,"./roadmaps/101-backend/content/109-apis/106-authentication/103-token-authentication.md":88862,"./roadmaps/101-backend/content/109-apis/106-authentication/104-jwt.md":35747,"./roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md":41796,"./roadmaps/101-backend/content/109-apis/106-authentication/105-saml.md":52037,"./roadmaps/101-backend/content/109-apis/106-authentication/readme.md":16633,"./roadmaps/101-backend/content/109-apis/readme.md":32790,"./roadmaps/101-backend/content/110-caching/100-cdn.md":8806,"./roadmaps/101-backend/content/110-caching/101-server-side/100-redis.md":69103,"./roadmaps/101-backend/content/110-caching/101-server-side/101-memcached.md":42024,"./roadmaps/101-backend/content/110-caching/101-server-side/readme.md":86326,"./roadmaps/101-backend/content/110-caching/102-client-side.md":2954,"./roadmaps/101-backend/content/110-caching/readme.md":66019,"./roadmaps/101-backend/content/111-web-security-knowledge/100-md5.md":49549,"./roadmaps/101-backend/content/111-web-security-knowledge/101-sha-family.md":78772,"./roadmaps/101-backend/content/111-web-security-knowledge/102-bcrypt.md":54134,"./roadmaps/101-backend/content/111-web-security-knowledge/104-scrypt.md":26896,"./roadmaps/101-backend/content/111-web-security-knowledge/105-content-security-policy.md":99182,"./roadmaps/101-backend/content/111-web-security-knowledge/105-https.md":5233,"./roadmaps/101-backend/content/111-web-security-knowledge/106-cors.md":7768,"./roadmaps/101-backend/content/111-web-security-knowledge/107-ssl-tls.md":38453,"./roadmaps/101-backend/content/111-web-security-knowledge/108-owasp.md":2598,"./roadmaps/101-backend/content/111-web-security-knowledge/readme.md":12824,"./roadmaps/101-backend/content/112-testing/100-integration-testing.md":85729,"./roadmaps/101-backend/content/112-testing/101-unit-testing.md":53763,"./roadmaps/101-backend/content/112-testing/102-functional-testing.md":78764,"./roadmaps/101-backend/content/112-testing/readme.md":10584,"./roadmaps/101-backend/content/113-ci-cd.md":82019,"./roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md":65392,"./roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md":1024,"./roadmaps/101-backend/content/114-design-and-development-principles/102-test-driven-development.md":18712,"./roadmaps/101-backend/content/114-design-and-development-principles/103-solid.md":32506,"./roadmaps/101-backend/content/114-design-and-development-principles/104-kiss.md":35992,"./roadmaps/101-backend/content/114-design-and-development-principles/105-yagni.md":45279,"./roadmaps/101-backend/content/114-design-and-development-principles/106-dry.md":19444,"./roadmaps/101-backend/content/114-design-and-development-principles/readme.md":6828,"./roadmaps/101-backend/content/115-architectural-patterns/100-monolithic-apps.md":90413,"./roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md":59107,"./roadmaps/101-backend/content/115-architectural-patterns/102-soa.md":28227,"./roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md":28760,"./roadmaps/101-backend/content/115-architectural-patterns/104-serverless.md":96026,"./roadmaps/101-backend/content/115-architectural-patterns/readme.md":2938,"./roadmaps/101-backend/content/116-search-engines/100-elasticsearch.md":85569,"./roadmaps/101-backend/content/116-search-engines/101-solr.md":7328,"./roadmaps/101-backend/content/116-search-engines/readme.md":79359,"./roadmaps/101-backend/content/117-message-brokers/100-rabbitmq.md":93093,"./roadmaps/101-backend/content/117-message-brokers/101-kafka.md":44196,"./roadmaps/101-backend/content/117-message-brokers/readme.md":91265,"./roadmaps/101-backend/content/118-containerization/100-docker.md":53797,"./roadmaps/101-backend/content/118-containerization/101-rkt.md":82153,"./roadmaps/101-backend/content/118-containerization/102-lxc.md":12998,"./roadmaps/101-backend/content/118-containerization/readme.md":57485,"./roadmaps/101-backend/content/119-graphql/100-apollo.md":5373,"./roadmaps/101-backend/content/119-graphql/101-relay-modern.md":79033,"./roadmaps/101-backend/content/119-graphql/readme.md":33620,"./roadmaps/101-backend/content/120-graph-databases/100-neo4j.md":47898,"./roadmaps/101-backend/content/120-graph-databases/readme.md":78826,"./roadmaps/101-backend/content/121-web-sockets.md":6084,"./roadmaps/101-backend/content/122-web-servers/100-nginx.md":34821,"./roadmaps/101-backend/content/122-web-servers/101-apache.md":55293,"./roadmaps/101-backend/content/122-web-servers/102-caddy.md":28549,"./roadmaps/101-backend/content/122-web-servers/103-ms-iis.md":297,"./roadmaps/101-backend/content/122-web-servers/readme.md":94521,"./roadmaps/101-backend/content/123-scalability/100-mitigation-strategies.md":78878,"./roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md":52928,"./roadmaps/101-backend/content/123-scalability/102-migration-strategies.md":50760,"./roadmaps/101-backend/content/123-scalability/103-horizontal-vertial-scaling.md":80576,"./roadmaps/101-backend/content/123-scalability/104-observability.md":54572,"./roadmaps/101-backend/content/123-scalability/readme.md":99222,"./roadmaps/101-backend/content/readme.md":51403,"./roadmaps/101-backend/meta":76782,"./roadmaps/101-backend/meta.json":76782,"./roadmaps/101-backend/resources.md":78093,"./roadmaps/102-devops/meta":54017,"./roadmaps/102-devops/meta.json":54017,"./roadmaps/102-devops/resources.md":65332,"./roadmaps/103-react/landscape.md":34558,"./roadmaps/103-react/meta":88477,"./roadmaps/103-react/meta.json":88477,"./roadmaps/103-react/resources.md":20063,"./roadmaps/104-angular/landscape.md":595,"./roadmaps/104-angular/meta":8834,"./roadmaps/104-angular/meta.json":8834,"./roadmaps/104-angular/resources.md":67489,"./roadmaps/105-android/landscape.md":65191,"./roadmaps/105-android/meta":19508,"./roadmaps/105-android/meta.json":19508,"./roadmaps/105-android/resources.md":97890,"./roadmaps/106-python/landscape.md":69556,"./roadmaps/106-python/meta":34099,"./roadmaps/106-python/meta.json":34099,"./roadmaps/106-python/resources.md":8481,"./roadmaps/107-golang/landscape.md":62388,"./roadmaps/107-golang/meta":82737,"./roadmaps/107-golang/meta.json":82737,"./roadmaps/107-golang/resources.md":79101,"./roadmaps/108-java/landscape.md":57913,"./roadmaps/108-java/meta":62507,"./roadmaps/108-java/meta.json":62507,"./roadmaps/108-java/resources.md":79673,"./roadmaps/109-postgresql-dba/landscape.md":51464,"./roadmaps/109-postgresql-dba/meta":88951,"./roadmaps/109-postgresql-dba/meta.json":88951,"./roadmaps/109-postgresql-dba/resources.md":1545,"./roadmaps/110-aws/landscape.md":48188,"./roadmaps/110-aws/meta":67559,"./roadmaps/110-aws/meta.json":67559,"./roadmaps/110-aws/resources.md":91048,"./roadmaps/111-qa/landscape.md":44894,"./roadmaps/111-qa/meta":83204,"./roadmaps/111-qa/meta.json":83204,"./roadmaps/111-qa/resources.md":49598,"./site":28641,"./site.json":28641,"./videos":91797,"./videos.json":91797,"./videos/acid-explained.md":98974,"./videos/all-about-http-caching.md":73730,"./videos/array-structure.md":71232,"./videos/arrays-and-objects-in-javascript.md":77589,"./videos/async-javascript.md":38001,"./videos/big-o-notation.md":6736,"./videos/content-delivery-networks.md":45489,"./videos/dns-explained.md":79029,"./videos/dns-records.md":74046,"./videos/floating-point-arithmetic.md":27327,"./videos/freeze-and-seal-objects-in-javascript.md":66527,"./videos/how-to-use-css-variables.md":85512,"./videos/how-to-use-github-actions.md":48688,"./videos/javascript-fetch-api.md":4474,"./videos/linked-list-data-structure.md":36955,"./videos/load-balancers-101.md":2012,"./videos/osi-model.md":85495,"./videos/practical-intro-to-react.md":24913,"./videos/promises-in-javascript.md":77e3,"./videos/queue-data-structure.md":29495,"./videos/random-number-generators.md":61516,"./videos/scaling-the-unscalable.md":37850,"./videos/ssh-ssl-tls.md":39345,"./videos/stack-data-structure.md":56851,"./videos/system-design-101.md":35069,"./videos/tcp-ip-model.md":1559,"./videos/transport-protocols-tcp-vs-udp.md":32382,"./videos/what-are-data-structures.md":68496,"./videos/what-is-cap-theorem.md":45875,"./videos/what-is-dependency-injection.md":52635,"./videos/what-is-dom-shadow-dom-virtual-dom.md":16095,"./videos/what-is-eventual-consistency.md":72068,"./videos/yaml-in-depth.md":26372};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=79280},74160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},25591:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65606:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},40181:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/",mdxType:"BadgeLink"},"HTTP/3 From A To Z: Core Concepts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}l.isMDXComponent=!0},66152:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=WjDrMKZWCt0",mdxType:"BadgeLink"},"How Do Web Browsers Work?"))}l.isMDXComponent=!0},13405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},2222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},48129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},62633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},17828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML Basics"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=3PHXvlpOkf4",mdxType:"BadgeLink"},"Build 15 JavaScript Projects - Vanilla JavaScript"))}l.isMDXComponent=!0},90258:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},40757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Forms and Validations"),(0,r.kt)("p",null,"Before submitting data to the server, it is important to ensure all required form controls are filled out, in the correct format. This is called client-side form validation, and helps ensure data submitted matches the requirements set forth in the various form controls."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation",mdxType:"BadgeLink"},"MDN Web Docs: Client-side form validation"))}l.isMDXComponent=!0},31881:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Best Practices"),(0,r.kt)("p",null,"Learn to follow the best practices for writing maintainable and scalable HTML documents."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/hail2u/html-best-practices",mdxType:"BadgeLink"},"HTML Best Practices"))}l.isMDXComponent=!0},23699:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Accessibility"),(0,r.kt)("p",null,"Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g",mdxType:"BadgeLink"},"Complete Playlist on Accessibility"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/accessibility/index.php",mdxType:"BadgeLink"},"Accessibility Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/",mdxType:"BadgeLink"},"A Complete Guide To Accessible Front-End Components"))}l.isMDXComponent=!0},20584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basics of SEO"),(0,r.kt)("p",null,"SEO or Search Engine Optimization is the technique used to optimize your website for better rankings on search engines such as Google, Bing etc."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developers.google.com/search/docs",mdxType:"BadgeLink"},"Google Search Central \u2014 SEO Docs"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://github.com/seo/guide",mdxType:"BadgeLink"},"SEO Guide"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://medium.com/welldone-software/seo-for-developers-a-quick-overview-5b5b7ce34679",mdxType:"BadgeLink"},"SEO for Developers"))}l.isMDXComponent=!0},33913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-html",mdxType:"BadgeLink"},"Codecademy - Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/denysdovhan/learnyouhtml",mdxType:"BadgeLink"},"Interactive HTML Course"))}l.isMDXComponent=!0},88533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},13780:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Making layouts"),(0,r.kt)("p",null,"Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics: "),(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"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://cssgridgarden.com/",mdxType:"BadgeLink"},"Game for learning CSS Grid"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://css-tricks.com/all-about-floats/",mdxType:"BadgeLink"},"All about Floats"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/",mdxType:"BadgeLink"},"Positioning Types: How Do They Differ?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model",mdxType:"BadgeLink"},"The Box Model"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/the-css-display-property-display-none-display-table-inline-block-and-more/",mdxType:"BadgeLink"},"The CSS Display Property"))}l.isMDXComponent=!0},41118:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Responsive Web Design"),(0,r.kt)("p",null,"Responsive Web Designing is the technique to make your webpages look good on all screen sizes. There are certain techniques used to achieve that e.g. CSS media queries, percentage widths, min or max widths heights etc."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/css_rwd_intro.asp",mdxType:"BadgeLink"},"Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://web.dev/learn/design/",mdxType:"BadgeLink"},"Learn Responsive Design"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=srvUrASNj0s",mdxType:"BadgeLink"},"Introduction To Responsive Web Design"))}l.isMDXComponent=!0},35211:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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://web.dev/learn/css/",mdxType:"BadgeLink"},"Web.dev by Google \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"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://flexbox.io/",mdxType:"BadgeLink"},"What The Flexbox!"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-css",mdxType:"BadgeLink"},"Learn CSS | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-intermediate-css",mdxType:"BadgeLink"},"Learn Intermediate CSS | Codecademy"))}l.isMDXComponent=!0},30617:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))}l.isMDXComponent=!0},51569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DOM Manipulation"),(0,r.kt)("p",null,"The Document Object Model (DOM) connects web pages to scripts or programming languages by representing the structure of a document\u2014such as the HTML representing a web page\u2014in memory."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/",mdxType:"BadgeLink"},"What is the DOM?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/js_htmldom.asp",mdxType:"BadgeLink"},"JavaScript HTML DOM"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.javascripttutorial.net/javascript-dom/",mdxType:"BadgeLink"},"JavaScript DOM"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Tok22qxPzQ",mdxType:"BadgeLink"},"What is DOM, Shadow DOM and Virtual DOM?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=0ik6X4DJKCc",mdxType:"BadgeLink"},"JavaScript DOM Crash Course"))}l.isMDXComponent=!0},74746:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Fetch API"),(0,r.kt)("p",null,"Ajax is the technique that lets us send and receive the data asynchronously from the servers e.g. updaing the user profile or asynchronously fetch the list of searched products without reloading the page."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API",mdxType:"BadgeLink"},"Fetch API MDN Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=-ZI0ea5O2oA",mdxType:"BadgeLink"},"JavaScript Fetch API"))}l.isMDXComponent=!0},66401:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Modern JavaScript"),(0,r.kt)("p",null,"ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming language. It is the first major update to the language since ES5 which was standardized in 2009. You should look at the features introduced with ES6 and onwards."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.javascripttutorial.net/es6/",mdxType:"BadgeLink"},"ES6 Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=NCwa_xi0Uuc",mdxType:"BadgeLink"},"Learn Modern JavaScript in 1 Hour"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=nZ1DMMsyVyI",mdxType:"BadgeLink"},"JavaScript ES6, ES7, ES8"))}l.isMDXComponent=!0},82698:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"JavaScript Concepts"),(0,r.kt)("p",null,"Learn and understand the concepts such as Hoisting, Event Bubbling, Scope, Prototype, Shadow DOM and strict."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Glossary/Hoisting",mdxType:"BadgeLink"},"JavaScript Hoisting"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/bubbling-and-capturing",mdxType:"BadgeLink"},"Event Bubbling and Capturing"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Glossary/Scope",mdxType:"BadgeLink"},"Scope in JavaScript"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/",mdxType:"BadgeLink"},"Var, Let and Const \u2014 What's the difference?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain",mdxType:"BadgeLink"},"Inheritance and Prototype Chain"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode",mdxType:"BadgeLink"},"JavaScript Strict Mode"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Tok22qxPzQ",mdxType:"BadgeLink"},"DOM vs Shadow DOM vs Virtual DOM"))}l.isMDXComponent=!0},8613:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/workshopper/javascripting",mdxType:"BadgeLink"},"Learn the basics of JavaScript"))}l.isMDXComponent=!0},42555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"))}l.isMDXComponent=!0},58548:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},41952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitLab"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://gitlab.com"}),"GitLab")," 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:"Visit",colorScheme:"green",href:"https://gitlab.com/",mdxType:"BadgeLink"},"GitLab Website"),(0,r.kt)(i,{badgeText:"Read",href:"https://docs.gitlab.com/",mdxType:"BadgeLink"},"GitLab Documentation"))}l.isMDXComponent=!0},56145:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"BitBucket"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://bitbucket.com"}),"BitBucket")," 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:"Visit",colorScheme:"green",href:"https://bitbucket.com/",mdxType:"BadgeLink"},"BitBucket Website"),(0,r.kt)(i,{badgeText:"Read",href:"https://bitbucket.org/product/guides",mdxType:"BadgeLink"},"How to use BitBucket?"))}l.isMDXComponent=!0},40493:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo Hosting Services"),(0,r.kt)("p",null,"There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Services Links"),(0,r.kt)(i,{badgeText:"Visit",colorScheme:"green",href:"https://github.com",mdxType:"BadgeLink"},"GitHub: Where the world builds software"),(0,r.kt)(i,{badgeText:"Visit",href:"https://gitlab.com",mdxType:"BadgeLink"},"GitLab: Iterate faster, innovate together"),(0,r.kt)(i,{badgeText:"Visit",href:"https://bitbucket.com",mdxType:"BadgeLink"},"BitBucket: The Git solution for professional teams"))}l.isMDXComponent=!0},62510:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTTPS"),(0,r.kt)("p",null,"HTTPS is a secure way to send data between a web server and a browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/",mdxType:"BadgeLink"},"What is HTTPS?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https",mdxType:"BadgeLink"},"Enabling HTTPS on Your Servers"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hExRDVZHhig",mdxType:"BadgeLink"},"SSL, TLS, HTTP, HTTPS Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=GoXgl9r0Kjk",mdxType:"BadgeLink"},"HTTPS \u2014 Stories from the field"))}l.isMDXComponent=!0},9377:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Content Security Policy"),(0,r.kt)("p",null,"Content Security Policy is a computer security standard introduced to prevent cross-site scripting, clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP",mdxType:"BadgeLink"},"MDN \u2014 Content Security Policy (CSP)"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/csp",mdxType:"BadgeLink"},"Google Devs \u2014 Content Security Policy (CSP)"))}l.isMDXComponent=!0},38705:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CORS"),(0,r.kt)("p",null,"Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS",mdxType:"BadgeLink"},"CORS \u2014 Cross-Origin Resource Sharing"))}l.isMDXComponent=!0},98633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OWASP Security Risks"),(0,r.kt)("p",null,"OWASP or Open Web Application Security Project is an online community that produces freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://en.wikipedia.org/wiki/OWASP",mdxType:"BadgeLink"},"Wikipedia - OWASP"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/0xRadi/OWASP-Web-Checklist",mdxType:"BadgeLink"},"OWASP Web Application Security Testing Checklist"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/",mdxType:"BadgeLink"},"OWASP Top 10 Security Risks"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html",mdxType:"BadgeLink"},"OWASP Cheatsheets"))}l.isMDXComponent=!0},49012:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web Security Knowledge"),(0,r.kt)("p",null,"Web security refers to the protective measures taken by the developers to protect the web applications from threats that could affect the business."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://en.wikipedia.org/wiki/OWASP",mdxType:"BadgeLink"},"Wikipedia - OWASP"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/0xRadi/OWASP-Web-Checklist",mdxType:"BadgeLink"},"OWASP Web Application Security Testing Checklist"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/",mdxType:"BadgeLink"},"OWASP Top 10 Security Risks"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html",mdxType:"BadgeLink"},"OWASP Cheatsheets"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP",mdxType:"BadgeLink"},"Content Security Policy (CSP)"))}l.isMDXComponent=!0},61415:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"npm"),(0,r.kt)("p",null,"npm is a package manager for the JavaScript programming language maintained by npm, Inc. npm is the default package manager for the JavaScript runtime environment Node.js."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/",mdxType:"BadgeLink"},"An Absolute Beginner's Guide to Using npm"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2V1UUhBJ62Y",mdxType:"BadgeLink"},"NPM tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=jHDhaSSKmB0",mdxType:"BadgeLink"},"NPM Crash Course"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/workshopper/how-to-npm",mdxType:"BadgeLink"},"How to NPM"))}l.isMDXComponent=!0},16356:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Yarn"),(0,r.kt)("p",null,"Yarn is a software packaging system developed in 2016 by Facebook for Node.js JavaScript runtime environment that provides speed, consistency, stability, and security as an alternative to npm (package manager)."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://yarnpkg.com/en/docs/getting-started",mdxType:"BadgeLink"},"Yarn - Getting Started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=g9_6KmiBISk",mdxType:"BadgeLink"},"Yarn Crash Course"))}l.isMDXComponent=!0},88988:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Package Managers"),(0,r.kt)("p",null,"Package managers allow you to manage the dependencies (external code written by you or someone else) that your project needs to work correctly."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/",mdxType:"BadgeLink"},"An Absolute Beginner's Guide to Using npm"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2V1UUhBJ62Y",mdxType:"BadgeLink"},"NPM tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=jHDhaSSKmB0",mdxType:"BadgeLink"},"NPM Crash Course"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://yarnpkg.com/en/docs/getting-started",mdxType:"BadgeLink"},"Yarn - Getting Started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=g9_6KmiBISk",mdxType:"BadgeLink"},"Yarn Crash Course"))}l.isMDXComponent=!0},86665:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},21750:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},58887:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"SMACSS"),(0,r.kt)("p",null,"SMACSS (pronounced \u201csmacks\u201d) is more style guide than rigid framework. SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://smacss.com/",mdxType:"BadgeLink"},"SMACSS Official Website"))}l.isMDXComponent=!0},45220:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Architecture"),(0,r.kt)("p",null,"CSS is notoriously difficult to manage in large, complex, rapidly-iterated systems. There are different ways of writing CSS that allows in writing more maintainable CSS."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.webfx.com/blog/web-design/css-methodologies/",mdxType:"BadgeLink"},"A Look at Some CSS Methodologies"),(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 Website",href:"http://oocss.org/",mdxType:"BadgeLink"},"OOCSS Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://smacss.com/",mdxType:"BadgeLink"},"SMACSS Official Website"))}l.isMDXComponent=!0},84447:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Sass"),(0,r.kt)("p",null,"Sass is a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets. It lets you write maintainable CSS and provides features like variable, nesting, mixins, extension, functions, loops, conditionals and so on."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://sass-lang.com/",mdxType:"BadgeLink"},"Sass Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Documentation",href:"https://sass-lang.com/documentation",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=_a5j7KoflTs",mdxType:"BadgeLink"}," Sass Tutorial for Beginners"))}l.isMDXComponent=!0},85106:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PostCSS"),(0,r.kt)("p",null,"PostCSS is a tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://postcss.org/",mdxType:"BadgeLink"},"Official Website"))}l.isMDXComponent=!0},22972:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Less"),(0,r.kt)("p",null,"Less extends CSS with dynamic behavior such as variables, mixins, operations and functions. Less runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only)."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://lesscss.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://lesscss.org/usage/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=YD91G8DdUsw",mdxType:"BadgeLink"}," Less CSS Pre-Processor Tutorial"))}l.isMDXComponent=!0},68365:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Preprocessors"),(0,r.kt)("p",null,"CSS Preprocessors are scripting languages that extend the default capabilities of CSS. They enable us to use logic in our CSS code, such as variables, nesting, inheritance, mixins, functions, and mathematical operations."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/css-preprocessors/#:~:text=CSS%20Preprocessors%20compile%20the%20code,preprocessor%20were%20not%20in%20place.",mdxType:"BadgeLink"},"CSS Preprocessors Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://sherocommerce.com/what-is-a-css-preprocessors-why-use-them/",mdxType:"BadgeLink"},"Why Use Preprocessors?"))}l.isMDXComponent=!0},86523:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"npm Scripts"),(0,r.kt)("p",null,"npm scripts are the entries in the scripts field of the package.json file. The scripts field holds an object where you can specify various commands and scripts that you want to expose."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/introduction-to-npm-scripts/",mdxType:"BadgeLink"},"Introduction to npm scripts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hHt3oVk3XVk",mdxType:"BadgeLink"},"Codevolution: npm scripts"))}l.isMDXComponent=!0},88664:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},86795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Webpack"),(0,r.kt)("p",null,"Webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://webpack.js.org/",mdxType:"BadgeLink"},"Webpack Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://webpack.js.org/concepts/",mdxType:"BadgeLink"},"Webpack Documentation"))}l.isMDXComponent=!0},19500:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"esbuild"),(0,r.kt)("p",null,"Our current build tools for the web are 10-100x slower than they could be. The main goal of the esbuild bundler project is to bring about a new era of build tool performance, and create an easy-to-use modern bundler along the way."),(0,r.kt)(s,{colorScheme:"blue",badgeText:"Official Website",href:"https://esbuild.github.io/",mdxType:"BadgeLink"},"Esbuild Official Website"),(0,r.kt)(s,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://esbuild.github.io/api/",mdxType:"BadgeLink"},"Esbuild Documentation"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=9XS_RA6zyyU",mdxType:"BadgeLink"},"Why are People Obsessed with esbuild?"))}c.isMDXComponent=!0},5104:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rollup"),(0,r.kt)("p",null,"Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://rollupjs.org/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=ICYLOZuFMz8",mdxType:"BadgeLink"},"How to Set Up JavaScript Bundling Using Rollup"))}l.isMDXComponent=!0},25648:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Parcel"),(0,r.kt)("p",null,"Parcel is a web application bundler, differentiated by its developer experience. It offers blazing-fast performance utilizing multicore processing and requires zero configuration."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://parceljs.org/plugin-system/bundler/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hCxvp3_o0gM",mdxType:"BadgeLink"},"Using Parcel Bundler with React"))}l.isMDXComponent=!0},20762:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vite"),(0,r.kt)("p",null,"Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://vitejs.dev",mdxType:"BadgeLink"},"Vite Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Documentation",href:"https://vitejs.dev/guide",mdxType:"BadgeLink"},"Vite Documentation"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://youtu.be/LQQ3CR2JTX8",mdxType:"BadgeLink"},"Vite Crash Course"))}l.isMDXComponent=!0},76459:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Prettier"),(0,r.kt)("p",null,"Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://prettier.io",mdxType:"BadgeLink"},"Prettier Website"))}l.isMDXComponent=!0},62816:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"ESLint"),(0,r.kt)("p",null,"With ESLint you can impose the coding standard using a certain set of standalone rules."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"blue",href:"https://eslint.org/",mdxType:"BadgeLink"},"ESLint Official Website"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://dev.to/shivambmgupta/eslint-what-why-when-how-5f1d",mdxType:"BadgeLink"},"Introduction to ESLint"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"red",href:"https://www.youtube.com/watch?v=qhuFviJn-es",mdxType:"BadgeLink"},"ESLint Quickstart - find errors automatically"))}l.isMDXComponent=!0},74453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"StandardJS"),(0,r.kt)("p",null,"Standardjs is a Style guide, with linter & automatic code fixer. It is a way to enforce consistent style in your project. It automatically formats code.\nStandard JS is a tool in the Code Review category of a tech stack."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"blue",href:"https://standardjs.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=bqho-uAnNJk",mdxType:"BadgeLink"},"Standard JS Tutorial with React, Prettier"))}l.isMDXComponent=!0},82310:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},37093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},57139:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Redux"),(0,r.kt)("p",null,"Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/reduxjs/redux-devtools"}),"live code editing combined with a time traveling debugger"),"."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://redux.js.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://redux.js.org/introduction/getting-started",mdxType:"BadgeLink"},"Official Getting Started to Redux"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://redux.js.org/tutorials/essentials/part-1-overview-concepts",mdxType:"BadgeLink"},"Official Tutorial to Learn Redux"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867",mdxType:"BadgeLink"},"Fundamentals of Redux Course from Dan Abramov"))}l.isMDXComponent=!0},25783:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MobX"),(0,r.kt)("p",null,"MobX is an open source state management tool. MobX, a simple, scalable, and standalone state management library, follows functional reactive programming (FRP) implementation and prevents inconsistent state by ensuring that all derivations are performed automatically."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://mobx.js.org/",mdxType:"BadgeLink"},"MobX Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=WQQq1QbYlAw",mdxType:"BadgeLink"},"Intro to MobX Tutorial"))}l.isMDXComponent=!0},57810:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Recoil"),(0,r.kt)("p",null,"Recoil is a new state management library built by the Facebook team that simplifies global state management."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://recoiljs.org/",mdxType:"BadgeLink"},"Recoil Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://recoiljs.org/docs/introduction/getting-started",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=BchtCWxs7sA",mdxType:"BadgeLink"},"Learn the basics of Recoil.js"))}l.isMDXComponent=!0},96199:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=bMknfKXIFA8",mdxType:"BadgeLink"},"React Course - Beginner's Tutorial for React JavaScript Library [2022]"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=i793Qm6kv3U",mdxType:"BadgeLink"},"Understanding React's UI Rendering Process"))}l.isMDXComponent=!0},5685:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"RxJS"),(0,r.kt)("p",null,"RxJS (Reactive Extensions for JavaScript) is a library for reactive programming using observables that makes it easier to compose asynchronous or callback-based code."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://rxjs.dev/guide/overview",mdxType:"BadgeLink"},"RxJS Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://angular.io/guide/rx-library",mdxType:"BadgeLink"},"RxJS Angular Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2LCo926NFLI",mdxType:"BadgeLink"},"RxJS Quick Start"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=PhggNGsSQyg",mdxType:"BadgeLink"},"RxJS Crash Course"))}l.isMDXComponent=!0},13162:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NgRx"),(0,r.kt)("p",null,"NgRx is an open source library that provides reactive state management for your Angular applications"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://ngrx.io/docs",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2LCo926NFLI",mdxType:"BadgeLink"},"Angular NgRx Redux Quick Start Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=nuHBHD32iw8",mdxType:"BadgeLink"},"NgRx Course"))}l.isMDXComponent=!0},23666:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},80549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuex"),(0,r.kt)("p",null,"Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://vuex.vuejs.org/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=5lVQgZzLMHc",mdxType:"BadgeLink"},"Vuex Crash Course"))}l.isMDXComponent=!0},85277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue.js"),(0,r.kt)("p",null,"Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is mainly focused on front end development."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://vuejs.org/",mdxType:"BadgeLink"},"Vue.js Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://vuejs.org/v2/guide/",mdxType:"BadgeLink"},"Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=FXpIoQ_rT_c",mdxType:"BadgeLink"},"Vue.js Course for Beginners"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qZXt1Aom3Cs",mdxType:"BadgeLink"},"Vue.js Crash Course"))}l.isMDXComponent=!0},91473:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Pick a Framework"),(0,r.kt)("p",null,"Web frameworks are designed to write web applications. Frameworks are collections of libraries that aid in the development of a software product or website. Frameworks for web application development are collections of various tools. Frameworks vary in their capabilities and functions, depending on the tasks set. They define the structure, establish the rules, and provide the development tools required."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=D_MO9vIRBcA",mdxType:"BadgeLink"},"What is the difference between a framework and a library?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=cuHDQhDhvPE",mdxType:"BadgeLink"}," Which JS Framework is best?"))}l.isMDXComponent=!0},73745:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled components"),(0,r.kt)("p",null,"Styled-components is a CSS-in-JS library that enables you to write regular CSS and attach it to JavaScript components. With styled-components, you can use the CSS you\u2019re already familiar with instead of having to learn a new styling structure."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://styled-components.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://styled-components.com/docs",mdxType:"BadgeLink"},"Official Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=02zO0hZmwnw",mdxType:"BadgeLink"},"Styled Components Crash Course & Project"))}l.isMDXComponent=!0},51720:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Modules"),(0,r.kt)("p",null,"CSS files in which all class names and animation names are scoped locally by default."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"blue",href:"https://github.com/css-modules/css-modules",mdxType:"BadgeLink"},"Project GitHub Repository"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://medium.com/@ralph1786/using-css-modules-in-react-app-c2079eadbb87",mdxType:"BadgeLink"},"Using CSS Modules In React App"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=pKMWU9OrA2s",mdxType:"BadgeLink"},"CSS Modules: Why are they great?"))}l.isMDXComponent=!0},24349:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled JSX"),(0,r.kt)("p",null,"Styled JSX is a CSS-in-JS library that allows you to write encapsulated and scoped CSS to style your components. The styles you introduce for one component won't affect other components, allowing you to add, change and delete styles without worrying about unintended side effects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://github.com/vercel/styled-jsx",mdxType:"BadgeLink"},"Getting started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SM5uVbfgfdo",mdxType:"BadgeLink"},"Styled JSX in Next.js: Master Next.js"))}l.isMDXComponent=!0},14291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Emotion"),(0,r.kt)("p",null,"Emotion is a library designed for writing css styles with JavaScript. It provides powerful and predictable style composition in addition to a great developer experience with features such as source maps, labels, and testing utilities. Both string and object styles are supported."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://emotion.sh/docs/introduction",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=yO3JU2bMLGA",mdxType:"BadgeLink"},"Styled components using emotion in React"))}l.isMDXComponent=!0},59904:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},41484:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},16625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},32901:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},58933:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},94642:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bootstrap"),(0,r.kt)("p",null,"Quickly design and customize responsive mobile-first sites with Bootstrap, the world\u2019s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://getbootstrap.com",mdxType:"BadgeLink"},"Bootstrap Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=-qfEOE4vtxE",mdxType:"BadgeLink"},"Bootstrap CSS Framework - Full Course for Beginners"))}l.isMDXComponent=!0},14505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bulma"),(0,r.kt)("p",null,"Bulma is a free, open source framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://bulma.io/",mdxType:"BadgeLink"},"Bulma Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://youtube.com/playlist?list=PL4cUxeGkcC9iXItWKbaQxcyDT1u6E7a8a",mdxType:"BadgeLink"},"Bulma CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://scrimba.com/learn/bulma",mdxType:"BadgeLink"},"Learn Bulma CSS"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.freecodecamp.org/news/how-to-build-a-responsive-blog-design-with-bulma-css-c2257a17c16b",mdxType:"BadgeLink"},"How To Build A ? Responsive Blog Design With Bulma CSS"))}l.isMDXComponent=!0},94740:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},21160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},6937:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Chakra UI"),(0,r.kt)("p",null,"Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://chakra-ui.com/",mdxType:"BadgeLink"},"Chakra UI Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://chakra-ui.com/docs/getting-started",mdxType:"BadgeLink"},"Chakra UI Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106",mdxType:"BadgeLink"},"Build a Modern User Interface with Chakra UI"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"",mdxType:"BadgeLink"}),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/wI2vqXsjsIo",mdxType:"BadgeLink"},"Official Getting Started Video"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/s-bIsz-NR3c",mdxType:"BadgeLink"},"Chakra UI Crash Course"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/why-should-you-start-using-chakraui/",mdxType:"BadgeLink"},"Why You Should Start Using Chakra UI"))}l.isMDXComponent=!0},99120:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Material UI"),(0,r.kt)("p",null,"Material-UI is an open-source framework that features React components that implement Google\u2019s Material Design."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://mui.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://mui.com/getting-started/installation/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=vyJU9efvUtQ",mdxType:"BadgeLink"},"Material UI React Tutorial"))}l.isMDXComponent=!0},13694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Radix UI"),(0,r.kt)("p",null,"An open-source UI component library for building high-quality, accessible design systems and web apps."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://www.radix-ui.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://www.radix-ui.com/docs/primitives/overview/introduction",mdxType:"BadgeLink"},"Official Documentation"))}l.isMDXComponent=!0},17562:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},21879:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},25996:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jest"),(0,r.kt)("p",null,"Jest is a delightful JavaScript Testing Framework with a focus on simplicity.\nIt works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://jestjs.io/",mdxType:"BadgeLink"},"Jest Website"))}l.isMDXComponent=!0},42772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},73431:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},44375:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},64946:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},69011:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mocha"))}s.isMDXComponent=!0},95136:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Chai"))}s.isMDXComponent=!0},30327:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ava"))}s.isMDXComponent=!0},68976:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Jasmine"))}s.isMDXComponent=!0},25770:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing your apps"),(0,r.kt)("p",null,"Before delivering your application to users, you need to be sure that your app meets the requirements it was designed for, and that it doesn't do any weird, unintended things (called 'bugs'). To accomplish this, we 'test' our applications in different ways."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.softwaretestingmaterial.com/software-testing/",mdxType:"BadgeLink"},"A comprehensive dive into software testing."),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing",mdxType:"BadgeLink"},"The different types of software tests"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://jestjs.io/docs/tutorial-react",mdxType:"BadgeLink"},"Testing React apps with Jest"))}l.isMDXComponent=!0},83227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"TypeScript"),(0,r.kt)("p",null,"TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://www.typescriptlang.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://www.typescriptlang.org/docs/",mdxType:"BadgeLink"},"Official Docs for Deep Dives"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Handbook",href:"https://www.typescriptlang.org/docs/handbook/intro.html",mdxType:"BadgeLink"},"The TypeScript Handbook"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.tutorialspoint.com/typescript/index.htm",mdxType:"BadgeLink"},"TypeScript Tutorial"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=BwuLxPH8IDs",mdxType:"BadgeLink"},"TypeScript for Beginners"))}l.isMDXComponent=!0},79935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flow"),(0,r.kt)("p",null,"Flow is a static type checker, designed to find type errors in JavaScript programs."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://flow.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://flow.org/en/docs/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=0HlqX4lQZas",mdxType:"BadgeLink"},"Flow for Beginners"))}l.isMDXComponent=!0},98323:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},54990:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},95089:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},72768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Progressive Web Apps"),(0,r.kt)("p",null,"Progressive Web Apps (PWAs) are websites that are progressively enhanced to function like installed, native apps on supporting platforms, while functioning like regular websites on other browsers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/what-are-progressive-web-apps/",mdxType:"BadgeLink"},"Progressive Web Apps for Beginners"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://web.dev/learn/pwa/",mdxType:"BadgeLink"},"Learn PWA"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=sFsRylCQblw",mdxType:"BadgeLink"},"Build a Progressive Web App"))}l.isMDXComponent=!0},99086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next.js"),(0,r.kt)("p",null,"Next.js is an open-source development framework built on top of Node.js\nenabling React based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nextjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nextjs.org/docs/getting-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnextjs.com/",mdxType:"BadgeLink"},"Mastering Next.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://youtu.be/1WmNXEVia8I",mdxType:"BadgeLink"},"Next.js for Beginners - freeCodeCamp"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Handbook",href:"https://www.freecodecamp.org/news/the-next-js-handbook/",mdxType:"BadgeLink"},"The Next.js Handbook \u2014 freeCodeCamp"))}l.isMDXComponent=!0},4930:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},88747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},67815:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},26394:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},62573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},35137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},71905:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},60410:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apollo"),(0,r.kt)("p",null,"Apollo is a platform for building a unified graph, a communication layer that helps you manage the flow of data between your application clients (such as web and native apps) and your back-end services."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.apollographql.com",mdxType:"BadgeLink"},"Apollo Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://www.apollographql.com/docs/",mdxType:"BadgeLink"},"Official Docs"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Watch",href:"https://www.youtube.com/c/ApolloGraphQL/",mdxType:"BadgeLink"},"Official YouTube Channel"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=YyUWW04HwKY",mdxType:"BadgeLink"},"GraphQL With React Tutorial - Apollo Client"))}l.isMDXComponent=!0},60485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relay Modern"),(0,r.kt)("p",null,"Relay is a JavaScript client used in the browser to fetch GraphQL data. It's a JavaScript framework developed by Facebook for managing and fetching data in React applications. It is built with scalability in mind in order to power complex applications like Facebook. The ultimate goal of GraphQL and Relay is to deliver instant UI-response interactions."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://relay.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://relay.dev/docs/",mdxType:"BadgeLink"},"Introduction to Relay modern"))}l.isMDXComponent=!0},24133:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Graphql"),(0,r.kt)("p",null,"GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://graphql.org/learn/",mdxType:"BadgeLink"},"Introduction to GraphQL"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.howtographql.com/",mdxType:"BadgeLink"},"The Fullstack Tutorial for GraphQL"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://odyssey.apollographql.com/",mdxType:"BadgeLink"},"GraphQL Tutorials"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=ed8SzALpx1Q",mdxType:"BadgeLink"},"GraphQL Course for Beginners"))}l.isMDXComponent=!0},57935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next.js"),(0,r.kt)("p",null,"Next.js is an open-source development framework built on top of Node.js\nenabling React based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nextjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nextjs.org/docs/getting-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnextjs.com/",mdxType:"BadgeLink"},"Mastering Next.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://youtu.be/1WmNXEVia8I",mdxType:"BadgeLink"},"Next.js for Beginners - Full Course at freeCodeCamp YouTube Channel"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Handbook",href:"https://www.freecodecamp.org/news/the-next-js-handbook/",mdxType:"BadgeLink"},"The Next.js Handbook \u2014 FreeCodeCamp"))}l.isMDXComponent=!0},1291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},20855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"),(0,r.kt)("p",null,"Nuxt.js is an open-source development framework built on top of Node.js\nenabling Vue based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nuxtjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nuxtjs.org/docs/get-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnuxt.com/",mdxType:"BadgeLink"},"Mastering Nuxt.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=FXpIoQ_rT_c",mdxType:"BadgeLink"},"Vue.js for Beginners - Full Course at freeCodeCamp YouTube Channel"))}l.isMDXComponent=!0},32374:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},51898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jekyll"),(0,r.kt)("p",null,"Jekyll is a static site generator. It takes text written in your favorite markup language and uses layouts to create a static website. You can tweak the site\u2019s look and feel, URLs, the data displayed on the page, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://jekyllrb.com/",mdxType:"BadgeLink"},"Jekyll Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://jekyllrb.com/docs/",mdxType:"BadgeLink"},"Jekyll Docs"))}l.isMDXComponent=!0},90355:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},82578:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},80476:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eleventy"),(0,r.kt)("p",null,"Eleventy (11ty) is a simple to use, easy to customize, highly performant and powerful static site generator with a helpful set of plugins (e.g. navigation, build-time image transformations, cache assets). Pages can be built and written with a variety of template languages (HTML, Markdown, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug or JS template literals). But it also offers the possibility to dynamically create pages from local data or external sources that are compiled at build time. It has zero client-side JavaScript dependencies."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://www.11ty.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=-dM6AmNmMFA",mdxType:"BadgeLink"},"Introduction to Eleventy"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://11ty.rocks/",mdxType:"BadgeLink"},"A collection of 11ty starters, projects, plugins, and resources"))}l.isMDXComponent=!0},35470:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Static Site Generators"),(0,r.kt)("p",null,"A static site generator is a tool that generates a full static HTML website based on raw data and a set of templates. Essentially, a static site generator automates the task of coding individual HTML pages and gets those pages ready to serve to users ahead of time. Because these HTML pages are pre-built, they can load very quickly in users' browsers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/learning/performance/static-site-generator/",mdxType:"BadgeLink"},"What is a static site generator?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://nextjs.org/docs/advanced-features/static-html-export",mdxType:"BadgeLink"},"Next.js SSG"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.gatsbyjs.com/docs/glossary/static-site-generator/",mdxType:"BadgeLink"},"Gatsby SSG"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/10/building-ssg-11ty-vite-jam-sandwich/",mdxType:"BadgeLink"},"SSG \u2014\xa0An 11ty, Vite And JAM Sandwich"))}l.isMDXComponent=!0},52919:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React Native"),(0,r.kt)("p",null,"React Native is a popular JavaScript-based mobile app framework that allows you to build natively-rendered mobile apps for iOS and Android. The framework lets you create an application for various platforms by using the same codebase."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://reactnative.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://reactnative.dev/docs/getting-started",mdxType:"BadgeLink"},"Official Getting Started to React Native"),(0,r.kt)(i,{colorScheme:"Watch",badgeText:"Watch",href:"https://www.youtube.com/watch?v=0-S5a0eXPoc",mdxType:"BadgeLink"},"Tutorial to Learn React Native"))}l.isMDXComponent=!0},15760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NativeScript"),(0,r.kt)("p",null,"NativeScript is an open source framework for creating native iOS and Android apps in Angular, TypeScript, or JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://nativescript.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://docs.nativescript.org/",mdxType:"BadgeLink"},"Official Getting Started to NativeScript"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=DcCSq2Y9bow",mdxType:"BadgeLink"},"NativeScript Tutorial for Beginners"))}l.isMDXComponent=!0},59268:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},17280:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ionic"),(0,r.kt)("p",null,"Ionic framework is an open-source UI toolkit for building performant, high-quality mobile apps, desktop apps, and progressive web apps using web technologies such as HTML, CSS, and JavaScript. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://ionicframework.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://ionicframework.com/docs/",mdxType:"BadgeLink"},"Official Getting Started to Ionic framework"),(0,r.kt)(i,{colorScheme:"Watch",badgeText:"Watch",href:"https://www.youtube.com/watch?v=AvbuIRg8_Jg",mdxType:"BadgeLink"},"Ionic Framework 4 - Full Tutorial"))}l.isMDXComponent=!0},20388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},37137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"),(0,r.kt)("p",null,'Electron allows you to build cross-platform desktop applications with HTML, CSS, and Javascript/Typescript. It uses Chromium and Node.js, so essentially it is a "Browser" like application that is compatbile with Mac, Windows, and Linux. '))}s.isMDXComponent=!0},30373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Carlo"),(0,r.kt)("p",null,"Carlo is a headful Node app framework for building desktop applications."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Official Rep",href:"https://github.com/GoogleChromeLabs/carlo",mdxType:"BadgeLink"},"Github Repository"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://blog.agney.dev/carlo-on-web-server/",mdxType:"BadgeLink"},"Carlo development on a web server"))}l.isMDXComponent=!0},55588:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Proton native"),(0,r.kt)("p",null,"Proton Native allows you to create desktop applications through a React syntax, on all platforms."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://proton-native.js.org/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Hw6vPBfVVeo",mdxType:"BadgeLink"},"Getting Started With Proton Native"))}l.isMDXComponent=!0},78773:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web Assembly"),(0,r.kt)("p",null,"WebAssembly is a new type of code that can be run in modern web browsers \u2014 it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C# and Rust with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://webassembly.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://webassembly.org/getting-started/developers-guide/",mdxType:"BadgeLink"},"Official Getting Started to Web Assembly"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=3sU557ZKjUs",mdxType:"BadgeLink"},"An introduction to WebAssembly"))}l.isMDXComponent=!0},17086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},47083:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},31921:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},24765:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/",mdxType:"BadgeLink"},"HTTP/3 From A To Z: Core Concepts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}l.isMDXComponent=!0},98817:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},60450:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},98402:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},52573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},91812:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},56363:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-html",mdxType:"BadgeLink"},"Codecademy - Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/denysdovhan/learnyouhtml",mdxType:"BadgeLink"},"Interactive HTML Course"))}l.isMDXComponent=!0},91440:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://flexbox.io/",mdxType:"BadgeLink"},"What The Flexbox!"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-css",mdxType:"BadgeLink"},"Learn CSS | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-intermediate-css",mdxType:"BadgeLink"},"Learn Intermediate CSS | Codecademy"))}l.isMDXComponent=!0},65898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))}l.isMDXComponent=!0},80760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basic Frontend Knowledge"),(0,r.kt)("p",null,"As a backend developer, you may not need to have proficient knowledge of the frontend stack but you should at least have some basic understanding of HTML, CSS and JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools: Learn CSS"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools: JavaScript Tutorial"))}l.isMDXComponent=!0},43869:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"Terminal usage"),(0,r.kt)("p",null,"Terminals, also known as command lines or consoles, allow us to accomplish and automate tasks on a computer without the use of a graphical user interface."),(0,r.kt)(s,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line",mdxType:"BadgeLink"},"Command line crash course"),(0,r.kt)(s,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=jDINUSK7rXE",mdxType:"BadgeLink"},"Basic Terminal Usage - Cheat Sheet to make the command line EASY"))}c.isMDXComponent=!0},55739:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Operating Systems"))}s.isMDXComponent=!0},25210:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Process Management"))}s.isMDXComponent=!0},73693:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Threads and Concurrency"))}s.isMDXComponent=!0},72175:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 terminal Commands"))}s.isMDXComponent=!0},62300:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Memory management"))}s.isMDXComponent=!0},94668:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"Interprocess Communication"),(0,r.kt)("p",null,"Interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data"),(0,r.kt)(s,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/inter-process-communication-ipc/",mdxType:"BadgeLink"},"Interprocess Communication"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=dJuYKfR8vec",mdxType:"BadgeLink"},"Interprocess Communication - Neso Academy"))}c.isMDXComponent=!0},86789:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Io management"))}s.isMDXComponent=!0},39736:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Posix basics"))}s.isMDXComponent=!0},47142:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 networking concepts"))}s.isMDXComponent=!0},98419:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"General Knowledge"),(0,r.kt)("p",null,"Operating System is a program that manages a computer\u2019s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/",mdxType:"BadgeLink"},"What is an operating system?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse",mdxType:"BadgeLink"},"Operating Systems: Crash Course Computer Science #18"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1",mdxType:"BadgeLink"},"Introduction to Operating System"))}l.isMDXComponent=!0},75063:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Go"),(0,r.kt)("p",null,"Go is an open source programming language supported by Google. Go can be used to write cloud services, CLI tools, used for API development, and much more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://go.dev/tour/welcome/1",mdxType:"BadgeLink"},"A Tour of Go \u2013 Go Basics"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://go.dev/doc/",mdxType:"BadgeLink"},"Go Reference Documentation"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://gobyexample.com/",mdxType:"BadgeLink"},"Go by Example - annotated example programs"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-go",mdxType:"BadgeLink"},"Learn Go | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.w3schools.com/go/",mdxType:"BadgeLink"},"W3Schools Go Tutorial "))}l.isMDXComponent=!0},4332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rust"),(0,r.kt)("p",null,"Rust is a modern systems programming language focusing on safety, speed, and concurrency. It accomplishes these goals by being memory safe without using garbage collection."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://doc.rust-lang.org/book/",mdxType:"BadgeLink"},"The Rust Programming Language - online book"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://doc.rust-lang.org/stable/rust-by-example/index.html",mdxType:"BadgeLink"},"Rust by Example - collection of runnable examples"))}l.isMDXComponent=!0},76017:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Java"),(0,r.kt)("p",null,"Java is general-purpose language, primarily used for Internet-based applications.\nIt was created in 1995 by James Gosling at Sun Microsystems and is one of the most popular options for backend developers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.java.com/",mdxType:"BadgeLink"},"Java Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Learn",href:"https://www.codecademy.com/learn/learn-java",mdxType:"BadgeLink"},"Codeacademy - Free Course"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Learn",href:"https://www.w3schools.com/java/",mdxType:"BadgeLink"},"W3 Schools Tutorials"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eIrMbAQSU34",mdxType:"BadgeLink"},"Java Crash Course"))}l.isMDXComponent=!0},99855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Csharp"),(0,r.kt)("p",null,'C# (pronounced "C sharp") is a general purpose programming language made by Microsoft. It is used to perform different tasks and can be used to create web apps, games, mobile apps, etc.'),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Learn",href:"https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-35129-website",mdxType:"BadgeLink"},"C# Learning Path"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Learn",href:"https://www.w3schools.com/cs/index.php",mdxType:"BadgeLink"},"C# on W3 schools"),(0,r.kt)(i,{badgeText:"Watch",href:"https://docs.microsoft.com/en-us/shows/CSharp-101/?WT.mc_id=Educationalcsharp-c9-scottha",mdxType:"BadgeLink"},"Introduction to C#"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=gfkTfcpWqAY&list=PLTjRvDozrdlz3_FPXwb6lX_HoGXa09Yef",mdxType:"BadgeLink"},"C# tutorials"))}l.isMDXComponent=!0},80110:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PHP"),(0,r.kt)("p",null,"PHP is a server scripting language and a powerful tool for making dynamic and interactive Web pages. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://php.org/",mdxType:"BadgeLink"},"PHP Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/php/",mdxType:"BadgeLink"},"Learn PHP - W3Schools"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2eebptXfEvw",mdxType:"BadgeLink"},"PHP For Absolute Beginners"))}l.isMDXComponent=!0},30174:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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. Apart from being used on the frontend in browsers, there is Node.js which is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=fBNz5xF-Kx4",mdxType:"BadgeLink"},"Node.js Crash Course"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=TlB_eWDSMt4",mdxType:"BadgeLink"},"Node.js Tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/introduction-to-javascript",mdxType:"BadgeLink"},"Codecademy - Learn JavaScript"))}l.isMDXComponent=!0},82331:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Python"),(0,r.kt)("p",null,"Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedureal or object-oriented programmatic ways."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Python Website",href:"https://www.python.org/",mdxType:"BadgeLink"},"Python Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://www.python.org/about/gettingstarted/",mdxType:"BadgeLink"},"Python Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.w3schools.com/python/",mdxType:"BadgeLink"},"W3Schools - Python Tutorial "),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://ehmatthes.github.io/pcc/",mdxType:"BadgeLink"},"Python Crash Course"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://automatetheboringstuff.com/",mdxType:"BadgeLink"},"Automate the Boring Stuff"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-python",mdxType:"BadgeLink"},"Codecademy - Learn Python 2"))}l.isMDXComponent=!0},4236:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ruby"),(0,r.kt)("p",null,"Ruby is a high-level, interpreted programming language that blends Perl, Smalltalk, Eiffel, Ada, and Lisp. Ruby focuses on simplicity and productivity along with a syntax that reads and writes naturally. Ruby supports procedural, object-oriented and functional programming and is dynamically typed."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Ruby Website",href:"https://www.ruby-lang.org/en/",mdxType:"BadgeLink"},"Ruby Website"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.ruby-lang.org/en/documentation/quickstart/",mdxType:"BadgeLink"},"Learn Ruby in 20 minutes"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-ruby",mdxType:"BadgeLink"},"Learn Ruby | Codecademy"))}l.isMDXComponent=!0},22533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 a language"))}s.isMDXComponent=!0},63163:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/jlord/git-it-electron",mdxType:"BadgeLink"},"Learn Git on the command line"))}l.isMDXComponent=!0},32223:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Version Control Systems"),(0,r.kt)("p",null,"Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://git-scm.com/",mdxType:"BadgeLink"},"Git"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.mercurial-scm.org/",mdxType:"BadgeLink"},"Mercurial"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.atlassian.com/git/tutorials/what-is-version-control",mdxType:"BadgeLink"},"What is Version Control?"))}l.isMDXComponent=!0},66926:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitHub"),(0,r.kt)("p",null,"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:"Official Website",colorScheme:"blue",href:"https://github.com",mdxType:"BadgeLink"},"GitHub Website"),(0,r.kt)(i,{badgeText:"Official Documentation",colorScheme:"blue",href:"https://docs.github.com/en/get-started/quickstart",mdxType:"BadgeLink"},"GitHub Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=w3jLJU7DT5E",mdxType:"BadgeLink"},"What is GitHub?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=wpISo9TNjfU",mdxType:"BadgeLink"},"Git vs. GitHub: What's the difference?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=RGOj5yH7evk",mdxType:"BadgeLink"},"Git and GitHub for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eulnSXkhE7I",mdxType:"BadgeLink"},"Git and GitHub - CS50 Beyond 2019"))}l.isMDXComponent=!0},11425:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitLab"),(0,r.kt)("p",null,"GitLab 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:"Official Website",colorScheme:"blue",href:"https://gitlab.com/",mdxType:"BadgeLink"},"GitLab Website"),(0,r.kt)(i,{badgeText:"Official Documentation",colorScheme:"blue",href:"https://docs.gitlab.com/",mdxType:"BadgeLink"},"GitLab Documentation"))}l.isMDXComponent=!0},94448:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bitbucket"),(0,r.kt)("p",null,"Bitbucket is a Git based hosting and source code repository service that is Atlassian's alternative to other products like GitHub, GitLab etc"),(0,r.kt)("p",null,"Bitbucket offers hosting options via Bitbucket Cloud (Atlassian's servers), Bitbucket Server (customer's on-premise) or Bitbucket Data Centre (number of servers in customers on-premise or cloud environment)"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Bitbucket Website",href:"https://bitbucket.org/product",mdxType:"BadgeLink"},"Bitbucket Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket",mdxType:"BadgeLink"},"A brief overview of Bitbucket"),(0,r.kt)(i,{badgeText:"Guide",colorScheme:"green",href:"https://bitbucket.org/product/guides/basics/bitbucket-interface",mdxType:"BadgeLink"},"Getting started with Bitbucket"),(0,r.kt)(i,{badgeText:"Guide",colorScheme:"green",href:"https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud",mdxType:"BadgeLink"},"Using Git with Bitbucket Cloud"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=M44nEyd_5To",mdxType:"BadgeLink"},"Bitbucket tutorial | How to use Bitbucket Cloud"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=i5T-DB8tb4A",mdxType:"BadgeLink"},"Bitbucket Tutorial | Bitbucket for Beginners"))}l.isMDXComponent=!0},1973:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo Hosting Services"),(0,r.kt)("p",null,"When working on a team, you often need a remote place to put your code so others can access it, create their own branches, and create or review pull requests. These services often include issue tracking, code review, and continuous integration features. A few popular choices are GitHub, GitLab, BitBucket, and AWS CodeCommit."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://github.com/features/",mdxType:"BadgeLink"},"GitHub"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://about.gitlab.com/",mdxType:"BadgeLink"},"GitLab"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://bitbucket.org/product/guides/getting-started/overview",mdxType:"BadgeLink"},"BitBucket"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://bitbucket.org/product/code-repository",mdxType:"BadgeLink"},"How to choose the best source code repository"))}l.isMDXComponent=!0},29982:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PostgreSQL"),(0,r.kt)("p",null,"PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"red",href:"https://www.postgresql.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/what-is-postgresql-introduction/",mdxType:"BadgeLink"},"What is PostgreSQL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=qw--VYLpxG4",mdxType:"BadgeLink"},"Learn PostgreSQL Tutorial - Full Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eMIxuk0nOkU",mdxType:"BadgeLink"},"Postgres tutorial for Beginners"))}l.isMDXComponent=!0},16468:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MySQL"),(0,r.kt)("p",null,"MySQL is an incredibly popular open source relational database management system (RDBMS). MySQL can be used as a stand-alone client or in conjunction with other services to provide database connectivity. The ",(0,r.kt)("strong",{parentName:"p"},"M")," in LAMP stack stands for MySQL; that alone should provide an idea of its prevalence."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"MySQL Website",href:"https://www.mysql.com/",mdxType:"BadgeLink"},"MySQL website"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.w3schools.com/mySQl/default.asp",mdxType:"BadgeLink"},"W3Schools - MySQL tutorial "),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=7S_tz1z_5bA",mdxType:"BadgeLink"},"MySQL tutorial for beginners"))}l.isMDXComponent=!0},40795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mariadb"))}s.isMDXComponent=!0},1485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MS SQL"),(0,r.kt)("p",null,"MS SQL (or Microsoft SQL Server) is the Microsoft developed relational database management system (RDBMS). MS SQL uses the T-SQL (Transact-SQL) query language to interact with the relational databases. There are many different versions and editions available of MS SQL"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"MS SQL Website",href:"https://www.microsoft.com/en-ca/sql-server/",mdxType:"BadgeLink"},"MS SQL website"),(0,r.kt)(i,{badgeText:"Tutorial",colorScheme:"green",href:"https://docs.microsoft.com/en-us/sql/sql-server/tutorials-for-sql-server-2016?view=sql-server-ver15",mdxType:"BadgeLink"},"Tutorials for SQL Server"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=-EPMOaV7h_Q",mdxType:"BadgeLink"},"SQL Server tutorial for beginners"))}l.isMDXComponent=!0},54528:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Oracle"))}s.isMDXComponent=!0},59539:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relational Databases"),(0,r.kt)("p",null,"A relational database is ",(0,r.kt)("strong",{parentName:"p"},"a type of database that stores and provides access to data points that are related to one another"),". Relational databases store data in a series of tables. Interconnections between the tables are specified as foreign keys. A foreign key is a unique reference from one row in a relational table to another row in a table, which can be the same table but is most commonly a different table."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/cloud/learn/relational-databases",mdxType:"BadgeLink"},"Relational Databases"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learnsql.com/blog/codd-article-databases/",mdxType:"BadgeLink"},"51 Years of Relational Databases"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.edx.org/course/databases-5-sql",mdxType:"BadgeLink"},"Databases and SQL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.udacity.com/course/intro-to-relational-databases--ud197",mdxType:"BadgeLink"},"Intro To Relational Databases"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/OqjJjpjDRLc",mdxType:"BadgeLink"},"What is Relational Database"))}l.isMDXComponent=!0},16090:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Document databases"))}s.isMDXComponent=!0},58036:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Column databases"))}s.isMDXComponent=!0},29569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Timeseries databases"))}s.isMDXComponent=!0},55005:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Realtime databases"))}s.isMDXComponent=!0},68633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NoSQL databases"),(0,r.kt)("p",null,'NoSQL databases offer data storage and retrieval that is modelled differently to "traditional" relational databases. NoSQL databases typically focus more on horizontal scaling, eventual consistency, speed and flexibility and is used commonly for big data and real-time streaming applications.\nNoSQL is often described as a BASE system (',(0,r.kt)("strong",{parentName:"p"},"B"),"asically ",(0,r.kt)("strong",{parentName:"p"},"A"),"vailable, ",(0,r.kt)("strong",{parentName:"p"},"S"),"oft state, ",(0,r.kt)("strong",{parentName:"p"},"E"),"ventual consistency) as opposed to SQL/relational which typically focus on ACID (Atomicity, Consistency, Isolation, Durability). Common NoSQL data structures include key-value pair, wide column, graph and document."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.mongodb.com/nosql-explained",mdxType:"BadgeLink"},"NoSQL Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=0buKQHokLK8",mdxType:"BadgeLink"},"How do NoSQL Databases work"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=ruz-vK8IesE",mdxType:"BadgeLink"},"SQL vs NoSQL Explained"))}l.isMDXComponent=!0},11223:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Orms"))}s.isMDXComponent=!0},98963:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"ACID"),(0,r.kt)("p",null,"ACID are the four properties of any database system that help in making sure that we are able to perform the transactions in a reliable manner. It's an acronym which refers to the presence of four properties: atomicity, consistency, isolation and durability "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=yaQ5YMWkxq4",mdxType:"BadgeLink"},"ACID Explained: Atomic, Consistent, Isolated & Durable"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://retool.com/blog/whats-an-acid-compliant-database/",mdxType:"BadgeLink"},"What is ACID Compliant Database?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://fauna.com/blog/what-is-acid-compliance-atomicity-consistency-isolation",mdxType:"BadgeLink"},"What is ACID Compliance?: Atomicity, Consistency, Isolation"))}l.isMDXComponent=!0},73696:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Transactions"))}s.isMDXComponent=!0},13381:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"N plus one problem"))}s.isMDXComponent=!0},70052:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Database normalization"))}s.isMDXComponent=!0},20290:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Database indexes"))}s.isMDXComponent=!0},89952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Data replication"))}s.isMDXComponent=!0},70188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Sharding strategies"))}s.isMDXComponent=!0},17250:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cap theorem"))}s.isMDXComponent=!0},30506:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"More about databases"))}s.isMDXComponent=!0},64361:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"REST"),(0,r.kt)("p",null,"REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.codecademy.com/article/what-is-rest",mdxType:"BadgeLink"},"What is REST?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.redhat.com/en/topics/api/what-is-a-rest-api",mdxType:"BadgeLink"},"What is a REST API?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm",mdxType:"BadgeLink"},'Roy Fielding\'s dissertation chapter, "Representational State Transfer (REST)"'))}l.isMDXComponent=!0},48567:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Json apis"))}s.isMDXComponent=!0},6277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Soap"))}s.isMDXComponent=!0},35896:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Grpc"))}s.isMDXComponent=!0},81995:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hateoas"),(0,r.kt)("p",null,"HATEOAS is an acronym for ",(0,r.kt)("b",null,"H"),"ypermedia ",(0,r.kt)("b",null,"A"),"s ",(0,r.kt)("b",null,"T"),"he ",(0,r.kt)("b",null,"E"),"ngine ",(0,r.kt)("b",null,"O"),"f ",(0,r.kt)("b",null,"A"),"pplication ",(0,r.kt)("b",null,"S"),"tate, it's the concept that when sending information over a RESTful API the document received should contain everything the client needs in order to parse and use the data i.e they don't have to contact any other endpoint not explicitly mentioned within the Document "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/MiOSzpfP1Ww?t=236",mdxType:"BadgeLink"},"Oktane17: Designing Beautiful REST + JSON APIs (3:56 - 5:57)"))}l.isMDXComponent=!0},51690:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Open api spec"))}s.isMDXComponent=!0},28558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cookie based"))}s.isMDXComponent=!0},39693:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OAuth"),(0,r.kt)("p",null,"OAuth stands for ",(0,r.kt)("strong",{parentName:"p"},"O"),"pen ",(0,r.kt)("strong",{parentName:"p"},"Auth"),'orization and is an open standard for authorization. It works to authorize devices, APIs, servers and applications using access tokens rather than user credentials, known as "secure delegated access".'),(0,r.kt)("p",null,"In its most simplest form, OAuth delegates authentication to services like Facebook, Amazon, Twitter and authorizes third-party applications to access the user account ",(0,r.kt)("strong",{parentName:"p"},"without")," having to enter their login and password."),(0,r.kt)("p",null,"It is mostly utilized for REST/APIs and only provides a limited scope of a user's data."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth",mdxType:"BadgeLink"},"Okta - What the Heck is OAuth"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2",mdxType:"BadgeLink"},"DigitalOcean - An Introduction to OAuth 2"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=t4-416mg6iU",mdxType:"BadgeLink"},"What is OAuth really all about"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=CPbvxxslDTU",mdxType:"BadgeLink"},"OAuth 2.0: An Overview"))}l.isMDXComponent=!0},86863:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 authentication"))}s.isMDXComponent=!0},88862:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Token authentication"))}s.isMDXComponent=!0},35747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"JWT"),(0,r.kt)("p",null,"JWT stands for JSON Web Token is a token-based encryption open standard/methodology that is used to transfer information securely as a JSON object. Clients and Servers use JWT to securely share information, with the JWT containing encoded JSON objects and claims. JWT tokens are designed to be compact, safe to use within URLs, and ideal for SSO contexts."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"JWT Website",href:"https://jwt.io//",mdxType:"BadgeLink"},"jwt.io Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://jwt.io/introduction",mdxType:"BadgeLink"},"Introduction to JSON Web Tokens"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.akana.com/blog/what-is-jwt",mdxType:"BadgeLink"},"What is JWT?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Q17ubqLfaM",mdxType:"BadgeLink"},"What Is JWT and Why Should You Use JWT"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=926mknSW9Lo",mdxType:"BadgeLink"},"What is JWT? JSON Web Token Explained"))}l.isMDXComponent=!0},41796:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Openid"))}s.isMDXComponent=!0},52037:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Saml"))}s.isMDXComponent=!0},16633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Authentication"))}s.isMDXComponent=!0},32790:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},8806:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CDN (Content Delivery Network)"),(0,r.kt)("p",null,"A Content Delivery Network (CDN) service aims to provide high availability and performance improvements of websites. This is achieved with fast delivery of website assets and content typically via geographically closer endpoints to the client requests.\nTraditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) provide servers across the globe which can be used for this purpose.\nServing assets and contents via a CDN reduces bandwidth on website hosting, provides an extra layer of caching to reduce potential outages and can improve website security as well"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-ca/learning/cdn/what-is-a-cdn/",mdxType:"BadgeLink"},"CloudFlare - What is a CDN? | How do CDNs work?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://en.wikipedia.org/wiki/Content_delivery_network",mdxType:"BadgeLink"},"Wikipedia - Content Delivery Network"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=841kyd_mfH0",mdxType:"BadgeLink"},"What is Cloud CDN?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Bsq5cKkS33I",mdxType:"BadgeLink"},"What is a Content Delivery Network (CDN)?"))}l.isMDXComponent=!0},69103:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Redis"))}s.isMDXComponent=!0},42024:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Memcached"))}s.isMDXComponent=!0},86326:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"))}s.isMDXComponent=!0},2954:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Client side"))}s.isMDXComponent=!0},66019:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Caching"))}s.isMDXComponent=!0},49549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MD5"),(0,r.kt)("p",null,"MD5 (Message-Digest Algorithm 5) is a hash function that is currently advised not to be used due to it's extensive vulnerabilities. It is still used as a checksum to verify data integrity."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://pl.wikipedia.org/wiki/MD5",mdxType:"BadgeLink"},"Wikipedia - MD5"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.techtarget.com/searchsecurity/definition/MD5",mdxType:"BadgeLink"},"What is MD5?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://infosecscout.com/why-md5-is-not-safe/",mdxType:"BadgeLink"},"Why is MD5 not safe?"))}l.isMDXComponent=!0},78772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Sha family"))}s.isMDXComponent=!0},54134:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bcrypt"),(0,r.kt)("p",null,"bcrypt is a password hashing function, that has proven been proven reliable and secure since it's release in 1999.It has been implemented into most commonly-used programming languages."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=O6cmuiTBZVs",mdxType:"BadgeLink"},"bcrypt explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://auth0.com/blog/hashing-in-action-understanding-bcrypt/",mdxType:"BadgeLink"},"Understanding bcrypt"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"NPM",href:"https://www.npmjs.com/package/bcrypt",mdxType:"BadgeLink"},"bcrypt's npm package"))}l.isMDXComponent=!0},26896:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Scrypt"))}s.isMDXComponent=!0},99182:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},5233:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTTPS"),(0,r.kt)("p",null,"HTTPS is a secure way to send data between a web server and a browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/",mdxType:"BadgeLink"},"What is HTTPS?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https",mdxType:"BadgeLink"},"Enabling HTTPS on Your Servers"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hExRDVZHhig",mdxType:"BadgeLink"},"SSL, TLS, HTTP, HTTPS Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=GoXgl9r0Kjk",mdxType:"BadgeLink"},"HTTPS \u2014 Stories from the field"))}l.isMDXComponent=!0},7768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cors"),(0,r.kt)("p",null,"Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS",mdxType:"BadgeLink"},"Cross-Origin Resource Sharing (CORS)"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=4KHiSt0oLJ0",mdxType:"BadgeLink"},"CORS in 100 Seconds"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=PNtFSVU-YTI",mdxType:"BadgeLink"},"CORS in 6 minutes"))}l.isMDXComponent=!0},38453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ssl tls"))}s.isMDXComponent=!0},2598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"))}s.isMDXComponent=!0},12824:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},85729:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Integration Testing"),(0,r.kt)("p",null,"Integration testing a broad category of tests where multiple software modules are ",(0,r.kt)("strong",{parentName:"p"},"integrated")," and tested as a group. It is meant to test the ",(0,r.kt)("strong",{parentName:"p"},"interaction")," between multiple services, resources, or modules. For example, an API's interaction with a backend service, or a service with a database."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/integration-testing.html",mdxType:"BadgeLink"},"Integration Testing"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/QYCaaNz8emY",mdxType:"BadgeLink"},"What is Integration Testing?"))}l.isMDXComponent=!0},53763:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Unit Testing"),(0,r.kt)("p",null,"Unit testing is where individual ",(0,r.kt)("strong",{parentName:"p"},"units")," (modules, functions/methods, routines, etc.) of software are tested to ensure their correctness. This low-level testing ensures smaller components are functionally sound while taking the burden off of higher-level tests. Generally, a developer writes these tests during the development process and they are run as automated tests."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/unit-testing-guide.html",mdxType:"BadgeLink"},"Unit Testing Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/3kzHmaeozDI",mdxType:"BadgeLink"},"What is Unit Testing?"))}l.isMDXComponent=!0},78764:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Functional Testing"),(0,r.kt)("p",null,"Functional testing is where software is tested to ensure functional requirements are met. Usually, it is a form of black box testing in which the tester has no understanding of the source code; testing is performed by providing input and comparing expected/actual output.\nIt contrasts with non-functional testing, which includes performance, load, scalability, and penetration testing."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/functional-testing.html",mdxType:"BadgeLink"},"What is Functional Testing?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/j_79AXkG4PY",mdxType:"BadgeLink"},"Functional Testing vs Non-Functional Testing"))}l.isMDXComponent=!0},10584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing"),(0,r.kt)("p",null,"A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/software-testing-introduction-importance.html",mdxType:"BadgeLink"},"What is Software Testing?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.browserstack.com/guide/testing-pyramid-for-test-automation",mdxType:"BadgeLink"},"Testing Pyramid"))}l.isMDXComponent=!0},82019:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CI/CD"),(0,r.kt)("p",null,"CI/CD (Continuous Integration/Continuous Deployment) is the practice of automating building, testing, and deployment of applications with the main goal of detecting issues early, and provide quicker releases to the production environment."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=scEDHsr3APg",mdxType:"BadgeLink"},"DevOps CI/CD Explained in 100 Seconds by Fireship"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=nyKZTKQS_EQ",mdxType:"BadgeLink"},"Automate your Workflows with GitHub Actions"))}l.isMDXComponent=!0},65392:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Design Patterns"),(0,r.kt)("p",null,"Design patterns are typical solutions to commonly occurring problems in software design. They can be broken into three categories: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Creational Patterns for the creation of objects"),(0,r.kt)("li",{parentName:"ul"},"Structural Patterns to provide relationship between objects"),(0,r.kt)("li",{parentName:"ul"},"Behavioral Patterns to help define how objects interact")),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://github.com/kamranahmedse/design-patterns-for-humans",mdxType:"BadgeLink"},"Design Patterns for Humans"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://springframework.guru/gang-of-four-design-patterns/",mdxType:"BadgeLink"},"GOF design patterns"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://refactoring.guru/design-patterns",mdxType:"BadgeLink"},"Design Patterns"))}l.isMDXComponent=!0},1024:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Domain driven design"))}s.isMDXComponent=!0},18712:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Test Driven Development"),(0,r.kt)("p",null,"Test driven development (TDD) is the process of writing tests for software's requirements which will fail until the software is developed to meet those requirements. Once those tests pass, then the cycle repeats to refactor code or develop another feature/requirement. In theory, this ensures that software is written to meet requirements in the simplest form, and avoids code defects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/test-driven-development.html",mdxType:"BadgeLink"},"What is Test Driven Development (TDD)?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/",mdxType:"BadgeLink"},"Test-driven development"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/uGaNkTahrIw",mdxType:"BadgeLink"},"Agile in Practice: Test Driven Development"))}l.isMDXComponent=!0},32506:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"SOLID"),(0,r.kt)("p",null,"SOLID is a set of principles applied to object-oriented design (OOD) to create maintainable, understandable, and flexible code, while avoiding code smells and defects. The principles are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Single Responsibility"),(0,r.kt)("li",{parentName:"ul"},"Open/Closed"),(0,r.kt)("li",{parentName:"ul"},"Liskov Substitution"),(0,r.kt)("li",{parentName:"ul"},"Interface Segregation"),(0,r.kt)("li",{parentName:"ul"},"Dependency Inversion")),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Original Paper",href:"https://web.archive.org/web/20150906155800/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf",mdxType:"BadgeLink"},"Design Principles and Design Patterns"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.baeldung.com/solid-principles",mdxType:"BadgeLink"},"SOLID Principles"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design",mdxType:"BadgeLink"},"SOLID: The First 5 Principles of Object Oriented Design"))}l.isMDXComponent=!0},35992:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"KISS"),(0,r.kt)("p",null,"Keep It Simple, Stupid (KISS) is a software design principle that states avoiding needless complexity is the best way to build software that is easier to maintain, understand, and contains fewer defects. A simple product that does a single thing well is better than a complex product that does many things poorly."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://deviq.com/principles/keep-it-simple",mdxType:"BadgeLink"},"Keep It Simple"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.interaction-design.org/literature/topics/keep-it-simple-stupid",mdxType:"BadgeLink"},"Keep It Simple, Stupid (Kiss)"))}l.isMDXComponent=!0},45279:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"YAGNI"),(0,r.kt)("p",null,"You Aren't Going to Need It (YAGNI) is a software design principle from the Extreme Programming (XP) framework that states when developing software, functionality or features should not be added until they are necessary. Within agile software development in general, requirements are always open to change; any extra functionality may end up being wasted time and resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://martinfowler.com/bliki/Yagni.html",mdxType:"BadgeLink"},"Yagni"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://deviq.com/principles/yagni",mdxType:"BadgeLink"},"YAGNI"))}l.isMDXComponent=!0},19444:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DRY"),(0,r.kt)("p",null,"Don't Repeat Yourself (DRY) is a software design principle which encourages developers to not repeat software patterns or code. DRY encourages code reusability, often in the form of methods, functions, or subroutines. When DRY is implemented successfully, developers are able to make one change to update many related elements while avoiding making changes to unrelated elements."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://dzone.com/articles/software-design-principles-dry-and-kiss",mdxType:"BadgeLink"},"Software Design Principles DRY and KISS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745#s5",mdxType:"BadgeLink"},"Best Practices for Scientific Computing"))}l.isMDXComponent=!0},6828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Design and development principles"))}s.isMDXComponent=!0},90413:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Monolithic Apps"),(0,r.kt)("p",null,"Monolithic architecture is a pattern in which an application handles requests, executes business logic, interacts with the database, and creates the HTML for the front end. In simpler terms, this one application does many things. It's inner components are highly coupled and deployed as one unit."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://microservices.io/patterns/monolithic.html",mdxType:"BadgeLink"},"Pattern: Monolithic Architecture"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://datamify.medium.com/monolithic-architecture-advantages-and-disadvantages-e71a603eec89",mdxType:"BadgeLink"},"Monolithic Architecture - Advantages & Disadvantages"))}l.isMDXComponent=!0},59107:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Microservices"),(0,r.kt)("p",null,"Microservice architecture is a pattern in which highly cohesive, loosely coupled services are separately developed, maintained, and deployed. Each component handles an individual function, and when combined, the application handles an overall business function."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://microservices.io/patterns/microservices.html",mdxType:"BadgeLink"},"Pattern: Microservice Architecture"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://smartbear.com/solutions/microservices/",mdxType:"BadgeLink"},"What is Microservices?"))}l.isMDXComponent=!0},28227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Soa"))}s.isMDXComponent=!0},28760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cqrs"))}s.isMDXComponent=!0},96026:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Serverless"),(0,r.kt)("p",null,"Serverless is an architecture in which a developer builds and runs applications without provisioning or managing servers. With cloud computing/serverless, servers exist but are managed by the cloud provider. Resources are used as they are needed, on demand and often using auto scaling."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/cloud/learn/serverless",mdxType:"BadgeLink"},"Serverless"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://aws.amazon.com/serverless/",mdxType:"BadgeLink"},"AWS Services"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=W_VV2Fx32_Y&ab_channel=Fireship",mdxType:"BadgeLink"},"Serverless Computing in 100 Seconds"))}l.isMDXComponent=!0},2938:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Architectural patterns"))}s.isMDXComponent=!0},85569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Elasticsearch"),(0,r.kt)("p",null,"Elastic search at its core is a document-oriented search engine. It is a document based database that lets you INSERT, DELETE , RETRIEVE and even perform analytics on the saved records. But, Elastic Search is unlike any other general purpose database you have worked with, in the past. It's essentially a search engine and offers an arsenal of features you can use to retrieve the data stored in it, as per your search criteria. And that too, at lightning speeds."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.elastic.co/elasticsearch/",mdxType:"BadgeLink"},"Elasticsearch Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://www.elastic.co/guide/index.html",mdxType:"BadgeLink"},"Elasticsearch Documentation"))}l.isMDXComponent=!0},7328:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Solr"))}s.isMDXComponent=!0},79359:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Search engines"))}s.isMDXComponent=!0},93093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Rabbitmq"))}s.isMDXComponent=!0},44196:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Kafka"))}s.isMDXComponent=!0},91265:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Message brokers"))}s.isMDXComponent=!0},53797:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Docker"),(0,r.kt)("p",null,"Docker is a platform for working with containerized applications. Among its features are a daemon and client for managing and interacting with containers, registries for storing images, and a desktop application to package all these features together."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://docs.docker.com/",mdxType:"BadgeLink"},"Docker Documentation"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://aws.amazon.com/docker/",mdxType:"BadgeLink"},"What is Docker | AWS "),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/3c-iBn73dDE",mdxType:"BadgeLink"},"Docker Tutorial"))}l.isMDXComponent=!0},82153:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Rkt"))}s.isMDXComponent=!0},12998:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Lxc"))}s.isMDXComponent=!0},57485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Containerization"))}s.isMDXComponent=!0},5373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79033:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},33620:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},47898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Neo4j"))}s.isMDXComponent=!0},78826:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Graph databases"))}s.isMDXComponent=!0},6084:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 sockets"))}s.isMDXComponent=!0},34821:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Nginx"))}s.isMDXComponent=!0},55293:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apache"),(0,r.kt)("p",null,"Apache is a free, open-source HTTP server, available on many operating systems, but mainly used on Linux distributions. It is one of the most popular options for web developers, as it accounts for over 30% of all the websites, as estimated by W3Techs."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://httpd.apache.org/",mdxType:"BadgeLink"},"Apache Server Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=kaaenHXO4t4",mdxType:"BadgeLink"},"What is Apache Web Server?"))}l.isMDXComponent=!0},28549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Caddy"))}s.isMDXComponent=!0},297:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ms iis"))}s.isMDXComponent=!0},94521:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 servers"))}s.isMDXComponent=!0},78878:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mitigation strategies"))}s.isMDXComponent=!0},52928:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Instrumentation monitoring telemetry"))}s.isMDXComponent=!0},50760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Migration strategies"))}s.isMDXComponent=!0},80576:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Horizontal/Vertical Scaling"),(0,r.kt)("p",null,"Horizontal scaling is a change in the ",(0,r.kt)("strong",{parentName:"p"},"number")," of a resource. For example, increasing the number of virtual machines processing messages in a queue. Vertical scaling is a change in the ",(0,r.kt)("strong",{parentName:"p"},"size/power")," of a resource. For example, increasing the memory or disk space available to a machine. Scaling can be applied to databases, cloud resources, and other areas of computing."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/xpDnVSmNFX0",mdxType:"BadgeLink"},"System Design Basics: Horizontal vs. Vertical Scaling"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Y-Gl4HEyeUQ",mdxType:"BadgeLink"},"System Design 101"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://touchstonesecurity.com/horizontal-vs-vertical-scaling-what-you-need-to-know/",mdxType:"BadgeLink"},"Horizontal vs Vertical Scaling"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.geeksforgeeks.org/horizontal-and-vertical-scaling-in-databases/",mdxType:"BadgeLink"},"Scaling In Databases"))}l.isMDXComponent=!0},54572:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Observability"))}s.isMDXComponent=!0},99222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Scalability"))}s.isMDXComponent=!0},51403:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},78093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},34558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},20063:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},67489:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65191:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},97890:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},69556:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},62388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79101:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},57913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79673:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},51464:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},48188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},91048:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},44894:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},49598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},58712: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"}]')},19552: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":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}]')},18359: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","testing-your-apps:mocha":"/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md","testing-your-apps:chai":"/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md","testing-your-apps:ava":"/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md","testing-your-apps:jasmine":"/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.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"}')},39258:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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"}')},33309:function(e){"use strict";e.exports=JSON.parse('{"home":"/roadmaps/101-backend/content/readme.md","internet":"/roadmaps/101-backend/content/100-internet/readme.md","internet:how-does-the-internet-work":"/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md","internet:what-is-http":"/roadmaps/101-backend/content/100-internet/101-what-is-http.md","internet:browsers-and-how-they-work":"/roadmaps/101-backend/content/100-internet/102-browsers-and-how-they-work.md","internet:dns-and-how-it-works":"/roadmaps/101-backend/content/100-internet/103-dns-and-how-it-works.md","internet:what-is-domain-name":"/roadmaps/101-backend/content/100-internet/104-what-is-domain-name.md","internet:what-is-hosting":"/roadmaps/101-backend/content/100-internet/105-what-is-hosting.md","basic-frontend":"/roadmaps/101-backend/content/101-basic-frontend/readme.md","basic-frontend:html":"/roadmaps/101-backend/content/101-basic-frontend/100-html.md","basic-frontend:css":"/roadmaps/101-backend/content/101-basic-frontend/101-css.md","basic-frontend:javascript":"/roadmaps/101-backend/content/101-basic-frontend/102-javascript.md","os-general-knowledge":"/roadmaps/101-backend/content/102-os-general-knowledge/readme.md","os-general-knowledge:terminal-usage":"/roadmaps/101-backend/content/102-os-general-knowledge/100-terminal-usage.md","os-general-knowledge:how-oss-work-in-general":"/roadmaps/101-backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md","os-general-knowledge:process-management":"/roadmaps/101-backend/content/102-os-general-knowledge/102-process-management.md","os-general-knowledge:threads-and-concurrency":"/roadmaps/101-backend/content/102-os-general-knowledge/103-threads-and-concurrency.md","os-general-knowledge:basic-terminal-commands":"/roadmaps/101-backend/content/102-os-general-knowledge/104-basic-terminal-commands.md","os-general-knowledge:memory-management":"/roadmaps/101-backend/content/102-os-general-knowledge/105-memory-management.md","os-general-knowledge:interprocess-communication":"/roadmaps/101-backend/content/102-os-general-knowledge/106-interprocess-communication.md","os-general-knowledge:io-management":"/roadmaps/101-backend/content/102-os-general-knowledge/107-io-management.md","os-general-knowledge:posix-basics":"/roadmaps/101-backend/content/102-os-general-knowledge/108-posix-basics.md","os-general-knowledge:basic-networking-concepts":"/roadmaps/101-backend/content/102-os-general-knowledge/109-basic-networking-concepts.md","learn-a-language":"/roadmaps/101-backend/content/103-learn-a-language/readme.md","learn-a-language:go":"/roadmaps/101-backend/content/103-learn-a-language/100-go.md","learn-a-language:rust":"/roadmaps/101-backend/content/103-learn-a-language/101-rust.md","learn-a-language:java":"/roadmaps/101-backend/content/103-learn-a-language/102-java.md","learn-a-language:csharp":"/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md","learn-a-language:php":"/roadmaps/101-backend/content/103-learn-a-language/103-php.md","learn-a-language:javascript":"/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md","learn-a-language:python":"/roadmaps/101-backend/content/103-learn-a-language/106-python.md","learn-a-language:ruby":"/roadmaps/101-backend/content/103-learn-a-language/107-ruby.md","version-control-systems":"/roadmaps/101-backend/content/104-version-control-systems/readme.md","version-control-systems:git":"/roadmaps/101-backend/content/104-version-control-systems/100-basic-usage-of-git.md","repo-hosting-services":"/roadmaps/101-backend/content/105-repo-hosting-services/readme.md","repo-hosting-services:github":"/roadmaps/101-backend/content/105-repo-hosting-services/100-github.md","repo-hosting-services:gitlab":"/roadmaps/101-backend/content/105-repo-hosting-services/101-gitlab.md","repo-hosting-services:bitbucket":"/roadmaps/101-backend/content/105-repo-hosting-services/102-bitbucket.md","relational-databases":"/roadmaps/101-backend/content/106-relational-databases/readme.md","relational-databases:postgresql":"/roadmaps/101-backend/content/106-relational-databases/100-postgresql.md","relational-databases:mysql":"/roadmaps/101-backend/content/106-relational-databases/101-mysql.md","relational-databases:mariadb":"/roadmaps/101-backend/content/106-relational-databases/102-mariadb.md","relational-databases:mssql":"/roadmaps/101-backend/content/106-relational-databases/103-mssql.md","relational-databases:oracle":"/roadmaps/101-backend/content/106-relational-databases/104-oracle.md","nosql-databases":"/roadmaps/101-backend/content/107-nosql-databases/readme.md","nosql-databases:document-databases":"/roadmaps/101-backend/content/107-nosql-databases/100-document-databases.md","nosql-databases:column-databases":"/roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md","nosql-databases:timeseries-databases":"/roadmaps/101-backend/content/107-nosql-databases/102-timeseries-databases.md","nosql-databases:realtime-databases":"/roadmaps/101-backend/content/107-nosql-databases/103-realtime-databases.md","more-about-databases":"/roadmaps/101-backend/content/108-more-about-databases/readme.md","more-about-databases:orms":"/roadmaps/101-backend/content/108-more-about-databases/100-orms.md","more-about-databases:acid":"/roadmaps/101-backend/content/108-more-about-databases/101-acid.md","more-about-databases:transactions":"/roadmaps/101-backend/content/108-more-about-databases/102-transactions.md","more-about-databases:n-plus-one-problem":"/roadmaps/101-backend/content/108-more-about-databases/103-n-plus-one-problem.md","more-about-databases:database-normalization":"/roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md","more-about-databases:database-indexes":"/roadmaps/101-backend/content/108-more-about-databases/105-database-indexes.md","more-about-databases:data-replication":"/roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md","more-about-databases:sharding-strategies":"/roadmaps/101-backend/content/108-more-about-databases/107-sharding-strategies.md","more-about-databases:cap-theorem":"/roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md","apis":"/roadmaps/101-backend/content/109-apis/readme.md","apis:rest":"/roadmaps/101-backend/content/109-apis/100-rest.md","apis:json-apis":"/roadmaps/101-backend/content/109-apis/101-json-apis.md","apis:soap":"/roadmaps/101-backend/content/109-apis/102-soap.md","apis:grpc":"/roadmaps/101-backend/content/109-apis/103-grpc.md","apis:hateoas":"/roadmaps/101-backend/content/109-apis/104-hateoas.md","apis:open-api-spec":"/roadmaps/101-backend/content/109-apis/105-open-api-spec.md","apis:authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/readme.md","apis:authentication:cookie-based":"/roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md","apis:authentication:oauth":"/roadmaps/101-backend/content/109-apis/106-authentication/101-oauth.md","apis:authentication:basic-authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/102-basic-authentication.md","apis:authentication:token-authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/103-token-authentication.md","apis:authentication:jwt":"/roadmaps/101-backend/content/109-apis/106-authentication/104-jwt.md","apis:authentication:openid":"/roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md","apis:authentication:saml":"/roadmaps/101-backend/content/109-apis/106-authentication/105-saml.md","caching":"/roadmaps/101-backend/content/110-caching/readme.md","caching:cdn":"/roadmaps/101-backend/content/110-caching/100-cdn.md","caching:server-side":"/roadmaps/101-backend/content/110-caching/101-server-side/readme.md","caching:server-side:redis":"/roadmaps/101-backend/content/110-caching/101-server-side/100-redis.md","caching:server-side:memcached":"/roadmaps/101-backend/content/110-caching/101-server-side/101-memcached.md","caching:client-side":"/roadmaps/101-backend/content/110-caching/102-client-side.md","web-security-knowledge":"/roadmaps/101-backend/content/111-web-security-knowledge/readme.md","web-security-knowledge:md5":"/roadmaps/101-backend/content/111-web-security-knowledge/100-md5.md","web-security-knowledge:sha-family":"/roadmaps/101-backend/content/111-web-security-knowledge/101-sha-family.md","web-security-knowledge:bcrypt":"/roadmaps/101-backend/content/111-web-security-knowledge/102-bcrypt.md","web-security-knowledge:scrypt":"/roadmaps/101-backend/content/111-web-security-knowledge/104-scrypt.md","web-security-knowledge:https":"/roadmaps/101-backend/content/111-web-security-knowledge/105-https.md","web-security-knowledge:content-security-policy":"/roadmaps/101-backend/content/111-web-security-knowledge/105-content-security-policy.md","web-security-knowledge:cors":"/roadmaps/101-backend/content/111-web-security-knowledge/106-cors.md","web-security-knowledge:ssl-tls":"/roadmaps/101-backend/content/111-web-security-knowledge/107-ssl-tls.md","web-security-knowledge:owasp":"/roadmaps/101-backend/content/111-web-security-knowledge/108-owasp.md","testing":"/roadmaps/101-backend/content/112-testing/readme.md","testing:integration-testing":"/roadmaps/101-backend/content/112-testing/100-integration-testing.md","testing:unit-testing":"/roadmaps/101-backend/content/112-testing/101-unit-testing.md","testing:functional-testing":"/roadmaps/101-backend/content/112-testing/102-functional-testing.md","ci-cd":"/roadmaps/101-backend/content/113-ci-cd.md","design-and-development-principles":"/roadmaps/101-backend/content/114-design-and-development-principles/readme.md","design-and-development-principles:gof-design-patterns":"/roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md","design-and-development-principles:domain-driven-design":"/roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md","design-and-development-principles:test-driven-development":"/roadmaps/101-backend/content/114-design-and-development-principles/102-test-driven-development.md","design-and-development-principles:solid":"/roadmaps/101-backend/content/114-design-and-development-principles/103-solid.md","design-and-development-principles:kiss":"/roadmaps/101-backend/content/114-design-and-development-principles/104-kiss.md","design-and-development-principles:yagni":"/roadmaps/101-backend/content/114-design-and-development-principles/105-yagni.md","design-and-development-principles:dry":"/roadmaps/101-backend/content/114-design-and-development-principles/106-dry.md","architectural-patterns":"/roadmaps/101-backend/content/115-architectural-patterns/readme.md","architectural-patterns:monolithic-apps":"/roadmaps/101-backend/content/115-architectural-patterns/100-monolithic-apps.md","architectural-patterns:microservices":"/roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md","architectural-patterns:soa":"/roadmaps/101-backend/content/115-architectural-patterns/102-soa.md","architectural-patterns:cqrs":"/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md","architectural-patterns:serverless":"/roadmaps/101-backend/content/115-architectural-patterns/104-serverless.md","search-engines":"/roadmaps/101-backend/content/116-search-engines/readme.md","search-engines:elasticsearch":"/roadmaps/101-backend/content/116-search-engines/100-elasticsearch.md","search-engines:solr":"/roadmaps/101-backend/content/116-search-engines/101-solr.md","message-brokers":"/roadmaps/101-backend/content/117-message-brokers/readme.md","message-brokers:rabbitmq":"/roadmaps/101-backend/content/117-message-brokers/100-rabbitmq.md","message-brokers:kafka":"/roadmaps/101-backend/content/117-message-brokers/101-kafka.md","containerization":"/roadmaps/101-backend/content/118-containerization/readme.md","containerization:docker":"/roadmaps/101-backend/content/118-containerization/100-docker.md","containerization:rkt":"/roadmaps/101-backend/content/118-containerization/101-rkt.md","containerization:lxc":"/roadmaps/101-backend/content/118-containerization/102-lxc.md","graphql":"/roadmaps/101-backend/content/119-graphql/readme.md","graphql:apollo":"/roadmaps/101-backend/content/119-graphql/100-apollo.md","graphql:relay-modern":"/roadmaps/101-backend/content/119-graphql/101-relay-modern.md","graph-databases":"/roadmaps/101-backend/content/120-graph-databases/readme.md","graph-databases:neo4j":"/roadmaps/101-backend/content/120-graph-databases/100-neo4j.md","web-sockets":"/roadmaps/101-backend/content/121-web-sockets.md","web-servers":"/roadmaps/101-backend/content/122-web-servers/readme.md","web-servers:nginx":"/roadmaps/101-backend/content/122-web-servers/100-nginx.md","web-servers:apache":"/roadmaps/101-backend/content/122-web-servers/101-apache.md","web-servers:caddy":"/roadmaps/101-backend/content/122-web-servers/102-caddy.md","web-servers:ms-iis":"/roadmaps/101-backend/content/122-web-servers/103-ms-iis.md","scalability":"/roadmaps/101-backend/content/123-scalability/readme.md","scalability:mitigation-strategies":"/roadmaps/101-backend/content/123-scalability/100-mitigation-strategies.md","scalability:instrumentation-monitoring-telemetry":"/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md","scalability:migration-strategies":"/roadmaps/101-backend/content/123-scalability/102-migration-strategies.md","scalability:horizontal-vertial-scaling":"/roadmaps/101-backend/content/123-scalability/103-horizontal-vertial-scaling.md","scalability:observability":"/roadmaps/101-backend/content/123-scalability/104-observability.md"}')},76782:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"./resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"./content-paths.json"}')},54017: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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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"}')},88477: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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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"}')},19508: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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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"}}')},34099: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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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"}}')},82737: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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"}}')},62507: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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"}')},88951: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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[]}')},67559: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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"}}')},83204: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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"}}')},91797:function(e){"use strict";e.exports=JSON.parse('[{"id":"queue-data-structure","title":"Queue Data Structure","description":"Learn everything you need to know about the queue data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=mDCi1lXd9hc","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2022-02-14T19:59:14.191Z","createdAt":"2022-02-14T19:59:14.191Z"},{"id":"stack-data-structure","title":"Stack Data Structure","description":"Learn everything you need to know about the stack data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=I5lq6sCuABE","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2022-02-07T19:59:14.191Z","createdAt":"2022-02-07T19:59:14.191Z"},{"id":"linked-list-data-structure","title":"Linked List Data Structure","description":"Learn everything you need to know about linked list data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=odW9FU8jPRQ","authorUsername":"kamranahmedse","duration":"11 minutes","updatedAt":"2022-01-31T19:59:14.191Z","createdAt":"2022-01-31T19:59:14.191Z"},{"id":"array-structure","title":"All about Array Data Structure","description":"Learn everything you need to know about array data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=QJNwK2uJyGs","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2022-01-09T19:59:14.191Z","createdAt":"2022-01-09T19:59:14.191Z"},{"id":"what-are-data-structures","title":"What are Data Structures?","description":"Learn about the different data structures in this illustrated series","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=9rhT3P1MDHk","authorUsername":"kamranahmedse","duration":"1 minute","updatedAt":"2021-12-12T19:59:14.191Z","createdAt":"2021-12-12T19:59:14.191Z"},{"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-b46493f2a88f5f68.js b/_next/static/chunks/280-b46493f2a88f5f68.js deleted file mode 100644 index 42027e3eb..000000000 --- a/_next/static/chunks/280-b46493f2a88f5f68.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[280],{79280:function(e,t,n){var r={"./authors":58712,"./authors.json":58712,"./guides":19552,"./guides.json":19552,"./guides/asymptotic-notation.md":43070,"./guides/avoid-render-blocking-javascript-with-async-defer.md":58829,"./guides/basic-authentication.md":15151,"./guides/big-o-notation.md":55198,"./guides/character-encodings.md":33180,"./guides/ci-cd.md":77354,"./guides/design-patterns-for-humans.md":13406,"./guides/dhcp-in-one-picture.md":33784,"./guides/dns-in-one-picture.md":9937,"./guides/history-of-javascript.md":98003,"./guides/http-caching.md":69128,"./guides/journey-to-http2.md":43045,"./guides/jwt-authentication.md":25772,"./guides/levels-of-seniority.md":33878,"./guides/oauth.md":90801,"./guides/project-history.md":46681,"./guides/proxy-servers.md":37035,"./guides/random-numbers.md":513,"./guides/scaling-databases.md":87507,"./guides/session-authentication.md":18676,"./guides/ssl-tls-https-ssh.md":86053,"./guides/sso.md":9809,"./guides/token-authentication.md":85607,"./guides/torrent-client.md":53406,"./guides/unfamiliar-codebase.md":15941,"./guides/upcoming.md":85104,"./guides/what-are-web-vitals.md":93442,"./guides/what-is-internet.md":1470,"./guides/what-is-sli-slo-sla.md":71307,"./guides/why-build-it-and-they-will-come-wont-work-anymore.md":19554,"./pages/about.md":74160,"./pages/privacy.md":25591,"./pages/terms.md":32547,"./roadmaps":1662,"./roadmaps.json":1662,"./roadmaps/100-frontend/content-paths":18359,"./roadmaps/100-frontend/content-paths.json":18359,"./roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md":65606,"./roadmaps/100-frontend/content/100-internet/101-what-is-http.md":40181,"./roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md":66152,"./roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md":13405,"./roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md":2222,"./roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md":48129,"./roadmaps/100-frontend/content/100-internet/readme.md":62633,"./roadmaps/100-frontend/content/101-html/100-learn-the-basics.md":17828,"./roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md":90258,"./roadmaps/100-frontend/content/101-html/102-forms-and-validations.md":40757,"./roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md":31881,"./roadmaps/100-frontend/content/101-html/104-accessibility.md":23699,"./roadmaps/100-frontend/content/101-html/105-seo-basics.md":20584,"./roadmaps/100-frontend/content/101-html/readme.md":33913,"./roadmaps/100-frontend/content/102-css/100-learn-the-basics.md":88533,"./roadmaps/100-frontend/content/102-css/101-making-layouts.md":13780,"./roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md":41118,"./roadmaps/100-frontend/content/102-css/readme.md":35211,"./roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md":30617,"./roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md":51569,"./roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md":74746,"./roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md":66401,"./roadmaps/100-frontend/content/103-javascript/104-concepts.md":82698,"./roadmaps/100-frontend/content/103-javascript/readme.md":8613,"./roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md":42555,"./roadmaps/100-frontend/content/104-version-control-systems/readme.md":8405,"./roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md":58548,"./roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md":41952,"./roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md":56145,"./roadmaps/100-frontend/content/105-repo-hosting-services/readme.md":40493,"./roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md":62510,"./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":38705,"./roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md":98633,"./roadmaps/100-frontend/content/106-web-security-knowledge/readme.md":49012,"./roadmaps/100-frontend/content/107-package-managers/100-npm.md":61415,"./roadmaps/100-frontend/content/107-package-managers/101-yarn.md":16356,"./roadmaps/100-frontend/content/107-package-managers/readme.md":88988,"./roadmaps/100-frontend/content/108-css-architecture/100-bem.md":86665,"./roadmaps/100-frontend/content/108-css-architecture/101-oocss.md":21750,"./roadmaps/100-frontend/content/108-css-architecture/102-smacss.md":58887,"./roadmaps/100-frontend/content/108-css-architecture/readme.md":45220,"./roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md":84447,"./roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md":85106,"./roadmaps/100-frontend/content/109-css-preprocessors/102-less.md":22972,"./roadmaps/100-frontend/content/109-css-preprocessors/readme.md":68365,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md":86523,"./roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md":88664,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md":86795,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md":19500,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md":5104,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md":25648,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md":20762,"./roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md":76459,"./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":62816,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md":74453,"./roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md":82310,"./roadmaps/100-frontend/content/110-build-tools/readme.md":37093,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md":57139,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md":25783,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md":57810,"./roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md":96199,"./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":13162,"./roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md":23666,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md":80549,"./roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md":85277,"./roadmaps/100-frontend/content/111-pick-a-framework/readme.md":91473,"./roadmaps/100-frontend/content/112-modern-css/100-styled-components.md":73745,"./roadmaps/100-frontend/content/112-modern-css/101-css-modules.md":51720,"./roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md":24349,"./roadmaps/100-frontend/content/112-modern-css/103-emotion.md":14291,"./roadmaps/100-frontend/content/112-modern-css/readme.md":59904,"./roadmaps/100-frontend/content/113-web-components/100-html-templates.md":41484,"./roadmaps/100-frontend/content/113-web-components/101-custom-elements.md":16625,"./roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md":32901,"./roadmaps/100-frontend/content/113-web-components/readme.md":58933,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md":94642,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md":14505,"./roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md":94740,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md":21160,"./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":99120,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md":13694,"./roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md":17562,"./roadmaps/100-frontend/content/114-css-frameworks/readme.md":21879,"./roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md":25996,"./roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md":42772,"./roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md":73431,"./roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md":44375,"./roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md":64946,"./roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md":69011,"./roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md":95136,"./roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md":30327,"./roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md":68976,"./roadmaps/100-frontend/content/115-testing-your-apps/readme.md":25770,"./roadmaps/100-frontend/content/116-type-checkers/100-typescript.md":83227,"./roadmaps/100-frontend/content/116-type-checkers/101-flow.md":79935,"./roadmaps/100-frontend/content/116-type-checkers/readme.md":98323,"./roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md":54990,"./roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md":95089,"./roadmaps/100-frontend/content/117-progressive-web-apps/readme.md":72768,"./roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md":99086,"./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":88747,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md":67815,"./roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md":26394,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md":62573,"./roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md":35137,"./roadmaps/100-frontend/content/118-server-side-rendering/readme.md":71905,"./roadmaps/100-frontend/content/119-graphql/100-apollo.md":60410,"./roadmaps/100-frontend/content/119-graphql/101-relay-modern.md":60485,"./roadmaps/100-frontend/content/119-graphql/readme.md":24133,"./roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md":57935,"./roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md":1291,"./roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md":20855,"./roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md":32374,"./roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md":51898,"./roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md":90355,"./roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md":82578,"./roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md":80476,"./roadmaps/100-frontend/content/120-static-site-generators/readme.md":35470,"./roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md":52919,"./roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md":15760,"./roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md":59268,"./roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md":17280,"./roadmaps/100-frontend/content/121-mobile-applications/readme.md":20388,"./roadmaps/100-frontend/content/122-desktop-applications/100-electron.md":37137,"./roadmaps/100-frontend/content/122-desktop-applications/101-carlo.md":30373,"./roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md":55588,"./roadmaps/100-frontend/content/122-desktop-applications/readme.md":78773,"./roadmaps/100-frontend/content/123-web-assembly.md":9429,"./roadmaps/100-frontend/content/readme.md":17086,"./roadmaps/100-frontend/meta":39258,"./roadmaps/100-frontend/meta.json":39258,"./roadmaps/100-frontend/resources.md":47083,"./roadmaps/101-backend/content-paths":33309,"./roadmaps/101-backend/content-paths.json":33309,"./roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md":31921,"./roadmaps/101-backend/content/100-internet/101-what-is-http.md":24765,"./roadmaps/101-backend/content/100-internet/102-browsers-and-how-they-work.md":98817,"./roadmaps/101-backend/content/100-internet/103-dns-and-how-it-works.md":60450,"./roadmaps/101-backend/content/100-internet/104-what-is-domain-name.md":98402,"./roadmaps/101-backend/content/100-internet/105-what-is-hosting.md":52573,"./roadmaps/101-backend/content/100-internet/readme.md":91812,"./roadmaps/101-backend/content/101-basic-frontend/100-html.md":56363,"./roadmaps/101-backend/content/101-basic-frontend/101-css.md":91440,"./roadmaps/101-backend/content/101-basic-frontend/102-javascript.md":65898,"./roadmaps/101-backend/content/101-basic-frontend/readme.md":80760,"./roadmaps/101-backend/content/102-os-general-knowledge/100-terminal-usage.md":43869,"./roadmaps/101-backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md":55739,"./roadmaps/101-backend/content/102-os-general-knowledge/102-process-management.md":25210,"./roadmaps/101-backend/content/102-os-general-knowledge/103-threads-and-concurrency.md":73693,"./roadmaps/101-backend/content/102-os-general-knowledge/104-basic-terminal-commands.md":72175,"./roadmaps/101-backend/content/102-os-general-knowledge/105-memory-management.md":62300,"./roadmaps/101-backend/content/102-os-general-knowledge/106-interprocess-communication.md":94668,"./roadmaps/101-backend/content/102-os-general-knowledge/107-io-management.md":86789,"./roadmaps/101-backend/content/102-os-general-knowledge/108-posix-basics.md":39736,"./roadmaps/101-backend/content/102-os-general-knowledge/109-basic-networking-concepts.md":47142,"./roadmaps/101-backend/content/102-os-general-knowledge/readme.md":98419,"./roadmaps/101-backend/content/103-learn-a-language/100-go.md":75063,"./roadmaps/101-backend/content/103-learn-a-language/101-rust.md":4332,"./roadmaps/101-backend/content/103-learn-a-language/102-java.md":76017,"./roadmaps/101-backend/content/103-learn-a-language/103-csharp.md":99855,"./roadmaps/101-backend/content/103-learn-a-language/103-php.md":80110,"./roadmaps/101-backend/content/103-learn-a-language/105-javascript.md":30174,"./roadmaps/101-backend/content/103-learn-a-language/106-python.md":82331,"./roadmaps/101-backend/content/103-learn-a-language/107-ruby.md":4236,"./roadmaps/101-backend/content/103-learn-a-language/readme.md":22533,"./roadmaps/101-backend/content/104-version-control-systems/100-basic-usage-of-git.md":63163,"./roadmaps/101-backend/content/104-version-control-systems/readme.md":32223,"./roadmaps/101-backend/content/105-repo-hosting-services/100-github.md":66926,"./roadmaps/101-backend/content/105-repo-hosting-services/101-gitlab.md":11425,"./roadmaps/101-backend/content/105-repo-hosting-services/102-bitbucket.md":94448,"./roadmaps/101-backend/content/105-repo-hosting-services/readme.md":1973,"./roadmaps/101-backend/content/106-relational-databases/100-postgresql.md":29982,"./roadmaps/101-backend/content/106-relational-databases/101-mysql.md":16468,"./roadmaps/101-backend/content/106-relational-databases/102-mariadb.md":40795,"./roadmaps/101-backend/content/106-relational-databases/103-mssql.md":1485,"./roadmaps/101-backend/content/106-relational-databases/104-oracle.md":54528,"./roadmaps/101-backend/content/106-relational-databases/readme.md":59539,"./roadmaps/101-backend/content/107-nosql-databases/100-document-databases.md":16090,"./roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md":58036,"./roadmaps/101-backend/content/107-nosql-databases/102-timeseries-databases.md":29569,"./roadmaps/101-backend/content/107-nosql-databases/103-realtime-databases.md":55005,"./roadmaps/101-backend/content/107-nosql-databases/readme.md":68633,"./roadmaps/101-backend/content/108-more-about-databases/100-orms.md":11223,"./roadmaps/101-backend/content/108-more-about-databases/101-acid.md":98963,"./roadmaps/101-backend/content/108-more-about-databases/102-transactions.md":73696,"./roadmaps/101-backend/content/108-more-about-databases/103-n-plus-one-problem.md":13381,"./roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md":70052,"./roadmaps/101-backend/content/108-more-about-databases/105-database-indexes.md":20290,"./roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md":89952,"./roadmaps/101-backend/content/108-more-about-databases/107-sharding-strategies.md":70188,"./roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md":17250,"./roadmaps/101-backend/content/108-more-about-databases/readme.md":30506,"./roadmaps/101-backend/content/109-apis/100-rest.md":64361,"./roadmaps/101-backend/content/109-apis/101-json-apis.md":48567,"./roadmaps/101-backend/content/109-apis/102-soap.md":6277,"./roadmaps/101-backend/content/109-apis/103-grpc.md":35896,"./roadmaps/101-backend/content/109-apis/104-hateoas.md":81995,"./roadmaps/101-backend/content/109-apis/105-open-api-spec.md":51690,"./roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md":28558,"./roadmaps/101-backend/content/109-apis/106-authentication/101-oauth.md":39693,"./roadmaps/101-backend/content/109-apis/106-authentication/102-basic-authentication.md":86863,"./roadmaps/101-backend/content/109-apis/106-authentication/103-token-authentication.md":88862,"./roadmaps/101-backend/content/109-apis/106-authentication/104-jwt.md":35747,"./roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md":41796,"./roadmaps/101-backend/content/109-apis/106-authentication/105-saml.md":52037,"./roadmaps/101-backend/content/109-apis/106-authentication/readme.md":16633,"./roadmaps/101-backend/content/109-apis/readme.md":32790,"./roadmaps/101-backend/content/110-caching/100-cdn.md":8806,"./roadmaps/101-backend/content/110-caching/101-server-side/100-redis.md":69103,"./roadmaps/101-backend/content/110-caching/101-server-side/101-memcached.md":42024,"./roadmaps/101-backend/content/110-caching/101-server-side/readme.md":86326,"./roadmaps/101-backend/content/110-caching/102-client-side.md":2954,"./roadmaps/101-backend/content/110-caching/readme.md":66019,"./roadmaps/101-backend/content/111-web-security-knowledge/100-md5.md":49549,"./roadmaps/101-backend/content/111-web-security-knowledge/101-sha-family.md":78772,"./roadmaps/101-backend/content/111-web-security-knowledge/102-bcrypt.md":54134,"./roadmaps/101-backend/content/111-web-security-knowledge/104-scrypt.md":26896,"./roadmaps/101-backend/content/111-web-security-knowledge/105-content-security-policy.md":99182,"./roadmaps/101-backend/content/111-web-security-knowledge/105-https.md":5233,"./roadmaps/101-backend/content/111-web-security-knowledge/106-cors.md":7768,"./roadmaps/101-backend/content/111-web-security-knowledge/107-ssl-tls.md":38453,"./roadmaps/101-backend/content/111-web-security-knowledge/108-owasp.md":2598,"./roadmaps/101-backend/content/111-web-security-knowledge/readme.md":12824,"./roadmaps/101-backend/content/112-testing/100-integration-testing.md":85729,"./roadmaps/101-backend/content/112-testing/101-unit-testing.md":53763,"./roadmaps/101-backend/content/112-testing/102-functional-testing.md":78764,"./roadmaps/101-backend/content/112-testing/readme.md":10584,"./roadmaps/101-backend/content/113-ci-cd.md":82019,"./roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md":65392,"./roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md":1024,"./roadmaps/101-backend/content/114-design-and-development-principles/102-test-driven-development.md":18712,"./roadmaps/101-backend/content/114-design-and-development-principles/103-solid.md":32506,"./roadmaps/101-backend/content/114-design-and-development-principles/104-kiss.md":35992,"./roadmaps/101-backend/content/114-design-and-development-principles/105-yagni.md":45279,"./roadmaps/101-backend/content/114-design-and-development-principles/106-dry.md":19444,"./roadmaps/101-backend/content/114-design-and-development-principles/readme.md":6828,"./roadmaps/101-backend/content/115-architectural-patterns/100-monolithic-apps.md":90413,"./roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md":59107,"./roadmaps/101-backend/content/115-architectural-patterns/102-soa.md":28227,"./roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md":28760,"./roadmaps/101-backend/content/115-architectural-patterns/104-serverless.md":96026,"./roadmaps/101-backend/content/115-architectural-patterns/readme.md":2938,"./roadmaps/101-backend/content/116-search-engines/100-elasticsearch.md":85569,"./roadmaps/101-backend/content/116-search-engines/101-solr.md":7328,"./roadmaps/101-backend/content/116-search-engines/readme.md":79359,"./roadmaps/101-backend/content/117-message-brokers/100-rabbitmq.md":93093,"./roadmaps/101-backend/content/117-message-brokers/101-kafka.md":44196,"./roadmaps/101-backend/content/117-message-brokers/readme.md":91265,"./roadmaps/101-backend/content/118-containerization/100-docker.md":53797,"./roadmaps/101-backend/content/118-containerization/101-rkt.md":82153,"./roadmaps/101-backend/content/118-containerization/102-lxc.md":12998,"./roadmaps/101-backend/content/118-containerization/readme.md":57485,"./roadmaps/101-backend/content/119-graphql/100-apollo.md":5373,"./roadmaps/101-backend/content/119-graphql/101-relay-modern.md":79033,"./roadmaps/101-backend/content/119-graphql/readme.md":33620,"./roadmaps/101-backend/content/120-graph-databases/100-neo4j.md":47898,"./roadmaps/101-backend/content/120-graph-databases/readme.md":78826,"./roadmaps/101-backend/content/121-web-sockets.md":6084,"./roadmaps/101-backend/content/122-web-servers/100-nginx.md":34821,"./roadmaps/101-backend/content/122-web-servers/101-apache.md":55293,"./roadmaps/101-backend/content/122-web-servers/102-caddy.md":28549,"./roadmaps/101-backend/content/122-web-servers/103-ms-iis.md":297,"./roadmaps/101-backend/content/122-web-servers/readme.md":94521,"./roadmaps/101-backend/content/123-scalability/100-mitigation-strategies.md":78878,"./roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md":52928,"./roadmaps/101-backend/content/123-scalability/102-migration-strategies.md":50760,"./roadmaps/101-backend/content/123-scalability/103-horizontal-vertial-scaling.md":80576,"./roadmaps/101-backend/content/123-scalability/104-observability.md":54572,"./roadmaps/101-backend/content/123-scalability/readme.md":99222,"./roadmaps/101-backend/content/readme.md":51403,"./roadmaps/101-backend/meta":76782,"./roadmaps/101-backend/meta.json":76782,"./roadmaps/101-backend/resources.md":78093,"./roadmaps/102-devops/meta":54017,"./roadmaps/102-devops/meta.json":54017,"./roadmaps/102-devops/resources.md":65332,"./roadmaps/103-react/landscape.md":34558,"./roadmaps/103-react/meta":88477,"./roadmaps/103-react/meta.json":88477,"./roadmaps/103-react/resources.md":20063,"./roadmaps/104-angular/landscape.md":595,"./roadmaps/104-angular/meta":8834,"./roadmaps/104-angular/meta.json":8834,"./roadmaps/104-angular/resources.md":67489,"./roadmaps/105-android/landscape.md":65191,"./roadmaps/105-android/meta":19508,"./roadmaps/105-android/meta.json":19508,"./roadmaps/105-android/resources.md":97890,"./roadmaps/106-python/landscape.md":69556,"./roadmaps/106-python/meta":34099,"./roadmaps/106-python/meta.json":34099,"./roadmaps/106-python/resources.md":8481,"./roadmaps/107-golang/landscape.md":62388,"./roadmaps/107-golang/meta":82737,"./roadmaps/107-golang/meta.json":82737,"./roadmaps/107-golang/resources.md":79101,"./roadmaps/108-java/landscape.md":57913,"./roadmaps/108-java/meta":62507,"./roadmaps/108-java/meta.json":62507,"./roadmaps/108-java/resources.md":79673,"./roadmaps/109-postgresql-dba/landscape.md":51464,"./roadmaps/109-postgresql-dba/meta":88951,"./roadmaps/109-postgresql-dba/meta.json":88951,"./roadmaps/109-postgresql-dba/resources.md":1545,"./roadmaps/110-aws/landscape.md":48188,"./roadmaps/110-aws/meta":67559,"./roadmaps/110-aws/meta.json":67559,"./roadmaps/110-aws/resources.md":91048,"./roadmaps/111-qa/landscape.md":44894,"./roadmaps/111-qa/meta":83204,"./roadmaps/111-qa/meta.json":83204,"./roadmaps/111-qa/resources.md":49598,"./site":28641,"./site.json":28641,"./videos":91797,"./videos.json":91797,"./videos/acid-explained.md":98974,"./videos/all-about-http-caching.md":73730,"./videos/array-structure.md":71232,"./videos/arrays-and-objects-in-javascript.md":77589,"./videos/async-javascript.md":38001,"./videos/big-o-notation.md":6736,"./videos/content-delivery-networks.md":45489,"./videos/dns-explained.md":79029,"./videos/dns-records.md":74046,"./videos/floating-point-arithmetic.md":27327,"./videos/freeze-and-seal-objects-in-javascript.md":66527,"./videos/how-to-use-css-variables.md":85512,"./videos/how-to-use-github-actions.md":48688,"./videos/javascript-fetch-api.md":4474,"./videos/linked-list-data-structure.md":36955,"./videos/load-balancers-101.md":2012,"./videos/osi-model.md":85495,"./videos/practical-intro-to-react.md":24913,"./videos/promises-in-javascript.md":77e3,"./videos/queue-structure.md":90898,"./videos/random-number-generators.md":61516,"./videos/scaling-the-unscalable.md":37850,"./videos/ssh-ssl-tls.md":39345,"./videos/stack-data-structure.md":56851,"./videos/system-design-101.md":35069,"./videos/tcp-ip-model.md":1559,"./videos/transport-protocols-tcp-vs-udp.md":32382,"./videos/what-are-data-structures.md":68496,"./videos/what-is-cap-theorem.md":45875,"./videos/what-is-dependency-injection.md":52635,"./videos/what-is-dom-shadow-dom-virtual-dom.md":16095,"./videos/what-is-eventual-consistency.md":72068,"./videos/yaml-in-depth.md":26372};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=79280},74160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},25591:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65606:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},40181:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/",mdxType:"BadgeLink"},"HTTP/3 From A To Z: Core Concepts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}l.isMDXComponent=!0},66152:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=WjDrMKZWCt0",mdxType:"BadgeLink"},"How Do Web Browsers Work?"))}l.isMDXComponent=!0},13405:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},2222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},48129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},62633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},17828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML Basics"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=3PHXvlpOkf4",mdxType:"BadgeLink"},"Build 15 JavaScript Projects - Vanilla JavaScript"))}l.isMDXComponent=!0},90258:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},40757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Forms and Validations"),(0,r.kt)("p",null,"Before submitting data to the server, it is important to ensure all required form controls are filled out, in the correct format. This is called client-side form validation, and helps ensure data submitted matches the requirements set forth in the various form controls."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation",mdxType:"BadgeLink"},"MDN Web Docs: Client-side form validation"))}l.isMDXComponent=!0},31881:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Best Practices"),(0,r.kt)("p",null,"Learn to follow the best practices for writing maintainable and scalable HTML documents."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/hail2u/html-best-practices",mdxType:"BadgeLink"},"HTML Best Practices"))}l.isMDXComponent=!0},23699:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Accessibility"),(0,r.kt)("p",null,"Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g",mdxType:"BadgeLink"},"Complete Playlist on Accessibility"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/accessibility/index.php",mdxType:"BadgeLink"},"Accessibility Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/",mdxType:"BadgeLink"},"A Complete Guide To Accessible Front-End Components"))}l.isMDXComponent=!0},20584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basics of SEO"),(0,r.kt)("p",null,"SEO or Search Engine Optimization is the technique used to optimize your website for better rankings on search engines such as Google, Bing etc."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developers.google.com/search/docs",mdxType:"BadgeLink"},"Google Search Central \u2014 SEO Docs"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://github.com/seo/guide",mdxType:"BadgeLink"},"SEO Guide"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://medium.com/welldone-software/seo-for-developers-a-quick-overview-5b5b7ce34679",mdxType:"BadgeLink"},"SEO for Developers"))}l.isMDXComponent=!0},33913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-html",mdxType:"BadgeLink"},"Codecademy - Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/denysdovhan/learnyouhtml",mdxType:"BadgeLink"},"Interactive HTML Course"))}l.isMDXComponent=!0},88533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},13780:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Making layouts"),(0,r.kt)("p",null,"Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics: "),(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"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://cssgridgarden.com/",mdxType:"BadgeLink"},"Game for learning CSS Grid"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://css-tricks.com/all-about-floats/",mdxType:"BadgeLink"},"All about Floats"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/",mdxType:"BadgeLink"},"Positioning Types: How Do They Differ?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model",mdxType:"BadgeLink"},"The Box Model"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/the-css-display-property-display-none-display-table-inline-block-and-more/",mdxType:"BadgeLink"},"The CSS Display Property"))}l.isMDXComponent=!0},41118:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Responsive Web Design"),(0,r.kt)("p",null,"Responsive Web Designing is the technique to make your webpages look good on all screen sizes. There are certain techniques used to achieve that e.g. CSS media queries, percentage widths, min or max widths heights etc."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/css_rwd_intro.asp",mdxType:"BadgeLink"},"Responsive Web Design"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://web.dev/learn/design/",mdxType:"BadgeLink"},"Learn Responsive Design"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=srvUrASNj0s",mdxType:"BadgeLink"},"Introduction To Responsive Web Design"))}l.isMDXComponent=!0},35211:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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://web.dev/learn/css/",mdxType:"BadgeLink"},"Web.dev by Google \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"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://flexbox.io/",mdxType:"BadgeLink"},"What The Flexbox!"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-css",mdxType:"BadgeLink"},"Learn CSS | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-intermediate-css",mdxType:"BadgeLink"},"Learn Intermediate CSS | Codecademy"))}l.isMDXComponent=!0},30617:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))}l.isMDXComponent=!0},51569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DOM Manipulation"),(0,r.kt)("p",null,"The Document Object Model (DOM) connects web pages to scripts or programming languages by representing the structure of a document\u2014such as the HTML representing a web page\u2014in memory."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/",mdxType:"BadgeLink"},"What is the DOM?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/js_htmldom.asp",mdxType:"BadgeLink"},"JavaScript HTML DOM"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.javascripttutorial.net/javascript-dom/",mdxType:"BadgeLink"},"JavaScript DOM"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Tok22qxPzQ",mdxType:"BadgeLink"},"What is DOM, Shadow DOM and Virtual DOM?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=0ik6X4DJKCc",mdxType:"BadgeLink"},"JavaScript DOM Crash Course"))}l.isMDXComponent=!0},74746:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Fetch API"),(0,r.kt)("p",null,"Ajax is the technique that lets us send and receive the data asynchronously from the servers e.g. updaing the user profile or asynchronously fetch the list of searched products without reloading the page."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API",mdxType:"BadgeLink"},"Fetch API MDN Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=-ZI0ea5O2oA",mdxType:"BadgeLink"},"JavaScript Fetch API"))}l.isMDXComponent=!0},66401:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Modern JavaScript"),(0,r.kt)("p",null,"ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming language. It is the first major update to the language since ES5 which was standardized in 2009. You should look at the features introduced with ES6 and onwards."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.javascripttutorial.net/es6/",mdxType:"BadgeLink"},"ES6 Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=NCwa_xi0Uuc",mdxType:"BadgeLink"},"Learn Modern JavaScript in 1 Hour"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=nZ1DMMsyVyI",mdxType:"BadgeLink"},"JavaScript ES6, ES7, ES8"))}l.isMDXComponent=!0},82698:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"JavaScript Concepts"),(0,r.kt)("p",null,"Learn and understand the concepts such as Hoisting, Event Bubbling, Scope, Prototype, Shadow DOM and strict."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Glossary/Hoisting",mdxType:"BadgeLink"},"JavaScript Hoisting"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/bubbling-and-capturing",mdxType:"BadgeLink"},"Event Bubbling and Capturing"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Glossary/Scope",mdxType:"BadgeLink"},"Scope in JavaScript"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/",mdxType:"BadgeLink"},"Var, Let and Const \u2014 What's the difference?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain",mdxType:"BadgeLink"},"Inheritance and Prototype Chain"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode",mdxType:"BadgeLink"},"JavaScript Strict Mode"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Tok22qxPzQ",mdxType:"BadgeLink"},"DOM vs Shadow DOM vs Virtual DOM"))}l.isMDXComponent=!0},8613:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/workshopper/javascripting",mdxType:"BadgeLink"},"Learn the basics of JavaScript"))}l.isMDXComponent=!0},42555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"))}l.isMDXComponent=!0},58548:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},41952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitLab"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://gitlab.com"}),"GitLab")," 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:"Visit",colorScheme:"green",href:"https://gitlab.com/",mdxType:"BadgeLink"},"GitLab Website"),(0,r.kt)(i,{badgeText:"Read",href:"https://docs.gitlab.com/",mdxType:"BadgeLink"},"GitLab Documentation"))}l.isMDXComponent=!0},56145:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"BitBucket"),(0,r.kt)("p",null,(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://bitbucket.com"}),"BitBucket")," 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:"Visit",colorScheme:"green",href:"https://bitbucket.com/",mdxType:"BadgeLink"},"BitBucket Website"),(0,r.kt)(i,{badgeText:"Read",href:"https://bitbucket.org/product/guides",mdxType:"BadgeLink"},"How to use BitBucket?"))}l.isMDXComponent=!0},40493:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo Hosting Services"),(0,r.kt)("p",null,"There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Services Links"),(0,r.kt)(i,{badgeText:"Visit",colorScheme:"green",href:"https://github.com",mdxType:"BadgeLink"},"GitHub: Where the world builds software"),(0,r.kt)(i,{badgeText:"Visit",href:"https://gitlab.com",mdxType:"BadgeLink"},"GitLab: Iterate faster, innovate together"),(0,r.kt)(i,{badgeText:"Visit",href:"https://bitbucket.com",mdxType:"BadgeLink"},"BitBucket: The Git solution for professional teams"))}l.isMDXComponent=!0},62510:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTTPS"),(0,r.kt)("p",null,"HTTPS is a secure way to send data between a web server and a browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/",mdxType:"BadgeLink"},"What is HTTPS?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https",mdxType:"BadgeLink"},"Enabling HTTPS on Your Servers"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hExRDVZHhig",mdxType:"BadgeLink"},"SSL, TLS, HTTP, HTTPS Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=GoXgl9r0Kjk",mdxType:"BadgeLink"},"HTTPS \u2014 Stories from the field"))}l.isMDXComponent=!0},9377:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Content Security Policy"),(0,r.kt)("p",null,"Content Security Policy is a computer security standard introduced to prevent cross-site scripting, clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP",mdxType:"BadgeLink"},"MDN \u2014 Content Security Policy (CSP)"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/csp",mdxType:"BadgeLink"},"Google Devs \u2014 Content Security Policy (CSP)"))}l.isMDXComponent=!0},38705:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CORS"),(0,r.kt)("p",null,"Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS",mdxType:"BadgeLink"},"CORS \u2014 Cross-Origin Resource Sharing"))}l.isMDXComponent=!0},98633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OWASP Security Risks"),(0,r.kt)("p",null,"OWASP or Open Web Application Security Project is an online community that produces freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://en.wikipedia.org/wiki/OWASP",mdxType:"BadgeLink"},"Wikipedia - OWASP"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/0xRadi/OWASP-Web-Checklist",mdxType:"BadgeLink"},"OWASP Web Application Security Testing Checklist"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/",mdxType:"BadgeLink"},"OWASP Top 10 Security Risks"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html",mdxType:"BadgeLink"},"OWASP Cheatsheets"))}l.isMDXComponent=!0},49012:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web Security Knowledge"),(0,r.kt)("p",null,"Web security refers to the protective measures taken by the developers to protect the web applications from threats that could affect the business."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://en.wikipedia.org/wiki/OWASP",mdxType:"BadgeLink"},"Wikipedia - OWASP"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://github.com/0xRadi/OWASP-Web-Checklist",mdxType:"BadgeLink"},"OWASP Web Application Security Testing Checklist"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/",mdxType:"BadgeLink"},"OWASP Top 10 Security Risks"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html",mdxType:"BadgeLink"},"OWASP Cheatsheets"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP",mdxType:"BadgeLink"},"Content Security Policy (CSP)"))}l.isMDXComponent=!0},61415:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"npm"),(0,r.kt)("p",null,"npm is a package manager for the JavaScript programming language maintained by npm, Inc. npm is the default package manager for the JavaScript runtime environment Node.js."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/",mdxType:"BadgeLink"},"An Absolute Beginner's Guide to Using npm"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2V1UUhBJ62Y",mdxType:"BadgeLink"},"NPM tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=jHDhaSSKmB0",mdxType:"BadgeLink"},"NPM Crash Course"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/workshopper/how-to-npm",mdxType:"BadgeLink"},"How to NPM"))}l.isMDXComponent=!0},16356:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Yarn"),(0,r.kt)("p",null,"Yarn is a software packaging system developed in 2016 by Facebook for Node.js JavaScript runtime environment that provides speed, consistency, stability, and security as an alternative to npm (package manager)."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://yarnpkg.com/en/docs/getting-started",mdxType:"BadgeLink"},"Yarn - Getting Started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=g9_6KmiBISk",mdxType:"BadgeLink"},"Yarn Crash Course"))}l.isMDXComponent=!0},88988:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Package Managers"),(0,r.kt)("p",null,"Package managers allow you to manage the dependencies (external code written by you or someone else) that your project needs to work correctly."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",mdxType:"BadgeLink"},"Modern JavaScript for Dinosaurs"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/",mdxType:"BadgeLink"},"An Absolute Beginner's Guide to Using npm"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2V1UUhBJ62Y",mdxType:"BadgeLink"},"NPM tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=jHDhaSSKmB0",mdxType:"BadgeLink"},"NPM Crash Course"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://yarnpkg.com/en/docs/getting-started",mdxType:"BadgeLink"},"Yarn - Getting Started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=g9_6KmiBISk",mdxType:"BadgeLink"},"Yarn Crash Course"))}l.isMDXComponent=!0},86665:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},21750:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},58887:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"SMACSS"),(0,r.kt)("p",null,"SMACSS (pronounced \u201csmacks\u201d) is more style guide than rigid framework. SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://smacss.com/",mdxType:"BadgeLink"},"SMACSS Official Website"))}l.isMDXComponent=!0},45220:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Architecture"),(0,r.kt)("p",null,"CSS is notoriously difficult to manage in large, complex, rapidly-iterated systems. There are different ways of writing CSS that allows in writing more maintainable CSS."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.webfx.com/blog/web-design/css-methodologies/",mdxType:"BadgeLink"},"A Look at Some CSS Methodologies"),(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 Website",href:"http://oocss.org/",mdxType:"BadgeLink"},"OOCSS Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"http://smacss.com/",mdxType:"BadgeLink"},"SMACSS Official Website"))}l.isMDXComponent=!0},84447:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Sass"),(0,r.kt)("p",null,"Sass is a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets. It lets you write maintainable CSS and provides features like variable, nesting, mixins, extension, functions, loops, conditionals and so on."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://sass-lang.com/",mdxType:"BadgeLink"},"Sass Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Documentation",href:"https://sass-lang.com/documentation",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=_a5j7KoflTs",mdxType:"BadgeLink"}," Sass Tutorial for Beginners"))}l.isMDXComponent=!0},85106:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PostCSS"),(0,r.kt)("p",null,"PostCSS is a tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://postcss.org/",mdxType:"BadgeLink"},"Official Website"))}l.isMDXComponent=!0},22972:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Less"),(0,r.kt)("p",null,"Less extends CSS with dynamic behavior such as variables, mixins, operations and functions. Less runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only)."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://lesscss.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://lesscss.org/usage/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=YD91G8DdUsw",mdxType:"BadgeLink"}," Less CSS Pre-Processor Tutorial"))}l.isMDXComponent=!0},68365:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Preprocessors"),(0,r.kt)("p",null,"CSS Preprocessors are scripting languages that extend the default capabilities of CSS. They enable us to use logic in our CSS code, such as variables, nesting, inheritance, mixins, functions, and mathematical operations."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/css-preprocessors/#:~:text=CSS%20Preprocessors%20compile%20the%20code,preprocessor%20were%20not%20in%20place.",mdxType:"BadgeLink"},"CSS Preprocessors Explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://sherocommerce.com/what-is-a-css-preprocessors-why-use-them/",mdxType:"BadgeLink"},"Why Use Preprocessors?"))}l.isMDXComponent=!0},86523:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"npm Scripts"),(0,r.kt)("p",null,"npm scripts are the entries in the scripts field of the package.json file. The scripts field holds an object where you can specify various commands and scripts that you want to expose."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/introduction-to-npm-scripts/",mdxType:"BadgeLink"},"Introduction to npm scripts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hHt3oVk3XVk",mdxType:"BadgeLink"},"Codevolution: npm scripts"))}l.isMDXComponent=!0},88664:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},86795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Webpack"),(0,r.kt)("p",null,"Webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://webpack.js.org/",mdxType:"BadgeLink"},"Webpack Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://webpack.js.org/concepts/",mdxType:"BadgeLink"},"Webpack Documentation"))}l.isMDXComponent=!0},19500:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"esbuild"),(0,r.kt)("p",null,"Our current build tools for the web are 10-100x slower than they could be. The main goal of the esbuild bundler project is to bring about a new era of build tool performance, and create an easy-to-use modern bundler along the way."),(0,r.kt)(s,{colorScheme:"blue",badgeText:"Official Website",href:"https://esbuild.github.io/",mdxType:"BadgeLink"},"Esbuild Official Website"),(0,r.kt)(s,{colorScheme:"blue",badgeText:"Official Documentation",href:"https://esbuild.github.io/api/",mdxType:"BadgeLink"},"Esbuild Documentation"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=9XS_RA6zyyU",mdxType:"BadgeLink"},"Why are People Obsessed with esbuild?"))}c.isMDXComponent=!0},5104:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rollup"),(0,r.kt)("p",null,"Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://rollupjs.org/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=ICYLOZuFMz8",mdxType:"BadgeLink"},"How to Set Up JavaScript Bundling Using Rollup"))}l.isMDXComponent=!0},25648:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Parcel"),(0,r.kt)("p",null,"Parcel is a web application bundler, differentiated by its developer experience. It offers blazing-fast performance utilizing multicore processing and requires zero configuration."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://parceljs.org/plugin-system/bundler/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hCxvp3_o0gM",mdxType:"BadgeLink"},"Using Parcel Bundler with React"))}l.isMDXComponent=!0},20762:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vite"),(0,r.kt)("p",null,"Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://vitejs.dev",mdxType:"BadgeLink"},"Vite Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Documentation",href:"https://vitejs.dev/guide",mdxType:"BadgeLink"},"Vite Documentation"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://youtu.be/LQQ3CR2JTX8",mdxType:"BadgeLink"},"Vite Crash Course"))}l.isMDXComponent=!0},76459:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Prettier"),(0,r.kt)("p",null,"Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://prettier.io",mdxType:"BadgeLink"},"Prettier Website"))}l.isMDXComponent=!0},62816:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"ESLint"),(0,r.kt)("p",null,"With ESLint you can impose the coding standard using a certain set of standalone rules."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"blue",href:"https://eslint.org/",mdxType:"BadgeLink"},"ESLint Official Website"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://dev.to/shivambmgupta/eslint-what-why-when-how-5f1d",mdxType:"BadgeLink"},"Introduction to ESLint"),(0,r.kt)(i,{badgeText:"Watch",colorScheme:"red",href:"https://www.youtube.com/watch?v=qhuFviJn-es",mdxType:"BadgeLink"},"ESLint Quickstart - find errors automatically"))}l.isMDXComponent=!0},74453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"StandardJS"),(0,r.kt)("p",null,"Standardjs is a Style guide, with linter & automatic code fixer. It is a way to enforce consistent style in your project. It automatically formats code.\nStandard JS is a tool in the Code Review category of a tech stack."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"blue",href:"https://standardjs.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=bqho-uAnNJk",mdxType:"BadgeLink"},"Standard JS Tutorial with React, Prettier"))}l.isMDXComponent=!0},82310:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},37093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},57139:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Redux"),(0,r.kt)("p",null,"Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/reduxjs/redux-devtools"}),"live code editing combined with a time traveling debugger"),"."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://redux.js.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://redux.js.org/introduction/getting-started",mdxType:"BadgeLink"},"Official Getting Started to Redux"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://redux.js.org/tutorials/essentials/part-1-overview-concepts",mdxType:"BadgeLink"},"Official Tutorial to Learn Redux"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867",mdxType:"BadgeLink"},"Fundamentals of Redux Course from Dan Abramov"))}l.isMDXComponent=!0},25783:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MobX"),(0,r.kt)("p",null,"MobX is an open source state management tool. MobX, a simple, scalable, and standalone state management library, follows functional reactive programming (FRP) implementation and prevents inconsistent state by ensuring that all derivations are performed automatically."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://mobx.js.org/",mdxType:"BadgeLink"},"MobX Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=WQQq1QbYlAw",mdxType:"BadgeLink"},"Intro to MobX Tutorial"))}l.isMDXComponent=!0},57810:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Recoil"),(0,r.kt)("p",null,"Recoil is a new state management library built by the Facebook team that simplifies global state management."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://recoiljs.org/",mdxType:"BadgeLink"},"Recoil Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://recoiljs.org/docs/introduction/getting-started",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=BchtCWxs7sA",mdxType:"BadgeLink"},"Learn the basics of Recoil.js"))}l.isMDXComponent=!0},96199:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=bMknfKXIFA8",mdxType:"BadgeLink"},"React Course - Beginner's Tutorial for React JavaScript Library [2022]"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=i793Qm6kv3U",mdxType:"BadgeLink"},"Understanding React's UI Rendering Process"))}l.isMDXComponent=!0},5685:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"RxJS"),(0,r.kt)("p",null,"RxJS (Reactive Extensions for JavaScript) is a library for reactive programming using observables that makes it easier to compose asynchronous or callback-based code."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://rxjs.dev/guide/overview",mdxType:"BadgeLink"},"RxJS Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://angular.io/guide/rx-library",mdxType:"BadgeLink"},"RxJS Angular Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2LCo926NFLI",mdxType:"BadgeLink"},"RxJS Quick Start"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=PhggNGsSQyg",mdxType:"BadgeLink"},"RxJS Crash Course"))}l.isMDXComponent=!0},13162:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NgRx"),(0,r.kt)("p",null,"NgRx is an open source library that provides reactive state management for your Angular applications"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://ngrx.io/docs",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2LCo926NFLI",mdxType:"BadgeLink"},"Angular NgRx Redux Quick Start Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=nuHBHD32iw8",mdxType:"BadgeLink"},"NgRx Course"))}l.isMDXComponent=!0},23666:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},80549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vuex"),(0,r.kt)("p",null,"Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://vuex.vuejs.org/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=5lVQgZzLMHc",mdxType:"BadgeLink"},"Vuex Crash Course"))}l.isMDXComponent=!0},85277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Vue.js"),(0,r.kt)("p",null,"Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is mainly focused on front end development."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://vuejs.org/",mdxType:"BadgeLink"},"Vue.js Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://vuejs.org/v2/guide/",mdxType:"BadgeLink"},"Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=FXpIoQ_rT_c",mdxType:"BadgeLink"},"Vue.js Course for Beginners"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=qZXt1Aom3Cs",mdxType:"BadgeLink"},"Vue.js Crash Course"))}l.isMDXComponent=!0},91473:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Pick a Framework"),(0,r.kt)("p",null,"Web frameworks are designed to write web applications. Frameworks are collections of libraries that aid in the development of a software product or website. Frameworks for web application development are collections of various tools. Frameworks vary in their capabilities and functions, depending on the tasks set. They define the structure, establish the rules, and provide the development tools required."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=D_MO9vIRBcA",mdxType:"BadgeLink"},"What is the difference between a framework and a library?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=cuHDQhDhvPE",mdxType:"BadgeLink"}," Which JS Framework is best?"))}l.isMDXComponent=!0},73745:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled components"),(0,r.kt)("p",null,"Styled-components is a CSS-in-JS library that enables you to write regular CSS and attach it to JavaScript components. With styled-components, you can use the CSS you\u2019re already familiar with instead of having to learn a new styling structure."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://styled-components.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://styled-components.com/docs",mdxType:"BadgeLink"},"Official Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=02zO0hZmwnw",mdxType:"BadgeLink"},"Styled Components Crash Course & Project"))}l.isMDXComponent=!0},51720:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CSS Modules"),(0,r.kt)("p",null,"CSS files in which all class names and animation names are scoped locally by default."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"blue",href:"https://github.com/css-modules/css-modules",mdxType:"BadgeLink"},"Project GitHub Repository"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://medium.com/@ralph1786/using-css-modules-in-react-app-c2079eadbb87",mdxType:"BadgeLink"},"Using CSS Modules In React App"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=pKMWU9OrA2s",mdxType:"BadgeLink"},"CSS Modules: Why are they great?"))}l.isMDXComponent=!0},24349:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Styled JSX"),(0,r.kt)("p",null,"Styled JSX is a CSS-in-JS library that allows you to write encapsulated and scoped CSS to style your components. The styles you introduce for one component won't affect other components, allowing you to add, change and delete styles without worrying about unintended side effects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://github.com/vercel/styled-jsx",mdxType:"BadgeLink"},"Getting started"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SM5uVbfgfdo",mdxType:"BadgeLink"},"Styled JSX in Next.js: Master Next.js"))}l.isMDXComponent=!0},14291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Emotion"),(0,r.kt)("p",null,"Emotion is a library designed for writing css styles with JavaScript. It provides powerful and predictable style composition in addition to a great developer experience with features such as source maps, labels, and testing utilities. Both string and object styles are supported."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://emotion.sh/docs/introduction",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=yO3JU2bMLGA",mdxType:"BadgeLink"},"Styled components using emotion in React"))}l.isMDXComponent=!0},59904:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},41484:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},16625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},32901:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},58933:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},94642:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bootstrap"),(0,r.kt)("p",null,"Quickly design and customize responsive mobile-first sites with Bootstrap, the world\u2019s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://getbootstrap.com",mdxType:"BadgeLink"},"Bootstrap Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=-qfEOE4vtxE",mdxType:"BadgeLink"},"Bootstrap CSS Framework - Full Course for Beginners"))}l.isMDXComponent=!0},14505:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bulma"),(0,r.kt)("p",null,"Bulma is a free, open source framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://bulma.io/",mdxType:"BadgeLink"},"Bulma Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://youtube.com/playlist?list=PL4cUxeGkcC9iXItWKbaQxcyDT1u6E7a8a",mdxType:"BadgeLink"},"Bulma CSS Tutorial"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://scrimba.com/learn/bulma",mdxType:"BadgeLink"},"Learn Bulma CSS"),(0,r.kt)(i,{badgeText:"Read",href:"https://www.freecodecamp.org/news/how-to-build-a-responsive-blog-design-with-bulma-css-c2257a17c16b",mdxType:"BadgeLink"},"How To Build A ? Responsive Blog Design With Bulma CSS"))}l.isMDXComponent=!0},94740:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},21160:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},6937:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Chakra UI"),(0,r.kt)("p",null,"Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://chakra-ui.com/",mdxType:"BadgeLink"},"Chakra UI Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://chakra-ui.com/docs/getting-started",mdxType:"BadgeLink"},"Chakra UI Official Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://egghead.io/courses/build-a-modern-user-interface-with-chakra-ui-fac68106",mdxType:"BadgeLink"},"Build a Modern User Interface with Chakra UI"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"",mdxType:"BadgeLink"}),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/wI2vqXsjsIo",mdxType:"BadgeLink"},"Official Getting Started Video"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/s-bIsz-NR3c",mdxType:"BadgeLink"},"Chakra UI Crash Course"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.freecodecamp.org/news/why-should-you-start-using-chakraui/",mdxType:"BadgeLink"},"Why You Should Start Using Chakra UI"))}l.isMDXComponent=!0},99120:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Material UI"),(0,r.kt)("p",null,"Material-UI is an open-source framework that features React components that implement Google\u2019s Material Design."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://mui.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://mui.com/getting-started/installation/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=vyJU9efvUtQ",mdxType:"BadgeLink"},"Material UI React Tutorial"))}l.isMDXComponent=!0},13694:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Radix UI"),(0,r.kt)("p",null,"An open-source UI component library for building high-quality, accessible design systems and web apps."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Framework Website",href:"https://www.radix-ui.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://www.radix-ui.com/docs/primitives/overview/introduction",mdxType:"BadgeLink"},"Official Documentation"))}l.isMDXComponent=!0},17562:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},21879:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},25996:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jest"),(0,r.kt)("p",null,"Jest is a delightful JavaScript Testing Framework with a focus on simplicity.\nIt works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://jestjs.io/",mdxType:"BadgeLink"},"Jest Website"))}l.isMDXComponent=!0},42772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},73431:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},44375:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},64946:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},69011:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mocha"))}s.isMDXComponent=!0},95136:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Chai"))}s.isMDXComponent=!0},30327:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ava"))}s.isMDXComponent=!0},68976:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Jasmine"))}s.isMDXComponent=!0},25770:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing your apps"),(0,r.kt)("p",null,"Before delivering your application to users, you need to be sure that your app meets the requirements it was designed for, and that it doesn't do any weird, unintended things (called 'bugs'). To accomplish this, we 'test' our applications in different ways."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.softwaretestingmaterial.com/software-testing/",mdxType:"BadgeLink"},"A comprehensive dive into software testing."),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing",mdxType:"BadgeLink"},"The different types of software tests"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://jestjs.io/docs/tutorial-react",mdxType:"BadgeLink"},"Testing React apps with Jest"))}l.isMDXComponent=!0},83227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"TypeScript"),(0,r.kt)("p",null,"TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://www.typescriptlang.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://www.typescriptlang.org/docs/",mdxType:"BadgeLink"},"Official Docs for Deep Dives"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Handbook",href:"https://www.typescriptlang.org/docs/handbook/intro.html",mdxType:"BadgeLink"},"The TypeScript Handbook"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.tutorialspoint.com/typescript/index.htm",mdxType:"BadgeLink"},"TypeScript Tutorial"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=BwuLxPH8IDs",mdxType:"BadgeLink"},"TypeScript for Beginners"))}l.isMDXComponent=!0},79935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Flow"),(0,r.kt)("p",null,"Flow is a static type checker, designed to find type errors in JavaScript programs."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://flow.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://flow.org/en/docs/",mdxType:"BadgeLink"},"Official Documentation"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=0HlqX4lQZas",mdxType:"BadgeLink"},"Flow for Beginners"))}l.isMDXComponent=!0},98323:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},54990:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},95089:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},72768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Progressive Web Apps"),(0,r.kt)("p",null,"Progressive Web Apps (PWAs) are websites that are progressively enhanced to function like installed, native apps on supporting platforms, while functioning like regular websites on other browsers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.freecodecamp.org/news/what-are-progressive-web-apps/",mdxType:"BadgeLink"},"Progressive Web Apps for Beginners"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://web.dev/learn/pwa/",mdxType:"BadgeLink"},"Learn PWA"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=sFsRylCQblw",mdxType:"BadgeLink"},"Build a Progressive Web App"))}l.isMDXComponent=!0},99086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next.js"),(0,r.kt)("p",null,"Next.js is an open-source development framework built on top of Node.js\nenabling React based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nextjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nextjs.org/docs/getting-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnextjs.com/",mdxType:"BadgeLink"},"Mastering Next.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://youtu.be/1WmNXEVia8I",mdxType:"BadgeLink"},"Next.js for Beginners - freeCodeCamp"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Handbook",href:"https://www.freecodecamp.org/news/the-next-js-handbook/",mdxType:"BadgeLink"},"The Next.js Handbook \u2014 freeCodeCamp"))}l.isMDXComponent=!0},4930:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},88747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},67815:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},26394:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},62573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},35137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},71905:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},60410:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apollo"),(0,r.kt)("p",null,"Apollo is a platform for building a unified graph, a communication layer that helps you manage the flow of data between your application clients (such as web and native apps) and your back-end services."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.apollographql.com",mdxType:"BadgeLink"},"Apollo Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://www.apollographql.com/docs/",mdxType:"BadgeLink"},"Official Docs"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Watch",href:"https://www.youtube.com/c/ApolloGraphQL/",mdxType:"BadgeLink"},"Official YouTube Channel"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=YyUWW04HwKY",mdxType:"BadgeLink"},"GraphQL With React Tutorial - Apollo Client"))}l.isMDXComponent=!0},60485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relay Modern"),(0,r.kt)("p",null,"Relay is a JavaScript client used in the browser to fetch GraphQL data. It's a JavaScript framework developed by Facebook for managing and fetching data in React applications. It is built with scalability in mind in order to power complex applications like Facebook. The ultimate goal of GraphQL and Relay is to deliver instant UI-response interactions."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://relay.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://relay.dev/docs/",mdxType:"BadgeLink"},"Introduction to Relay modern"))}l.isMDXComponent=!0},24133:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Graphql"),(0,r.kt)("p",null,"GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://graphql.org/learn/",mdxType:"BadgeLink"},"Introduction to GraphQL"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.howtographql.com/",mdxType:"BadgeLink"},"The Fullstack Tutorial for GraphQL"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://odyssey.apollographql.com/",mdxType:"BadgeLink"},"GraphQL Tutorials"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=ed8SzALpx1Q",mdxType:"BadgeLink"},"GraphQL Course for Beginners"))}l.isMDXComponent=!0},57935:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Next.js"),(0,r.kt)("p",null,"Next.js is an open-source development framework built on top of Node.js\nenabling React based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nextjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nextjs.org/docs/getting-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnextjs.com/",mdxType:"BadgeLink"},"Mastering Next.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://youtu.be/1WmNXEVia8I",mdxType:"BadgeLink"},"Next.js for Beginners - Full Course at freeCodeCamp YouTube Channel"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Handbook",href:"https://www.freecodecamp.org/news/the-next-js-handbook/",mdxType:"BadgeLink"},"The Next.js Handbook \u2014 FreeCodeCamp"))}l.isMDXComponent=!0},1291:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},20855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Nuxt js"),(0,r.kt)("p",null,"Nuxt.js is an open-source development framework built on top of Node.js\nenabling Vue based web applications functionalities such as server-side\nrendering and generating static websites."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Resources"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://nuxtjs.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://nuxtjs.org/docs/get-started",mdxType:"BadgeLink"},"Official Docs for Getting Started"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://masteringnuxt.com/",mdxType:"BadgeLink"},"Mastering Nuxt.js"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Watch",href:"https://www.youtube.com/watch?v=FXpIoQ_rT_c",mdxType:"BadgeLink"},"Vue.js for Beginners - Full Course at freeCodeCamp YouTube Channel"))}l.isMDXComponent=!0},32374:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},51898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Jekyll"),(0,r.kt)("p",null,"Jekyll is a static site generator. It takes text written in your favorite markup language and uses layouts to create a static website. You can tweak the site\u2019s look and feel, URLs, the data displayed on the page, and more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://jekyllrb.com/",mdxType:"BadgeLink"},"Jekyll Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Docs",href:"https://jekyllrb.com/docs/",mdxType:"BadgeLink"},"Jekyll Docs"))}l.isMDXComponent=!0},90355:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},82578:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},80476:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Eleventy"),(0,r.kt)("p",null,"Eleventy (11ty) is a simple to use, easy to customize, highly performant and powerful static site generator with a helpful set of plugins (e.g. navigation, build-time image transformations, cache assets). Pages can be built and written with a variety of template languages (HTML, Markdown, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug or JS template literals). But it also offers the possibility to dynamically create pages from local data or external sources that are compiled at build time. It has zero client-side JavaScript dependencies."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Website",href:"https://www.11ty.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=-dM6AmNmMFA",mdxType:"BadgeLink"},"Introduction to Eleventy"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://11ty.rocks/",mdxType:"BadgeLink"},"A collection of 11ty starters, projects, plugins, and resources"))}l.isMDXComponent=!0},35470:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Static Site Generators"),(0,r.kt)("p",null,"A static site generator is a tool that generates a full static HTML website based on raw data and a set of templates. Essentially, a static site generator automates the task of coding individual HTML pages and gets those pages ready to serve to users ahead of time. Because these HTML pages are pre-built, they can load very quickly in users' browsers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/learning/performance/static-site-generator/",mdxType:"BadgeLink"},"What is a static site generator?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://nextjs.org/docs/advanced-features/static-html-export",mdxType:"BadgeLink"},"Next.js SSG"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.gatsbyjs.com/docs/glossary/static-site-generator/",mdxType:"BadgeLink"},"Gatsby SSG"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/10/building-ssg-11ty-vite-jam-sandwich/",mdxType:"BadgeLink"},"SSG \u2014\xa0An 11ty, Vite And JAM Sandwich"))}l.isMDXComponent=!0},52919:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"React Native"),(0,r.kt)("p",null,"React Native is a popular JavaScript-based mobile app framework that allows you to build natively-rendered mobile apps for iOS and Android. The framework lets you create an application for various platforms by using the same codebase."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://reactnative.dev/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://reactnative.dev/docs/getting-started",mdxType:"BadgeLink"},"Official Getting Started to React Native"),(0,r.kt)(i,{colorScheme:"Watch",badgeText:"Watch",href:"https://www.youtube.com/watch?v=0-S5a0eXPoc",mdxType:"BadgeLink"},"Tutorial to Learn React Native"))}l.isMDXComponent=!0},15760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NativeScript"),(0,r.kt)("p",null,"NativeScript is an open source framework for creating native iOS and Android apps in Angular, TypeScript, or JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://nativescript.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://docs.nativescript.org/",mdxType:"BadgeLink"},"Official Getting Started to NativeScript"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=DcCSq2Y9bow",mdxType:"BadgeLink"},"NativeScript Tutorial for Beginners"))}l.isMDXComponent=!0},59268:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},17280:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ionic"),(0,r.kt)("p",null,"Ionic framework is an open-source UI toolkit for building performant, high-quality mobile apps, desktop apps, and progressive web apps using web technologies such as HTML, CSS, and JavaScript. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://ionicframework.com/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://ionicframework.com/docs/",mdxType:"BadgeLink"},"Official Getting Started to Ionic framework"),(0,r.kt)(i,{colorScheme:"Watch",badgeText:"Watch",href:"https://www.youtube.com/watch?v=AvbuIRg8_Jg",mdxType:"BadgeLink"},"Ionic Framework 4 - Full Tutorial"))}l.isMDXComponent=!0},20388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},37137:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"),(0,r.kt)("p",null,'Electron allows you to build cross-platform desktop applications with HTML, CSS, and Javascript/Typescript. It uses Chromium and Node.js, so essentially it is a "Browser" like application that is compatbile with Mac, Windows, and Linux. '))}s.isMDXComponent=!0},30373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Carlo"),(0,r.kt)("p",null,"Carlo is a headful Node app framework for building desktop applications."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Official Rep",href:"https://github.com/GoogleChromeLabs/carlo",mdxType:"BadgeLink"},"Github Repository"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://blog.agney.dev/carlo-on-web-server/",mdxType:"BadgeLink"},"Carlo development on a web server"))}l.isMDXComponent=!0},55588:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Proton native"),(0,r.kt)("p",null,"Proton Native allows you to create desktop applications through a React syntax, on all platforms."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://proton-native.js.org/",mdxType:"BadgeLink"},"Official Website and Docs"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Hw6vPBfVVeo",mdxType:"BadgeLink"},"Getting Started With Proton Native"))}l.isMDXComponent=!0},78773:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Web Assembly"),(0,r.kt)("p",null,"WebAssembly is a new type of code that can be run in modern web browsers \u2014 it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C# and Rust with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://webassembly.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://webassembly.org/getting-started/developers-guide/",mdxType:"BadgeLink"},"Official Getting Started to Web Assembly"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=3sU557ZKjUs",mdxType:"BadgeLink"},"An introduction to WebAssembly"))}l.isMDXComponent=!0},17086:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},47083:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},31921:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},24765:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{colorScheme:"yellow",badgeText:"Read",href:"https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/",mdxType:"BadgeLink"},"HTTP/3 From A To Z: Core Concepts"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=iYM2zFP3Zn0",mdxType:"BadgeLink"},"HTTP Crash Course & Exploration"))}l.isMDXComponent=!0},98817:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},60450:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},98402:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},52573:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},91812:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"))}l.isMDXComponent=!0},56363:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTML"),(0,r.kt)("p",null,"HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript."),(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"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-html",mdxType:"BadgeLink"},"Codecademy - Learn HTML"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/denysdovhan/learnyouhtml",mdxType:"BadgeLink"},"Interactive HTML Course"))}l.isMDXComponent=!0},91440:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://flexbox.io/",mdxType:"BadgeLink"},"What The Flexbox!"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-css",mdxType:"BadgeLink"},"Learn CSS | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-intermediate-css",mdxType:"BadgeLink"},"Learn Intermediate CSS | Codecademy"))}l.isMDXComponent=!0},65898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c?t=2",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/P7t13SGytRk?t=22",mdxType:"BadgeLink"},"Build a Netflix Landing Page Clone with HTML, CSS & JS"))}l.isMDXComponent=!0},80760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Basic Frontend Knowledge"),(0,r.kt)("p",null,"As a backend developer, you may not need to have proficient knowledge of the frontend stack but you should at least have some basic understanding of HTML, CSS and JavaScript."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/html/html_intro.asp",mdxType:"BadgeLink"},"W3Schools: Learn HTML"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/css/",mdxType:"BadgeLink"},"W3Schools: Learn CSS"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools: JavaScript Tutorial"))}l.isMDXComponent=!0},43869:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"Terminal usage"),(0,r.kt)("p",null,"Terminals, also known as command lines or consoles, allow us to accomplish and automate tasks on a computer without the use of a graphical user interface."),(0,r.kt)(s,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line",mdxType:"BadgeLink"},"Command line crash course"),(0,r.kt)(s,{colorScheme:"green",badgeText:"Course",href:"https://www.youtube.com/watch?v=jDINUSK7rXE",mdxType:"BadgeLink"},"Basic Terminal Usage - Cheat Sheet to make the command line EASY"))}c.isMDXComponent=!0},55739:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Operating Systems"))}s.isMDXComponent=!0},25210:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Process Management"))}s.isMDXComponent=!0},73693:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Threads and Concurrency"))}s.isMDXComponent=!0},72175:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 terminal Commands"))}s.isMDXComponent=!0},62300:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Memory management"))}s.isMDXComponent=!0},94668:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){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 c(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,"Interprocess Communication"),(0,r.kt)("p",null,"Interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data"),(0,r.kt)(s,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/inter-process-communication-ipc/",mdxType:"BadgeLink"},"Interprocess Communication"),(0,r.kt)(s,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=dJuYKfR8vec",mdxType:"BadgeLink"},"Interprocess Communication - Neso Academy"))}c.isMDXComponent=!0},86789:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Io management"))}s.isMDXComponent=!0},39736:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Posix basics"))}s.isMDXComponent=!0},47142:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 networking concepts"))}s.isMDXComponent=!0},98419:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"General Knowledge"),(0,r.kt)("p",null,"Operating System is a program that manages a computer\u2019s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/",mdxType:"BadgeLink"},"What is an operating system?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse",mdxType:"BadgeLink"},"Operating Systems: Crash Course Computer Science #18"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1",mdxType:"BadgeLink"},"Introduction to Operating System"))}l.isMDXComponent=!0},75063:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Go"),(0,r.kt)("p",null,"Go is an open source programming language supported by Google. Go can be used to write cloud services, CLI tools, used for API development, and much more."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://go.dev/tour/welcome/1",mdxType:"BadgeLink"},"A Tour of Go \u2013 Go Basics"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://go.dev/doc/",mdxType:"BadgeLink"},"Go Reference Documentation"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://gobyexample.com/",mdxType:"BadgeLink"},"Go by Example - annotated example programs"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.codecademy.com/learn/learn-go",mdxType:"BadgeLink"},"Learn Go | Codecademy"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Course",href:"https://www.w3schools.com/go/",mdxType:"BadgeLink"},"W3Schools Go Tutorial "))}l.isMDXComponent=!0},4332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Rust"),(0,r.kt)("p",null,"Rust is a modern systems programming language focusing on safety, speed, and concurrency. It accomplishes these goals by being memory safe without using garbage collection."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://doc.rust-lang.org/book/",mdxType:"BadgeLink"},"The Rust Programming Language - online book"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://doc.rust-lang.org/stable/rust-by-example/index.html",mdxType:"BadgeLink"},"Rust by Example - collection of runnable examples"))}l.isMDXComponent=!0},76017:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Java"),(0,r.kt)("p",null,"Java is general-purpose language, primarily used for Internet-based applications.\nIt was created in 1995 by James Gosling at Sun Microsystems and is one of the most popular options for backend developers."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.java.com/",mdxType:"BadgeLink"},"Java Website"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Learn",href:"https://www.codecademy.com/learn/learn-java",mdxType:"BadgeLink"},"Codeacademy - Free Course"),(0,r.kt)(i,{colorScheme:"green",badgeText:"Learn",href:"https://www.w3schools.com/java/",mdxType:"BadgeLink"},"W3 Schools Tutorials"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eIrMbAQSU34",mdxType:"BadgeLink"},"Java Crash Course"))}l.isMDXComponent=!0},99855:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Csharp"),(0,r.kt)("p",null,'C# (pronounced "C sharp") is a general purpose programming language made by Microsoft. It is used to perform different tasks and can be used to create web apps, games, mobile apps, etc.'),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Learn",href:"https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-35129-website",mdxType:"BadgeLink"},"C# Learning Path"),(0,r.kt)(i,{colorScheme:"purple",badgeText:"Learn",href:"https://www.w3schools.com/cs/index.php",mdxType:"BadgeLink"},"C# on W3 schools"),(0,r.kt)(i,{badgeText:"Watch",href:"https://docs.microsoft.com/en-us/shows/CSharp-101/?WT.mc_id=Educationalcsharp-c9-scottha",mdxType:"BadgeLink"},"Introduction to C#"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=gfkTfcpWqAY&list=PLTjRvDozrdlz3_FPXwb6lX_HoGXa09Yef",mdxType:"BadgeLink"},"C# tutorials"))}l.isMDXComponent=!0},80110:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PHP"),(0,r.kt)("p",null,"PHP is a server scripting language and a powerful tool for making dynamic and interactive Web pages. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://php.org/",mdxType:"BadgeLink"},"PHP Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.w3schools.com/php/",mdxType:"BadgeLink"},"Learn PHP - W3Schools"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=2eebptXfEvw",mdxType:"BadgeLink"},"PHP For Absolute Beginners"))}l.isMDXComponent=!0},30174:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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. Apart from being used on the frontend in browsers, there is Node.js which is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.w3schools.com/js/",mdxType:"BadgeLink"},"W3Schools \u2013 JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://javascript.info/",mdxType:"BadgeLink"},"The Modern JavaScript Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/hdI2bqOjy3c",mdxType:"BadgeLink"},"JavaScript Crash Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=fBNz5xF-Kx4",mdxType:"BadgeLink"},"Node.js Crash Course"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=TlB_eWDSMt4",mdxType:"BadgeLink"},"Node.js Tutorial for Beginners"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/introduction-to-javascript",mdxType:"BadgeLink"},"Codecademy - Learn JavaScript"))}l.isMDXComponent=!0},82331:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Python"),(0,r.kt)("p",null,"Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedureal or object-oriented programmatic ways."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Python Website",href:"https://www.python.org/",mdxType:"BadgeLink"},"Python Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://www.python.org/about/gettingstarted/",mdxType:"BadgeLink"},"Python Getting Started"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.w3schools.com/python/",mdxType:"BadgeLink"},"W3Schools - Python Tutorial "),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://ehmatthes.github.io/pcc/",mdxType:"BadgeLink"},"Python Crash Course"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://automatetheboringstuff.com/",mdxType:"BadgeLink"},"Automate the Boring Stuff"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-python",mdxType:"BadgeLink"},"Codecademy - Learn Python 2"))}l.isMDXComponent=!0},4236:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Ruby"),(0,r.kt)("p",null,"Ruby is a high-level, interpreted programming language that blends Perl, Smalltalk, Eiffel, Ada, and Lisp. Ruby focuses on simplicity and productivity along with a syntax that reads and writes naturally. Ruby supports procedural, object-oriented and functional programming and is dynamically typed."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Ruby Website",href:"https://www.ruby-lang.org/en/",mdxType:"BadgeLink"},"Ruby Website"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.ruby-lang.org/en/documentation/quickstart/",mdxType:"BadgeLink"},"Learn Ruby in 20 minutes"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.codecademy.com/learn/learn-ruby",mdxType:"BadgeLink"},"Learn Ruby | Codecademy"))}l.isMDXComponent=!0},22533:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 a language"))}s.isMDXComponent=!0},63163:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,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,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=zbKdDsNNOhg",mdxType:"BadgeLink"},"Version Control System Introduction"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=SWYqp7iY_Tc",mdxType:"BadgeLink"},"Git & GitHub Crash Course For Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/Y9XZQO1n_7c?t=21",mdxType:"BadgeLink"},"Learn Git in 20 Minutes"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://github.com/jlord/git-it-electron",mdxType:"BadgeLink"},"Learn Git on the command line"))}l.isMDXComponent=!0},32223:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Version Control Systems"),(0,r.kt)("p",null,"Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://git-scm.com/",mdxType:"BadgeLink"},"Git"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.mercurial-scm.org/",mdxType:"BadgeLink"},"Mercurial"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.atlassian.com/git/tutorials/what-is-version-control",mdxType:"BadgeLink"},"What is Version Control?"))}l.isMDXComponent=!0},66926:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitHub"),(0,r.kt)("p",null,"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:"Official Website",colorScheme:"blue",href:"https://github.com",mdxType:"BadgeLink"},"GitHub Website"),(0,r.kt)(i,{badgeText:"Official Documentation",colorScheme:"blue",href:"https://docs.github.com/en/get-started/quickstart",mdxType:"BadgeLink"},"GitHub Documentation"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=w3jLJU7DT5E",mdxType:"BadgeLink"},"What is GitHub?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=wpISo9TNjfU",mdxType:"BadgeLink"},"Git vs. GitHub: What's the difference?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=RGOj5yH7evk",mdxType:"BadgeLink"},"Git and GitHub for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eulnSXkhE7I",mdxType:"BadgeLink"},"Git and GitHub - CS50 Beyond 2019"))}l.isMDXComponent=!0},11425:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"GitLab"),(0,r.kt)("p",null,"GitLab 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:"Official Website",colorScheme:"blue",href:"https://gitlab.com/",mdxType:"BadgeLink"},"GitLab Website"),(0,r.kt)(i,{badgeText:"Official Documentation",colorScheme:"blue",href:"https://docs.gitlab.com/",mdxType:"BadgeLink"},"GitLab Documentation"))}l.isMDXComponent=!0},94448:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bitbucket"),(0,r.kt)("p",null,"Bitbucket is a Git based hosting and source code repository service that is Atlassian's alternative to other products like GitHub, GitLab etc"),(0,r.kt)("p",null,"Bitbucket offers hosting options via Bitbucket Cloud (Atlassian's servers), Bitbucket Server (customer's on-premise) or Bitbucket Data Centre (number of servers in customers on-premise or cloud environment)"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Bitbucket Website",href:"https://bitbucket.org/product",mdxType:"BadgeLink"},"Bitbucket Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Read",href:"https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket",mdxType:"BadgeLink"},"A brief overview of Bitbucket"),(0,r.kt)(i,{badgeText:"Guide",colorScheme:"green",href:"https://bitbucket.org/product/guides/basics/bitbucket-interface",mdxType:"BadgeLink"},"Getting started with Bitbucket"),(0,r.kt)(i,{badgeText:"Guide",colorScheme:"green",href:"https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud",mdxType:"BadgeLink"},"Using Git with Bitbucket Cloud"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=M44nEyd_5To",mdxType:"BadgeLink"},"Bitbucket tutorial | How to use Bitbucket Cloud"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=i5T-DB8tb4A",mdxType:"BadgeLink"},"Bitbucket Tutorial | Bitbucket for Beginners"))}l.isMDXComponent=!0},1973:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Repo Hosting Services"),(0,r.kt)("p",null,"When working on a team, you often need a remote place to put your code so others can access it, create their own branches, and create or review pull requests. These services often include issue tracking, code review, and continuous integration features. A few popular choices are GitHub, GitLab, BitBucket, and AWS CodeCommit."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://github.com/features/",mdxType:"BadgeLink"},"GitHub"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://about.gitlab.com/",mdxType:"BadgeLink"},"GitLab"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://bitbucket.org/product/guides/getting-started/overview",mdxType:"BadgeLink"},"BitBucket"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://bitbucket.org/product/code-repository",mdxType:"BadgeLink"},"How to choose the best source code repository"))}l.isMDXComponent=!0},29982:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"PostgreSQL"),(0,r.kt)("p",null,"PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Official Website",colorScheme:"red",href:"https://www.postgresql.org/",mdxType:"BadgeLink"},"Official Website"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.geeksforgeeks.org/what-is-postgresql-introduction/",mdxType:"BadgeLink"},"What is PostgreSQL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=qw--VYLpxG4",mdxType:"BadgeLink"},"Learn PostgreSQL Tutorial - Full Course for Beginners"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=eMIxuk0nOkU",mdxType:"BadgeLink"},"Postgres tutorial for Beginners"))}l.isMDXComponent=!0},16468:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MySQL"),(0,r.kt)("p",null,"MySQL is an incredibly popular open source relational database management system (RDBMS). MySQL can be used as a stand-alone client or in conjunction with other services to provide database connectivity. The ",(0,r.kt)("strong",{parentName:"p"},"M")," in LAMP stack stands for MySQL; that alone should provide an idea of its prevalence."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"MySQL Website",href:"https://www.mysql.com/",mdxType:"BadgeLink"},"MySQL website"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.w3schools.com/mySQl/default.asp",mdxType:"BadgeLink"},"W3Schools - MySQL tutorial "),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=7S_tz1z_5bA",mdxType:"BadgeLink"},"MySQL tutorial for beginners"))}l.isMDXComponent=!0},40795:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mariadb"))}s.isMDXComponent=!0},1485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MS SQL"),(0,r.kt)("p",null,"MS SQL (or Microsoft SQL Server) is the Microsoft developed relational database management system (RDBMS). MS SQL uses the T-SQL (Transact-SQL) query language to interact with the relational databases. There are many different versions and editions available of MS SQL"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"MS SQL Website",href:"https://www.microsoft.com/en-ca/sql-server/",mdxType:"BadgeLink"},"MS SQL website"),(0,r.kt)(i,{badgeText:"Tutorial",colorScheme:"green",href:"https://docs.microsoft.com/en-us/sql/sql-server/tutorials-for-sql-server-2016?view=sql-server-ver15",mdxType:"BadgeLink"},"Tutorials for SQL Server"),(0,r.kt)(i,{badgeText:"Course",colorScheme:"green",href:"https://www.youtube.com/watch?v=-EPMOaV7h_Q",mdxType:"BadgeLink"},"SQL Server tutorial for beginners"))}l.isMDXComponent=!0},54528:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Oracle"))}s.isMDXComponent=!0},59539:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Relational Databases"),(0,r.kt)("p",null,"A relational database is ",(0,r.kt)("strong",{parentName:"p"},"a type of database that stores and provides access to data points that are related to one another"),". Relational databases store data in a series of tables. Interconnections between the tables are specified as foreign keys. A foreign key is a unique reference from one row in a relational table to another row in a table, which can be the same table but is most commonly a different table."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/cloud/learn/relational-databases",mdxType:"BadgeLink"},"Relational Databases"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://learnsql.com/blog/codd-article-databases/",mdxType:"BadgeLink"},"51 Years of Relational Databases"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.edx.org/course/databases-5-sql",mdxType:"BadgeLink"},"Databases and SQL"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.udacity.com/course/intro-to-relational-databases--ud197",mdxType:"BadgeLink"},"Intro To Relational Databases"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/OqjJjpjDRLc",mdxType:"BadgeLink"},"What is Relational Database"))}l.isMDXComponent=!0},16090:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Document databases"))}s.isMDXComponent=!0},58036:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Column databases"))}s.isMDXComponent=!0},29569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Timeseries databases"))}s.isMDXComponent=!0},55005:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Realtime databases"))}s.isMDXComponent=!0},68633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"NoSQL databases"),(0,r.kt)("p",null,'NoSQL databases offer data storage and retrieval that is modelled differently to "traditional" relational databases. NoSQL databases typically focus more on horizontal scaling, eventual consistency, speed and flexibility and is used commonly for big data and real-time streaming applications.\nNoSQL is often described as a BASE system (',(0,r.kt)("strong",{parentName:"p"},"B"),"asically ",(0,r.kt)("strong",{parentName:"p"},"A"),"vailable, ",(0,r.kt)("strong",{parentName:"p"},"S"),"oft state, ",(0,r.kt)("strong",{parentName:"p"},"E"),"ventual consistency) as opposed to SQL/relational which typically focus on ACID (Atomicity, Consistency, Isolation, Durability). Common NoSQL data structures include key-value pair, wide column, graph and document."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.mongodb.com/nosql-explained",mdxType:"BadgeLink"},"NoSQL Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=0buKQHokLK8",mdxType:"BadgeLink"},"How do NoSQL Databases work"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=ruz-vK8IesE",mdxType:"BadgeLink"},"SQL vs NoSQL Explained"))}l.isMDXComponent=!0},11223:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Orms"))}s.isMDXComponent=!0},98963:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"ACID"),(0,r.kt)("p",null,"ACID are the four properties of any database system that help in making sure that we are able to perform the transactions in a reliable manner. It's an acronym which refers to the presence of four properties: atomicity, consistency, isolation and durability "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=yaQ5YMWkxq4",mdxType:"BadgeLink"},"ACID Explained: Atomic, Consistent, Isolated & Durable"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://retool.com/blog/whats-an-acid-compliant-database/",mdxType:"BadgeLink"},"What is ACID Compliant Database?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://fauna.com/blog/what-is-acid-compliance-atomicity-consistency-isolation",mdxType:"BadgeLink"},"What is ACID Compliance?: Atomicity, Consistency, Isolation"))}l.isMDXComponent=!0},73696:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Transactions"))}s.isMDXComponent=!0},13381:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"N plus one problem"))}s.isMDXComponent=!0},70052:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Database normalization"))}s.isMDXComponent=!0},20290:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Database indexes"))}s.isMDXComponent=!0},89952:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Data replication"))}s.isMDXComponent=!0},70188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Sharding strategies"))}s.isMDXComponent=!0},17250:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cap theorem"))}s.isMDXComponent=!0},30506:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"More about databases"))}s.isMDXComponent=!0},64361:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"REST"),(0,r.kt)("p",null,"REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.codecademy.com/article/what-is-rest",mdxType:"BadgeLink"},"What is REST?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.redhat.com/en/topics/api/what-is-a-rest-api",mdxType:"BadgeLink"},"What is a REST API?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm",mdxType:"BadgeLink"},'Roy Fielding\'s dissertation chapter, "Representational State Transfer (REST)"'))}l.isMDXComponent=!0},48567:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Json apis"))}s.isMDXComponent=!0},6277:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Soap"))}s.isMDXComponent=!0},35896:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Grpc"))}s.isMDXComponent=!0},81995:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Hateoas"),(0,r.kt)("p",null,"HATEOAS is an acronym for ",(0,r.kt)("b",null,"H"),"ypermedia ",(0,r.kt)("b",null,"A"),"s ",(0,r.kt)("b",null,"T"),"he ",(0,r.kt)("b",null,"E"),"ngine ",(0,r.kt)("b",null,"O"),"f ",(0,r.kt)("b",null,"A"),"pplication ",(0,r.kt)("b",null,"S"),"tate, it's the concept that when sending information over a RESTful API the document received should contain everything the client needs in order to parse and use the data i.e they don't have to contact any other endpoint not explicitly mentioned within the Document "),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/MiOSzpfP1Ww?t=236",mdxType:"BadgeLink"},"Oktane17: Designing Beautiful REST + JSON APIs (3:56 - 5:57)"))}l.isMDXComponent=!0},51690:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Open api spec"))}s.isMDXComponent=!0},28558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cookie based"))}s.isMDXComponent=!0},39693:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"OAuth"),(0,r.kt)("p",null,"OAuth stands for ",(0,r.kt)("strong",{parentName:"p"},"O"),"pen ",(0,r.kt)("strong",{parentName:"p"},"Auth"),'orization and is an open standard for authorization. It works to authorize devices, APIs, servers and applications using access tokens rather than user credentials, known as "secure delegated access".'),(0,r.kt)("p",null,"In its most simplest form, OAuth delegates authentication to services like Facebook, Amazon, Twitter and authorizes third-party applications to access the user account ",(0,r.kt)("strong",{parentName:"p"},"without")," having to enter their login and password."),(0,r.kt)("p",null,"It is mostly utilized for REST/APIs and only provides a limited scope of a user's data."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth",mdxType:"BadgeLink"},"Okta - What the Heck is OAuth"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2",mdxType:"BadgeLink"},"DigitalOcean - An Introduction to OAuth 2"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=t4-416mg6iU",mdxType:"BadgeLink"},"What is OAuth really all about"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=CPbvxxslDTU",mdxType:"BadgeLink"},"OAuth 2.0: An Overview"))}l.isMDXComponent=!0},86863:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 authentication"))}s.isMDXComponent=!0},88862:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Token authentication"))}s.isMDXComponent=!0},35747:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"JWT"),(0,r.kt)("p",null,"JWT stands for JSON Web Token is a token-based encryption open standard/methodology that is used to transfer information securely as a JSON object. Clients and Servers use JWT to securely share information, with the JWT containing encoded JSON objects and claims. JWT tokens are designed to be compact, safe to use within URLs, and ideal for SSO contexts."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"JWT Website",href:"https://jwt.io//",mdxType:"BadgeLink"},"jwt.io Website"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://jwt.io/introduction",mdxType:"BadgeLink"},"Introduction to JSON Web Tokens"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.akana.com/blog/what-is-jwt",mdxType:"BadgeLink"},"What is JWT?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=7Q17ubqLfaM",mdxType:"BadgeLink"},"What Is JWT and Why Should You Use JWT"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=926mknSW9Lo",mdxType:"BadgeLink"},"What is JWT? JSON Web Token Explained"))}l.isMDXComponent=!0},41796:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Openid"))}s.isMDXComponent=!0},52037:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Saml"))}s.isMDXComponent=!0},16633:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Authentication"))}s.isMDXComponent=!0},32790:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},8806:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CDN (Content Delivery Network)"),(0,r.kt)("p",null,"A Content Delivery Network (CDN) service aims to provide high availability and performance improvements of websites. This is achieved with fast delivery of website assets and content typically via geographically closer endpoints to the client requests.\nTraditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) provide servers across the globe which can be used for this purpose.\nServing assets and contents via a CDN reduces bandwidth on website hosting, provides an extra layer of caching to reduce potential outages and can improve website security as well"),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.cloudflare.com/en-ca/learning/cdn/what-is-a-cdn/",mdxType:"BadgeLink"},"CloudFlare - What is a CDN? | How do CDNs work?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://en.wikipedia.org/wiki/Content_delivery_network",mdxType:"BadgeLink"},"Wikipedia - Content Delivery Network"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=841kyd_mfH0",mdxType:"BadgeLink"},"What is Cloud CDN?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Bsq5cKkS33I",mdxType:"BadgeLink"},"What is a Content Delivery Network (CDN)?"))}l.isMDXComponent=!0},69103:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Redis"))}s.isMDXComponent=!0},42024:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Memcached"))}s.isMDXComponent=!0},86326:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"))}s.isMDXComponent=!0},2954:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Client side"))}s.isMDXComponent=!0},66019:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Caching"))}s.isMDXComponent=!0},49549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"MD5"),(0,r.kt)("p",null,"MD5 (Message-Digest Algorithm 5) is a hash function that is currently advised not to be used due to it's extensive vulnerabilities. It is still used as a checksum to verify data integrity."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://pl.wikipedia.org/wiki/MD5",mdxType:"BadgeLink"},"Wikipedia - MD5"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.techtarget.com/searchsecurity/definition/MD5",mdxType:"BadgeLink"},"What is MD5?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://infosecscout.com/why-md5-is-not-safe/",mdxType:"BadgeLink"},"Why is MD5 not safe?"))}l.isMDXComponent=!0},78772:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Sha family"))}s.isMDXComponent=!0},54134:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Bcrypt"),(0,r.kt)("p",null,"bcrypt is a password hashing function, that has proven been proven reliable and secure since it's release in 1999.It has been implemented into most commonly-used programming languages."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=O6cmuiTBZVs",mdxType:"BadgeLink"},"bcrypt explained"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://auth0.com/blog/hashing-in-action-understanding-bcrypt/",mdxType:"BadgeLink"},"Understanding bcrypt"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"NPM",href:"https://www.npmjs.com/package/bcrypt",mdxType:"BadgeLink"},"bcrypt's npm package"))}l.isMDXComponent=!0},26896:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Scrypt"))}s.isMDXComponent=!0},99182:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},5233:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"HTTPS"),(0,r.kt)("p",null,"HTTPS is a secure way to send data between a web server and a browser."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/",mdxType:"BadgeLink"},"What is HTTPS?"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https",mdxType:"BadgeLink"},"Why HTTPS Matters"),(0,r.kt)(i,{badgeText:"Read",colorScheme:"yellow",href:"https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https",mdxType:"BadgeLink"},"Enabling HTTPS on Your Servers"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=hExRDVZHhig",mdxType:"BadgeLink"},"SSL, TLS, HTTP, HTTPS Explained"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=GoXgl9r0Kjk",mdxType:"BadgeLink"},"HTTPS \u2014 Stories from the field"))}l.isMDXComponent=!0},7768:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Cors"),(0,r.kt)("p",null,"Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS",mdxType:"BadgeLink"},"Cross-Origin Resource Sharing (CORS)"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=4KHiSt0oLJ0",mdxType:"BadgeLink"},"CORS in 100 Seconds"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=PNtFSVU-YTI",mdxType:"BadgeLink"},"CORS in 6 minutes"))}l.isMDXComponent=!0},38453:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ssl tls"))}s.isMDXComponent=!0},2598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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"))}s.isMDXComponent=!0},12824:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},85729:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Integration Testing"),(0,r.kt)("p",null,"Integration testing a broad category of tests where multiple software modules are ",(0,r.kt)("strong",{parentName:"p"},"integrated")," and tested as a group. It is meant to test the ",(0,r.kt)("strong",{parentName:"p"},"interaction")," between multiple services, resources, or modules. For example, an API's interaction with a backend service, or a service with a database."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/integration-testing.html",mdxType:"BadgeLink"},"Integration Testing"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/QYCaaNz8emY",mdxType:"BadgeLink"},"What is Integration Testing?"))}l.isMDXComponent=!0},53763:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Unit Testing"),(0,r.kt)("p",null,"Unit testing is where individual ",(0,r.kt)("strong",{parentName:"p"},"units")," (modules, functions/methods, routines, etc.) of software are tested to ensure their correctness. This low-level testing ensures smaller components are functionally sound while taking the burden off of higher-level tests. Generally, a developer writes these tests during the development process and they are run as automated tests."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/unit-testing-guide.html",mdxType:"BadgeLink"},"Unit Testing Tutorial"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/3kzHmaeozDI",mdxType:"BadgeLink"},"What is Unit Testing?"))}l.isMDXComponent=!0},78764:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Functional Testing"),(0,r.kt)("p",null,"Functional testing is where software is tested to ensure functional requirements are met. Usually, it is a form of black box testing in which the tester has no understanding of the source code; testing is performed by providing input and comparing expected/actual output.\nIt contrasts with non-functional testing, which includes performance, load, scalability, and penetration testing."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/functional-testing.html",mdxType:"BadgeLink"},"What is Functional Testing?"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/j_79AXkG4PY",mdxType:"BadgeLink"},"Functional Testing vs Non-Functional Testing"))}l.isMDXComponent=!0},10584:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Testing"),(0,r.kt)("p",null,"A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/software-testing-introduction-importance.html",mdxType:"BadgeLink"},"What is Software Testing?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.browserstack.com/guide/testing-pyramid-for-test-automation",mdxType:"BadgeLink"},"Testing Pyramid"))}l.isMDXComponent=!0},82019:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"CI/CD"),(0,r.kt)("p",null,"CI/CD (Continuous Integration/Continuous Deployment) is the practice of automating building, testing, and deployment of applications with the main goal of detecting issues early, and provide quicker releases to the production environment."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=scEDHsr3APg",mdxType:"BadgeLink"},"DevOps CI/CD Explained in 100 Seconds by Fireship"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=nyKZTKQS_EQ",mdxType:"BadgeLink"},"Automate your Workflows with GitHub Actions"))}l.isMDXComponent=!0},65392:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Design Patterns"),(0,r.kt)("p",null,"Design patterns are typical solutions to commonly occurring problems in software design. They can be broken into three categories: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Creational Patterns for the creation of objects"),(0,r.kt)("li",{parentName:"ul"},"Structural Patterns to provide relationship between objects"),(0,r.kt)("li",{parentName:"ul"},"Behavioral Patterns to help define how objects interact")),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://github.com/kamranahmedse/design-patterns-for-humans",mdxType:"BadgeLink"},"Design Patterns for Humans"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://springframework.guru/gang-of-four-design-patterns/",mdxType:"BadgeLink"},"GOF design patterns"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://refactoring.guru/design-patterns",mdxType:"BadgeLink"},"Design Patterns"))}l.isMDXComponent=!0},1024:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Domain driven design"))}s.isMDXComponent=!0},18712:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Test Driven Development"),(0,r.kt)("p",null,"Test driven development (TDD) is the process of writing tests for software's requirements which will fail until the software is developed to meet those requirements. Once those tests pass, then the cycle repeats to refactor code or develop another feature/requirement. In theory, this ensures that software is written to meet requirements in the simplest form, and avoids code defects."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.guru99.com/test-driven-development.html",mdxType:"BadgeLink"},"What is Test Driven Development (TDD)?"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/",mdxType:"BadgeLink"},"Test-driven development"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/uGaNkTahrIw",mdxType:"BadgeLink"},"Agile in Practice: Test Driven Development"))}l.isMDXComponent=!0},32506:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"SOLID"),(0,r.kt)("p",null,"SOLID is a set of principles applied to object-oriented design (OOD) to create maintainable, understandable, and flexible code, while avoiding code smells and defects. The principles are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Single Responsibility"),(0,r.kt)("li",{parentName:"ul"},"Open/Closed"),(0,r.kt)("li",{parentName:"ul"},"Liskov Substitution"),(0,r.kt)("li",{parentName:"ul"},"Interface Segregation"),(0,r.kt)("li",{parentName:"ul"},"Dependency Inversion")),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Original Paper",href:"https://web.archive.org/web/20150906155800/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf",mdxType:"BadgeLink"},"Design Principles and Design Patterns"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.baeldung.com/solid-principles",mdxType:"BadgeLink"},"SOLID Principles"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design",mdxType:"BadgeLink"},"SOLID: The First 5 Principles of Object Oriented Design"))}l.isMDXComponent=!0},35992:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"KISS"),(0,r.kt)("p",null,"Keep It Simple, Stupid (KISS) is a software design principle that states avoiding needless complexity is the best way to build software that is easier to maintain, understand, and contains fewer defects. A simple product that does a single thing well is better than a complex product that does many things poorly."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://deviq.com/principles/keep-it-simple",mdxType:"BadgeLink"},"Keep It Simple"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.interaction-design.org/literature/topics/keep-it-simple-stupid",mdxType:"BadgeLink"},"Keep It Simple, Stupid (Kiss)"))}l.isMDXComponent=!0},45279:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"YAGNI"),(0,r.kt)("p",null,"You Aren't Going to Need It (YAGNI) is a software design principle from the Extreme Programming (XP) framework that states when developing software, functionality or features should not be added until they are necessary. Within agile software development in general, requirements are always open to change; any extra functionality may end up being wasted time and resources."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://martinfowler.com/bliki/Yagni.html",mdxType:"BadgeLink"},"Yagni"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://deviq.com/principles/yagni",mdxType:"BadgeLink"},"YAGNI"))}l.isMDXComponent=!0},19444:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"DRY"),(0,r.kt)("p",null,"Don't Repeat Yourself (DRY) is a software design principle which encourages developers to not repeat software patterns or code. DRY encourages code reusability, often in the form of methods, functions, or subroutines. When DRY is implemented successfully, developers are able to make one change to update many related elements while avoiding making changes to unrelated elements."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://dzone.com/articles/software-design-principles-dry-and-kiss",mdxType:"BadgeLink"},"Software Design Principles DRY and KISS"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745#s5",mdxType:"BadgeLink"},"Best Practices for Scientific Computing"))}l.isMDXComponent=!0},6828:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Design and development principles"))}s.isMDXComponent=!0},90413:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Monolithic Apps"),(0,r.kt)("p",null,"Monolithic architecture is a pattern in which an application handles requests, executes business logic, interacts with the database, and creates the HTML for the front end. In simpler terms, this one application does many things. It's inner components are highly coupled and deployed as one unit."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://microservices.io/patterns/monolithic.html",mdxType:"BadgeLink"},"Pattern: Monolithic Architecture"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://datamify.medium.com/monolithic-architecture-advantages-and-disadvantages-e71a603eec89",mdxType:"BadgeLink"},"Monolithic Architecture - Advantages & Disadvantages"))}l.isMDXComponent=!0},59107:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Microservices"),(0,r.kt)("p",null,"Microservice architecture is a pattern in which highly cohesive, loosely coupled services are separately developed, maintained, and deployed. Each component handles an individual function, and when combined, the application handles an overall business function."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://microservices.io/patterns/microservices.html",mdxType:"BadgeLink"},"Pattern: Microservice Architecture"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://smartbear.com/solutions/microservices/",mdxType:"BadgeLink"},"What is Microservices?"))}l.isMDXComponent=!0},28227:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Soa"))}s.isMDXComponent=!0},28760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Cqrs"))}s.isMDXComponent=!0},96026:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Serverless"),(0,r.kt)("p",null,"Serverless is an architecture in which a developer builds and runs applications without provisioning or managing servers. With cloud computing/serverless, servers exist but are managed by the cloud provider. Resources are used as they are needed, on demand and often using auto scaling."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.ibm.com/cloud/learn/serverless",mdxType:"BadgeLink"},"Serverless"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://aws.amazon.com/serverless/",mdxType:"BadgeLink"},"AWS Services"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=W_VV2Fx32_Y&ab_channel=Fireship",mdxType:"BadgeLink"},"Serverless Computing in 100 Seconds"))}l.isMDXComponent=!0},2938:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Architectural patterns"))}s.isMDXComponent=!0},85569:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Elasticsearch"),(0,r.kt)("p",null,"Elastic search at its core is a document-oriented search engine. It is a document based database that lets you INSERT, DELETE , RETRIEVE and even perform analytics on the saved records. But, Elastic Search is unlike any other general purpose database you have worked with, in the past. It's essentially a search engine and offers an arsenal of features you can use to retrieve the data stored in it, as per your search criteria. And that too, at lightning speeds."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://www.elastic.co/elasticsearch/",mdxType:"BadgeLink"},"Elasticsearch Website"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Docs",href:"https://www.elastic.co/guide/index.html",mdxType:"BadgeLink"},"Elasticsearch Documentation"))}l.isMDXComponent=!0},7328:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Solr"))}s.isMDXComponent=!0},79359:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Search engines"))}s.isMDXComponent=!0},93093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Rabbitmq"))}s.isMDXComponent=!0},44196:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Kafka"))}s.isMDXComponent=!0},91265:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Message brokers"))}s.isMDXComponent=!0},53797:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Docker"),(0,r.kt)("p",null,"Docker is a platform for working with containerized applications. Among its features are a daemon and client for managing and interacting with containers, registries for storing images, and a desktop application to package all these features together."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://docs.docker.com/",mdxType:"BadgeLink"},"Docker Documentation"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://aws.amazon.com/docker/",mdxType:"BadgeLink"},"What is Docker | AWS "),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/3c-iBn73dDE",mdxType:"BadgeLink"},"Docker Tutorial"))}l.isMDXComponent=!0},82153:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Rkt"))}s.isMDXComponent=!0},12998:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Lxc"))}s.isMDXComponent=!0},57485:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Containerization"))}s.isMDXComponent=!0},5373:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79033:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},33620:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},47898:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Neo4j"))}s.isMDXComponent=!0},78826:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Graph databases"))}s.isMDXComponent=!0},6084:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 sockets"))}s.isMDXComponent=!0},34821:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Nginx"))}s.isMDXComponent=!0},55293:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Apache"),(0,r.kt)("p",null,"Apache is a free, open-source HTTP server, available on many operating systems, but mainly used on Linux distributions. It is one of the most popular options for web developers, as it accounts for over 30% of all the websites, as estimated by W3Techs."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{colorScheme:"blue",badgeText:"Official Website",href:"https://httpd.apache.org/",mdxType:"BadgeLink"},"Apache Server Website"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=kaaenHXO4t4",mdxType:"BadgeLink"},"What is Apache Web Server?"))}l.isMDXComponent=!0},28549:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Caddy"))}s.isMDXComponent=!0},297:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Ms iis"))}s.isMDXComponent=!0},94521:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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 servers"))}s.isMDXComponent=!0},78878:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Mitigation strategies"))}s.isMDXComponent=!0},52928:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Instrumentation monitoring telemetry"))}s.isMDXComponent=!0},50760:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Migration strategies"))}s.isMDXComponent=!0},80576:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var 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"),c={};function l(e){var t=e.components,n=o(e,["components"]);return(0,r.kt)("wrapper",Object.assign({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",null,"Horizontal/Vertical Scaling"),(0,r.kt)("p",null,"Horizontal scaling is a change in the ",(0,r.kt)("strong",{parentName:"p"},"number")," of a resource. For example, increasing the number of virtual machines processing messages in a queue. Vertical scaling is a change in the ",(0,r.kt)("strong",{parentName:"p"},"size/power")," of a resource. For example, increasing the memory or disk space available to a machine. Scaling can be applied to databases, cloud resources, and other areas of computing."),(0,r.kt)(s,{mdxType:"ResourceGroupTitle"},"Free Content"),(0,r.kt)(i,{badgeText:"Watch",href:"https://youtu.be/xpDnVSmNFX0",mdxType:"BadgeLink"},"System Design Basics: Horizontal vs. Vertical Scaling"),(0,r.kt)(i,{badgeText:"Watch",href:"https://www.youtube.com/watch?v=Y-Gl4HEyeUQ",mdxType:"BadgeLink"},"System Design 101"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://touchstonesecurity.com/horizontal-vs-vertical-scaling-what-you-need-to-know/",mdxType:"BadgeLink"},"Horizontal vs Vertical Scaling"),(0,r.kt)(i,{colorScheme:"yellow",badgeText:"Read",href:"https://www.geeksforgeeks.org/horizontal-and-vertical-scaling-in-databases/",mdxType:"BadgeLink"},"Scaling In Databases"))}l.isMDXComponent=!0},54572:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Observability"))}s.isMDXComponent=!0},99222:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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,"Scalability"))}s.isMDXComponent=!0},51403:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},78093:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65332:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},34558:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},20063:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},67489:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},65191:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},97890:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},69556:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},62388:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79101:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},57913:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},79673:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},51464:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},48188:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},91048:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},44894:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},49598:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return s}});n(67294);var r=n(3905);function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a={};function s(e){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},58712: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"}]')},19552: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":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"/roadmaps/101-backend/resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"/roadmaps/101-backend/content-paths.json","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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","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"}]')},18359: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","testing-your-apps:mocha":"/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md","testing-your-apps:chai":"/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md","testing-your-apps:ava":"/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md","testing-your-apps:jasmine":"/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.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"}')},39258:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Frontend Developer Roadmap: Learn to become a modern frontend developer","description":"Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.","keywords":["javascript roadmap 2022","frontend roadmap 2022","frontend developer roadmap 2022","guide to becoming a developer","guide to becoming a frontend developer","frontend developer","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 2022","featuredTitle":"Frontend","featuredDescription":"Step by step guide to becoming a frontend developer in 2022","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"}')},33309:function(e){"use strict";e.exports=JSON.parse('{"home":"/roadmaps/101-backend/content/readme.md","internet":"/roadmaps/101-backend/content/100-internet/readme.md","internet:how-does-the-internet-work":"/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md","internet:what-is-http":"/roadmaps/101-backend/content/100-internet/101-what-is-http.md","internet:browsers-and-how-they-work":"/roadmaps/101-backend/content/100-internet/102-browsers-and-how-they-work.md","internet:dns-and-how-it-works":"/roadmaps/101-backend/content/100-internet/103-dns-and-how-it-works.md","internet:what-is-domain-name":"/roadmaps/101-backend/content/100-internet/104-what-is-domain-name.md","internet:what-is-hosting":"/roadmaps/101-backend/content/100-internet/105-what-is-hosting.md","basic-frontend":"/roadmaps/101-backend/content/101-basic-frontend/readme.md","basic-frontend:html":"/roadmaps/101-backend/content/101-basic-frontend/100-html.md","basic-frontend:css":"/roadmaps/101-backend/content/101-basic-frontend/101-css.md","basic-frontend:javascript":"/roadmaps/101-backend/content/101-basic-frontend/102-javascript.md","os-general-knowledge":"/roadmaps/101-backend/content/102-os-general-knowledge/readme.md","os-general-knowledge:terminal-usage":"/roadmaps/101-backend/content/102-os-general-knowledge/100-terminal-usage.md","os-general-knowledge:how-oss-work-in-general":"/roadmaps/101-backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md","os-general-knowledge:process-management":"/roadmaps/101-backend/content/102-os-general-knowledge/102-process-management.md","os-general-knowledge:threads-and-concurrency":"/roadmaps/101-backend/content/102-os-general-knowledge/103-threads-and-concurrency.md","os-general-knowledge:basic-terminal-commands":"/roadmaps/101-backend/content/102-os-general-knowledge/104-basic-terminal-commands.md","os-general-knowledge:memory-management":"/roadmaps/101-backend/content/102-os-general-knowledge/105-memory-management.md","os-general-knowledge:interprocess-communication":"/roadmaps/101-backend/content/102-os-general-knowledge/106-interprocess-communication.md","os-general-knowledge:io-management":"/roadmaps/101-backend/content/102-os-general-knowledge/107-io-management.md","os-general-knowledge:posix-basics":"/roadmaps/101-backend/content/102-os-general-knowledge/108-posix-basics.md","os-general-knowledge:basic-networking-concepts":"/roadmaps/101-backend/content/102-os-general-knowledge/109-basic-networking-concepts.md","learn-a-language":"/roadmaps/101-backend/content/103-learn-a-language/readme.md","learn-a-language:go":"/roadmaps/101-backend/content/103-learn-a-language/100-go.md","learn-a-language:rust":"/roadmaps/101-backend/content/103-learn-a-language/101-rust.md","learn-a-language:java":"/roadmaps/101-backend/content/103-learn-a-language/102-java.md","learn-a-language:csharp":"/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md","learn-a-language:php":"/roadmaps/101-backend/content/103-learn-a-language/103-php.md","learn-a-language:javascript":"/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md","learn-a-language:python":"/roadmaps/101-backend/content/103-learn-a-language/106-python.md","learn-a-language:ruby":"/roadmaps/101-backend/content/103-learn-a-language/107-ruby.md","version-control-systems":"/roadmaps/101-backend/content/104-version-control-systems/readme.md","version-control-systems:git":"/roadmaps/101-backend/content/104-version-control-systems/100-basic-usage-of-git.md","repo-hosting-services":"/roadmaps/101-backend/content/105-repo-hosting-services/readme.md","repo-hosting-services:github":"/roadmaps/101-backend/content/105-repo-hosting-services/100-github.md","repo-hosting-services:gitlab":"/roadmaps/101-backend/content/105-repo-hosting-services/101-gitlab.md","repo-hosting-services:bitbucket":"/roadmaps/101-backend/content/105-repo-hosting-services/102-bitbucket.md","relational-databases":"/roadmaps/101-backend/content/106-relational-databases/readme.md","relational-databases:postgresql":"/roadmaps/101-backend/content/106-relational-databases/100-postgresql.md","relational-databases:mysql":"/roadmaps/101-backend/content/106-relational-databases/101-mysql.md","relational-databases:mariadb":"/roadmaps/101-backend/content/106-relational-databases/102-mariadb.md","relational-databases:mssql":"/roadmaps/101-backend/content/106-relational-databases/103-mssql.md","relational-databases:oracle":"/roadmaps/101-backend/content/106-relational-databases/104-oracle.md","nosql-databases":"/roadmaps/101-backend/content/107-nosql-databases/readme.md","nosql-databases:document-databases":"/roadmaps/101-backend/content/107-nosql-databases/100-document-databases.md","nosql-databases:column-databases":"/roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md","nosql-databases:timeseries-databases":"/roadmaps/101-backend/content/107-nosql-databases/102-timeseries-databases.md","nosql-databases:realtime-databases":"/roadmaps/101-backend/content/107-nosql-databases/103-realtime-databases.md","more-about-databases":"/roadmaps/101-backend/content/108-more-about-databases/readme.md","more-about-databases:orms":"/roadmaps/101-backend/content/108-more-about-databases/100-orms.md","more-about-databases:acid":"/roadmaps/101-backend/content/108-more-about-databases/101-acid.md","more-about-databases:transactions":"/roadmaps/101-backend/content/108-more-about-databases/102-transactions.md","more-about-databases:n-plus-one-problem":"/roadmaps/101-backend/content/108-more-about-databases/103-n-plus-one-problem.md","more-about-databases:database-normalization":"/roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md","more-about-databases:database-indexes":"/roadmaps/101-backend/content/108-more-about-databases/105-database-indexes.md","more-about-databases:data-replication":"/roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md","more-about-databases:sharding-strategies":"/roadmaps/101-backend/content/108-more-about-databases/107-sharding-strategies.md","more-about-databases:cap-theorem":"/roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md","apis":"/roadmaps/101-backend/content/109-apis/readme.md","apis:rest":"/roadmaps/101-backend/content/109-apis/100-rest.md","apis:json-apis":"/roadmaps/101-backend/content/109-apis/101-json-apis.md","apis:soap":"/roadmaps/101-backend/content/109-apis/102-soap.md","apis:grpc":"/roadmaps/101-backend/content/109-apis/103-grpc.md","apis:hateoas":"/roadmaps/101-backend/content/109-apis/104-hateoas.md","apis:open-api-spec":"/roadmaps/101-backend/content/109-apis/105-open-api-spec.md","apis:authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/readme.md","apis:authentication:cookie-based":"/roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md","apis:authentication:oauth":"/roadmaps/101-backend/content/109-apis/106-authentication/101-oauth.md","apis:authentication:basic-authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/102-basic-authentication.md","apis:authentication:token-authentication":"/roadmaps/101-backend/content/109-apis/106-authentication/103-token-authentication.md","apis:authentication:jwt":"/roadmaps/101-backend/content/109-apis/106-authentication/104-jwt.md","apis:authentication:openid":"/roadmaps/101-backend/content/109-apis/106-authentication/105-openid.md","apis:authentication:saml":"/roadmaps/101-backend/content/109-apis/106-authentication/105-saml.md","caching":"/roadmaps/101-backend/content/110-caching/readme.md","caching:cdn":"/roadmaps/101-backend/content/110-caching/100-cdn.md","caching:server-side":"/roadmaps/101-backend/content/110-caching/101-server-side/readme.md","caching:server-side:redis":"/roadmaps/101-backend/content/110-caching/101-server-side/100-redis.md","caching:server-side:memcached":"/roadmaps/101-backend/content/110-caching/101-server-side/101-memcached.md","caching:client-side":"/roadmaps/101-backend/content/110-caching/102-client-side.md","web-security-knowledge":"/roadmaps/101-backend/content/111-web-security-knowledge/readme.md","web-security-knowledge:md5":"/roadmaps/101-backend/content/111-web-security-knowledge/100-md5.md","web-security-knowledge:sha-family":"/roadmaps/101-backend/content/111-web-security-knowledge/101-sha-family.md","web-security-knowledge:bcrypt":"/roadmaps/101-backend/content/111-web-security-knowledge/102-bcrypt.md","web-security-knowledge:scrypt":"/roadmaps/101-backend/content/111-web-security-knowledge/104-scrypt.md","web-security-knowledge:https":"/roadmaps/101-backend/content/111-web-security-knowledge/105-https.md","web-security-knowledge:content-security-policy":"/roadmaps/101-backend/content/111-web-security-knowledge/105-content-security-policy.md","web-security-knowledge:cors":"/roadmaps/101-backend/content/111-web-security-knowledge/106-cors.md","web-security-knowledge:ssl-tls":"/roadmaps/101-backend/content/111-web-security-knowledge/107-ssl-tls.md","web-security-knowledge:owasp":"/roadmaps/101-backend/content/111-web-security-knowledge/108-owasp.md","testing":"/roadmaps/101-backend/content/112-testing/readme.md","testing:integration-testing":"/roadmaps/101-backend/content/112-testing/100-integration-testing.md","testing:unit-testing":"/roadmaps/101-backend/content/112-testing/101-unit-testing.md","testing:functional-testing":"/roadmaps/101-backend/content/112-testing/102-functional-testing.md","ci-cd":"/roadmaps/101-backend/content/113-ci-cd.md","design-and-development-principles":"/roadmaps/101-backend/content/114-design-and-development-principles/readme.md","design-and-development-principles:gof-design-patterns":"/roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md","design-and-development-principles:domain-driven-design":"/roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md","design-and-development-principles:test-driven-development":"/roadmaps/101-backend/content/114-design-and-development-principles/102-test-driven-development.md","design-and-development-principles:solid":"/roadmaps/101-backend/content/114-design-and-development-principles/103-solid.md","design-and-development-principles:kiss":"/roadmaps/101-backend/content/114-design-and-development-principles/104-kiss.md","design-and-development-principles:yagni":"/roadmaps/101-backend/content/114-design-and-development-principles/105-yagni.md","design-and-development-principles:dry":"/roadmaps/101-backend/content/114-design-and-development-principles/106-dry.md","architectural-patterns":"/roadmaps/101-backend/content/115-architectural-patterns/readme.md","architectural-patterns:monolithic-apps":"/roadmaps/101-backend/content/115-architectural-patterns/100-monolithic-apps.md","architectural-patterns:microservices":"/roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md","architectural-patterns:soa":"/roadmaps/101-backend/content/115-architectural-patterns/102-soa.md","architectural-patterns:cqrs":"/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md","architectural-patterns:serverless":"/roadmaps/101-backend/content/115-architectural-patterns/104-serverless.md","search-engines":"/roadmaps/101-backend/content/116-search-engines/readme.md","search-engines:elasticsearch":"/roadmaps/101-backend/content/116-search-engines/100-elasticsearch.md","search-engines:solr":"/roadmaps/101-backend/content/116-search-engines/101-solr.md","message-brokers":"/roadmaps/101-backend/content/117-message-brokers/readme.md","message-brokers:rabbitmq":"/roadmaps/101-backend/content/117-message-brokers/100-rabbitmq.md","message-brokers:kafka":"/roadmaps/101-backend/content/117-message-brokers/101-kafka.md","containerization":"/roadmaps/101-backend/content/118-containerization/readme.md","containerization:docker":"/roadmaps/101-backend/content/118-containerization/100-docker.md","containerization:rkt":"/roadmaps/101-backend/content/118-containerization/101-rkt.md","containerization:lxc":"/roadmaps/101-backend/content/118-containerization/102-lxc.md","graphql":"/roadmaps/101-backend/content/119-graphql/readme.md","graphql:apollo":"/roadmaps/101-backend/content/119-graphql/100-apollo.md","graphql:relay-modern":"/roadmaps/101-backend/content/119-graphql/101-relay-modern.md","graph-databases":"/roadmaps/101-backend/content/120-graph-databases/readme.md","graph-databases:neo4j":"/roadmaps/101-backend/content/120-graph-databases/100-neo4j.md","web-sockets":"/roadmaps/101-backend/content/121-web-sockets.md","web-servers":"/roadmaps/101-backend/content/122-web-servers/readme.md","web-servers:nginx":"/roadmaps/101-backend/content/122-web-servers/100-nginx.md","web-servers:apache":"/roadmaps/101-backend/content/122-web-servers/101-apache.md","web-servers:caddy":"/roadmaps/101-backend/content/122-web-servers/102-caddy.md","web-servers:ms-iis":"/roadmaps/101-backend/content/122-web-servers/103-ms-iis.md","scalability":"/roadmaps/101-backend/content/123-scalability/readme.md","scalability:mitigation-strategies":"/roadmaps/101-backend/content/123-scalability/100-mitigation-strategies.md","scalability:instrumentation-monitoring-telemetry":"/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md","scalability:migration-strategies":"/roadmaps/101-backend/content/123-scalability/102-migration-strategies.md","scalability:horizontal-vertial-scaling":"/roadmaps/101-backend/content/123-scalability/103-horizontal-vertial-scaling.md","scalability:observability":"/roadmaps/101-backend/content/123-scalability/104-observability.md"}')},76782:function(e){"use strict";e.exports=JSON.parse('{"seo":{"title":"Backend Developer Roadmap: Learn to become a modern backend developer","description":"Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.","keywords":["backend roadmap 2022","backend developer roadmap 2022","guide to becoming a developer","guide to becoming a backend developer","backend roadmap","backend developer","backend engineer","backend skills","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 2022","featuredTitle":"Backend","featuredDescription":"Step by step guide to becoming a backend developer in 2022","featured":true,"imageUrl":"/roadmaps/backend.png","jsonUrl":"/project/backend.json","resourcesPath":"./resources.md","author":{"name":"Kamran Ahmed","url":"https://twitter.com/kamranahmedse"},"pdfUrl":"https://kamranahmedse.gumroad.com/l/backend-roadmap","contentPathsFilePath":"./content-paths.json"}')},54017: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":["devops roadmap 2022","sre roadmap 2022","operations roadmap 2022","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 2022","featuredTitle":"DevOps","featuredDescription":"Step by step guide for DevOps or operations role in 2022","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"}')},88477: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":["react roadmap 2022","react developer roadmap 2022","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 2022.","featuredTitle":"React","featuredDescription":"Step by step guide to become a React Developer in 2022","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 2022.","featuredTitle":"Angular","featuredDescription":"Step by step guide to become a Angular Developer in 2022","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"}')},19508: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 2022","featuredTitle":"Android","featuredDescription":"Step by step guide to becoming an Android Developer in 2022","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"}}')},34099: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 2022","featuredTitle":"Python","featuredDescription":"Step by step guide to becoming a Python Developer in 2022","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"}}')},82737: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 2022","featuredTitle":"Go","featuredDescription":"Step by step guide to becoming a Go developer in 2022","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"}}')},62507: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 2022","featuredTitle":"Java","featuredDescription":"Step by step guide to becoming a Java Developer in 2022","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"}')},88951: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 2022","featuredTitle":"DBA","featuredDescription":"Step by step guide to become a PostgreSQL DBA in 2022","landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Alexey Lesovsky","url":"https://github.com/lesovsky"},"isCommunity":false,"isTextHeavy":true,"featured":true,"detailed":false,"versions":[]}')},67559: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 2022.","featuredTitle":"AWS","featuredDescription":"Step by step guide to learn AWS in 2022","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"}}')},83204: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 2022","featuredTitle":"QA","featuredDescription":"Step by step guide to becoming a modern QA Engineer in 2022","isUpcoming":true,"featured":true,"landingPath":"./landscape.md","resourcesPath":"./resources.md","author":{"name":"Anas Fitiani","url":"https://github.com/anas-qa"}}')},91797:function(e){"use strict";e.exports=JSON.parse('[{"id":"queue-data-structure","title":"Queue Data Structure","description":"Learn everything you need to know about the queue data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=mDCi1lXd9hc","authorUsername":"kamranahmedse","duration":"4 minutes","updatedAt":"2022-02-14T19:59:14.191Z","createdAt":"2022-02-14T19:59:14.191Z"},{"id":"stack-data-structure","title":"Stack Data Structure","description":"Learn everything you need to know about the stack data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=I5lq6sCuABE","authorUsername":"kamranahmedse","duration":"5 minutes","updatedAt":"2022-02-07T19:59:14.191Z","createdAt":"2022-02-07T19:59:14.191Z"},{"id":"linked-list-data-structure","title":"Linked List Data Structure","description":"Learn everything you need to know about linked list data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=odW9FU8jPRQ","authorUsername":"kamranahmedse","duration":"11 minutes","updatedAt":"2022-01-31T19:59:14.191Z","createdAt":"2022-01-31T19:59:14.191Z"},{"id":"array-structure","title":"All about Array Data Structure","description":"Learn everything you need to know about array data structure","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=QJNwK2uJyGs","authorUsername":"kamranahmedse","duration":"10 minutes","updatedAt":"2022-01-09T19:59:14.191Z","createdAt":"2022-01-09T19:59:14.191Z"},{"id":"what-are-data-structures","title":"What are Data Structures?","description":"Learn about the different data structures in this illustrated series","isPro":false,"youtubeLink":"https://www.youtube.com/watch?v=9rhT3P1MDHk","authorUsername":"kamranahmedse","duration":"1 minute","updatedAt":"2021-12-12T19:59:14.191Z","createdAt":"2021-12-12T19:59:14.191Z"},{"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/366-ef3f1077adc9d727.js b/_next/static/chunks/681-8aca3fe8f1cbb5d7.js similarity index 99% rename from _next/static/chunks/366-ef3f1077adc9d727.js rename to _next/static/chunks/681-8aca3fe8f1cbb5d7.js index 2ea1eb5ad..c81305404 100644 --- a/_next/static/chunks/366-ef3f1077adc9d727.js +++ b/_next/static/chunks/681-8aca3fe8f1cbb5d7.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[366],{98974:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/yaQ5YMWkxq4",title:"Acid Explained with Examples"}))}c.isMDXComponent=!0},73730:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/HiBDZgTNpXY",title:"All about HTTP Caching"}))}c.isMDXComponent=!0},71232:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/QJNwK2uJyGs",title:"Array Data Structure"}))}c.isMDXComponent=!0},77589:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/n3NKGsM3iEw",title:"Arrays and Objects in JavaScript"}))}c.isMDXComponent=!0},38001:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/VyIK6SV5f7o",title:"Asynchronous JavaScript"}))}c.isMDXComponent=!0},6736:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Z0bH0cMY0E8",title:"Big O Notation \u2014 Calculating Time Complexity"}))}c.isMDXComponent=!0},45489:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/6DXEPcXKQNY",title:"Content Delivery Networks"}))}c.isMDXComponent=!0},79029:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Wj0od2ag5sk",title:"DNS and how does it work?"}))}c.isMDXComponent=!0},74046:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/7lxgpKh_fRY",title:"DNS Records"}))}c.isMDXComponent=!0},27327:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/RIiq4tTt6rI",title:"Floating Point Arithmetic"}))}c.isMDXComponent=!0},66527:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/O3uT2l6vgZ8",title:"Freeze and Seal in JavaScript"}))}c.isMDXComponent=!0},85512:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/lgaxU7CRmxU",title:"How to use CSS Variables?"}))}c.isMDXComponent=!0},48688:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/nyKZTKQS_EQ",title:"Automate with GitHub Actions"}))}c.isMDXComponent=!0},4474:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/-ZI0ea5O2oA",title:"JavaScript Fetch API"}))}c.isMDXComponent=!0},36955:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/odW9FU8jPRQ",title:"Linked List Data Structure"}))}c.isMDXComponent=!0},2012:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/galcDRNd5Ow",title:"Load Balancers 101"}))}c.isMDXComponent=!0},85495:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/dV8mjZd1OtU",title:"OSI Model Explained"}))}c.isMDXComponent=!0},24913:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"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."),(0,r.kt)("p",null,"If you want to get an idea of what we are going to be building have a look at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://kamranahmed.info/githunt"}),"GitHunt"),". Also the complete source code can be found at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/githunt"}),"@kamranahmedse/githunt")),(0,r.kt)("h2",null,"Intro and Basic Setup"),(0,r.kt)("p",null,"The video below gives you the basic introduction about the project and explains what we are going to build."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/NyG7YJWJd6s",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Building the Interface"),(0,r.kt)("p",null,"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."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/zPqzKqjtEL4",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Building the View Switcher"),(0,r.kt)("p",null,'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.'),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/EYzPJsJwjFg",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Fetching Remote Data"),(0,r.kt)("p",null,"Below is the final lesson where we complete the application by integrating the GitHub API to make the data dynamic."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/G2IbP9B_4PU",title:"Practical Introduction to React Part 1"}))}c.isMDXComponent=!0},77e3:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/BvrkobaCVVE",title:"All about Promises in JavaScript"}))}c.isMDXComponent=!0},90898:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/mDCi1lXd9hc",title:"Queue Data Structure"}))}c.isMDXComponent=!0},61516:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/nDv3yXdD0rk",title:"Random Number Generators"}))}c.isMDXComponent=!0},37850:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/a2rcgzludDU",title:"Scaling the Unscalable"}))}c.isMDXComponent=!0},39345:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/k3rFFLmQCuY",title:"SSH vs TLS vs SSL"}))}c.isMDXComponent=!0},56851:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/I5lq6sCuABE",title:"Stack Data Structure"}))}c.isMDXComponent=!0},35069:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Y-Gl4HEyeUQ",title:"System Design 101"}))}c.isMDXComponent=!0},1559:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/F5rni9fr1yE",title:"TCP/IP Model Explained"}))}c.isMDXComponent=!0},32382:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/37AFBZv4_6Y",title:"Transport Protocols: TCP vs UDP"}))}c.isMDXComponent=!0},68496:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/9rhT3P1MDHk",title:"What are Data Structures?"}))}c.isMDXComponent=!0},45875:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/_RbsFXWRZ10",title:"What is CAP Theorem?"}))}c.isMDXComponent=!0},52635:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/0yc2UANSDiw",title:"What is Dependency Injection?"}))}c.isMDXComponent=!0},16095:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/7Tok22qxPzQ",title:"DOM, Shadow DOM, Virtual DOM"}))}c.isMDXComponent=!0},72068:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/rpqsSkTIdAw",title:"What is Eventual Consistency?"}))}c.isMDXComponent=!0},26372:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/ImHSpwUlNVc",title:"YAML in Depth"}))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[681],{98974:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/yaQ5YMWkxq4",title:"Acid Explained with Examples"}))}c.isMDXComponent=!0},73730:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/HiBDZgTNpXY",title:"All about HTTP Caching"}))}c.isMDXComponent=!0},71232:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/QJNwK2uJyGs",title:"Array Data Structure"}))}c.isMDXComponent=!0},77589:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/n3NKGsM3iEw",title:"Arrays and Objects in JavaScript"}))}c.isMDXComponent=!0},38001:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/VyIK6SV5f7o",title:"Asynchronous JavaScript"}))}c.isMDXComponent=!0},6736:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Z0bH0cMY0E8",title:"Big O Notation \u2014 Calculating Time Complexity"}))}c.isMDXComponent=!0},45489:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/6DXEPcXKQNY",title:"Content Delivery Networks"}))}c.isMDXComponent=!0},79029:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Wj0od2ag5sk",title:"DNS and how does it work?"}))}c.isMDXComponent=!0},74046:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/7lxgpKh_fRY",title:"DNS Records"}))}c.isMDXComponent=!0},27327:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/RIiq4tTt6rI",title:"Floating Point Arithmetic"}))}c.isMDXComponent=!0},66527:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/O3uT2l6vgZ8",title:"Freeze and Seal in JavaScript"}))}c.isMDXComponent=!0},85512:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/lgaxU7CRmxU",title:"How to use CSS Variables?"}))}c.isMDXComponent=!0},48688:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/nyKZTKQS_EQ",title:"Automate with GitHub Actions"}))}c.isMDXComponent=!0},4474:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/-ZI0ea5O2oA",title:"JavaScript Fetch API"}))}c.isMDXComponent=!0},36955:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/odW9FU8jPRQ",title:"Linked List Data Structure"}))}c.isMDXComponent=!0},2012:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/galcDRNd5Ow",title:"Load Balancers 101"}))}c.isMDXComponent=!0},85495:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/dV8mjZd1OtU",title:"OSI Model Explained"}))}c.isMDXComponent=!0},24913:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"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."),(0,r.kt)("p",null,"If you want to get an idea of what we are going to be building have a look at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://kamranahmed.info/githunt"}),"GitHunt"),". Also the complete source code can be found at ",(0,r.kt)("a",Object.assign({parentName:"p"},{href:"https://github.com/kamranahmedse/githunt"}),"@kamranahmedse/githunt")),(0,r.kt)("h2",null,"Intro and Basic Setup"),(0,r.kt)("p",null,"The video below gives you the basic introduction about the project and explains what we are going to build."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/NyG7YJWJd6s",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Building the Interface"),(0,r.kt)("p",null,"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."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/zPqzKqjtEL4",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Building the View Switcher"),(0,r.kt)("p",null,'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.'),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/EYzPJsJwjFg",title:"Practical Introduction to React Part 1"}),(0,r.kt)("h2",null,"Fetching Remote Data"),(0,r.kt)("p",null,"Below is the final lesson where we complete the application by integrating the GitHub API to make the data dynamic."),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/G2IbP9B_4PU",title:"Practical Introduction to React Part 1"}))}c.isMDXComponent=!0},77e3:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/BvrkobaCVVE",title:"All about Promises in JavaScript"}))}c.isMDXComponent=!0},29495:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/mDCi1lXd9hc",title:"Queue Data Structure"}))}c.isMDXComponent=!0},61516:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/nDv3yXdD0rk",title:"Random Number Generators"}))}c.isMDXComponent=!0},37850:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/a2rcgzludDU",title:"Scaling the Unscalable"}))}c.isMDXComponent=!0},39345:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/k3rFFLmQCuY",title:"SSH vs TLS vs SSL"}))}c.isMDXComponent=!0},56851:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/I5lq6sCuABE",title:"Stack Data Structure"}))}c.isMDXComponent=!0},35069:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/Y-Gl4HEyeUQ",title:"System Design 101"}))}c.isMDXComponent=!0},1559:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/F5rni9fr1yE",title:"TCP/IP Model Explained"}))}c.isMDXComponent=!0},32382:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/37AFBZv4_6Y",title:"Transport Protocols: TCP vs UDP"}))}c.isMDXComponent=!0},68496:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/9rhT3P1MDHk",title:"What are Data Structures?"}))}c.isMDXComponent=!0},45875:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/_RbsFXWRZ10",title:"What is CAP Theorem?"}))}c.isMDXComponent=!0},52635:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/0yc2UANSDiw",title:"What is Dependency Injection?"}))}c.isMDXComponent=!0},16095:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/7Tok22qxPzQ",title:"DOM, Shadow DOM, Virtual DOM"}))}c.isMDXComponent=!0},72068:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/rpqsSkTIdAw",title:"What is Eventual Consistency?"}))}c.isMDXComponent=!0},26372:function(t,e,n){n.r(e),n.d(e,{default:function(){return c}});n(67294);var r=n(3905);function o(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var u={};function c(t){var e=t.components,n=o(t,["components"]);return(0,r.kt)("wrapper",Object.assign({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("iframe",{src:"https://www.youtube.com/embed/ImHSpwUlNVc",title:"YAML in Depth"}))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/[roadmap]-ac6e875cba90c106.js b/_next/static/chunks/pages/[roadmap]-38b210f235d8cd04.js similarity index 96% rename from _next/static/chunks/pages/[roadmap]-ac6e875cba90c106.js rename to _next/static/chunks/pages/[roadmap]-38b210f235d8cd04.js index 90370e06e..a384fd8c1 100644 --- a/_next/static/chunks/pages/[roadmap]-ac6e875cba90c106.js +++ b/_next/static/chunks/pages/[roadmap]-38b210f235d8cd04.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[524],{54507:function(n,r,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]",function(){return i(71296)}])},71296:function(n,r,i){"use strict";i.r(r),i.d(r,{__N_SSG:function(){return f},default:function(){return h}});var e=i(85893),a=(i(67294),i(25115)),t=i(34651),o=i(82438),d=i(1832),s=i(80600),l=i(16673),u=i(81436),c=i(92348),x=i(80202),p=i(91177),v=i(11714);function m(n){var r=n.roadmap;return(0,u.FJ)(r.id)?(0,e.jsx)(v.InteractiveRoadmapRenderer,{roadmap:r}):r.imageUrl?(0,e.jsx)(a.W2,{maxW:"900px",position:"relative",children:(0,e.jsx)(a.xu,{mb:"30px",children:(0,e.jsx)(t.Ee,{alt:r.title,src:r.imageUrl})})}):null}function j(n){var r=n.roadmap;if(!r.landingPath)return null;var t=r.landingPath.replace(/^\//,""),o=i(79280)("./".concat(t)).default;return(0,e.jsx)(a.W2,{maxW:"container.md",position:"relative",children:(0,e.jsx)(c.Z,{children:(0,e.jsx)(o,{})})})}var f=!0;function h(n){var r,i,t=n.roadmap;return(0,e.jsxs)(a.xu,{bg:"white",minH:"100vh",children:[(0,e.jsx)(o.e,{}),(0,e.jsx)(x.Z,{title:(null===t||void 0===t||null===(r=t.seo)||void 0===r?void 0:r.title)||t.title,description:(null===t||void 0===t||null===(i=t.seo)||void 0===i?void 0:i.description)||t.description,keywords:(null===t||void 0===t?void 0:t.seo.keywords)||[],roadmap:t}),(0,e.jsxs)(a.xu,{mb:"60px",children:[(0,e.jsx)(p.h,{roadmap:t}),(0,e.jsx)(m,{roadmap:t}),(0,e.jsx)(j,{roadmap:t})]}),(0,e.jsx)(d.z,{}),(0,e.jsx)(s.q,{}),(0,e.jsx)(l.$,{})]})}}},function(n){n.O(0,[680,22,26,515,564,366,547,280,714,774,888,179],(function(){return r=54507,n(n.s=r);var r}));var r=n.O();_N_E=r}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[524],{54507:function(n,r,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]",function(){return i(71296)}])},71296:function(n,r,i){"use strict";i.r(r),i.d(r,{__N_SSG:function(){return f},default:function(){return h}});var e=i(85893),a=(i(67294),i(25115)),t=i(34651),o=i(82438),d=i(1832),s=i(80600),l=i(16673),u=i(81436),c=i(92348),x=i(80202),p=i(91177),v=i(11714);function m(n){var r=n.roadmap;return(0,u.FJ)(r.id)?(0,e.jsx)(v.InteractiveRoadmapRenderer,{roadmap:r}):r.imageUrl?(0,e.jsx)(a.W2,{maxW:"900px",position:"relative",children:(0,e.jsx)(a.xu,{mb:"30px",children:(0,e.jsx)(t.Ee,{alt:r.title,src:r.imageUrl})})}):null}function j(n){var r=n.roadmap;if(!r.landingPath)return null;var t=r.landingPath.replace(/^\//,""),o=i(79280)("./".concat(t)).default;return(0,e.jsx)(a.W2,{maxW:"container.md",position:"relative",children:(0,e.jsx)(c.Z,{children:(0,e.jsx)(o,{})})})}var f=!0;function h(n){var r,i,t=n.roadmap;return(0,e.jsxs)(a.xu,{bg:"white",minH:"100vh",children:[(0,e.jsx)(o.e,{}),(0,e.jsx)(x.Z,{title:(null===t||void 0===t||null===(r=t.seo)||void 0===r?void 0:r.title)||t.title,description:(null===t||void 0===t||null===(i=t.seo)||void 0===i?void 0:i.description)||t.description,keywords:(null===t||void 0===t?void 0:t.seo.keywords)||[],roadmap:t}),(0,e.jsxs)(a.xu,{mb:"60px",children:[(0,e.jsx)(p.h,{roadmap:t}),(0,e.jsx)(m,{roadmap:t}),(0,e.jsx)(j,{roadmap:t})]}),(0,e.jsx)(d.z,{}),(0,e.jsx)(s.q,{}),(0,e.jsx)(l.$,{})]})}}},function(n){n.O(0,[680,22,26,515,564,681,547,280,714,774,888,179],(function(){return r=54507,n(n.s=r);var r}));var r=n.O();_N_E=r}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/[roadmap]/[group]-677b22076f4fca23.js b/_next/static/chunks/pages/[roadmap]/[group]-b9c23d67fc3e48a9.js similarity index 98% rename from _next/static/chunks/pages/[roadmap]/[group]-677b22076f4fca23.js rename to _next/static/chunks/pages/[roadmap]/[group]-b9c23d67fc3e48a9.js index dd594a8ed..c3868a4c5 100644 --- a/_next/static/chunks/pages/[roadmap]/[group]-677b22076f4fca23.js +++ b/_next/static/chunks/pages/[roadmap]/[group]-b9c23d67fc3e48a9.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[911],{11739:function(e,r,a){"use strict";a.d(r,{aG:function(){return g},gN:function(){return f},At:function(){return h}});var n=a(42846),t=a(15031),i=a(26450),s=a(67294);function c(){return(c=Object.assign||function(e){for(var r=1;r=0||(t[a]=e[a]);return t}var l=["spacing"],u=["isCurrentPage","as","className","href"],p=["isCurrentPage","separator","isLastChild","spacing","children","className"],d=["children","spacing","separator","className"],m=(0,n.Gp)((function(e,r){var a=e.spacing,t=o(e,l),i=c({mx:a},(0,n.yK)().separator);return s.createElement(n.m$.span,c({ref:r,role:"presentation"},t,{__css:i}))}));t.Ts&&(m.displayName="BreadcrumbSeparator");var h=(0,n.Gp)((function(e,r){var a=e.isCurrentPage,i=e.as,l=e.className,p=e.href,d=o(e,u),m=(0,n.yK)(),h=c({ref:r,as:i,className:(0,t.cx)("chakra-breadcrumb__link",l)},d);return a?s.createElement(n.m$.span,c({"aria-current":"page",__css:m.link},h)):s.createElement(n.m$.a,c({__css:m.link,href:p},h))}));t.Ts&&(h.displayName="BreadcrumbLink");var f=(0,n.Gp)((function(e,r){var a=e.isCurrentPage,l=e.separator,u=e.isLastChild,d=e.spacing,f=e.children,g=e.className,x=o(e,p),v=(0,i.WR)(f).map((function(e){return e.type===h?s.cloneElement(e,{isCurrentPage:a}):e.type===m?s.cloneElement(e,{spacing:d,children:e.props.children||l}):e})),_=c({display:"inline-flex",alignItems:"center"},(0,n.yK)().item),b=(0,t.cx)("chakra-breadcrumb__list-item",g);return s.createElement(n.m$.li,c({ref:r,className:b},x,{__css:_}),v,!u&&s.createElement(m,{spacing:d},l))}));t.Ts&&(f.displayName="BreadcrumbItem");var g=(0,n.Gp)((function(e,r){var a=(0,n.jC)("Breadcrumb",e),l=(0,n.Lr)(e),u=l.children,p=l.spacing,m=void 0===p?"0.5rem":p,h=l.separator,f=void 0===h?"/":h,g=l.className,x=o(l,d),v=(0,i.WR)(u),_=v.length,b=v.map((function(e,r){return s.cloneElement(e,{separator:f,spacing:m,isLastChild:_===r+1})})),j=(0,t.cx)("chakra-breadcrumb",g);return s.createElement(n.m$.nav,c({ref:r,"aria-label":"breadcrumb",className:j,__css:a.container},x),s.createElement(n.Fo,{value:a},s.createElement(n.m$.ol,{className:"chakra-breadcrumb__list"},b)))}));t.Ts&&(g.displayName="Breadcrumb")},65553:function(e,r,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/[group]",function(){return a(2903)}])},2903:function(e,r,a){"use strict";a.r(r),a.d(r,{__N_SSG:function(){return v},default:function(){return _}});var n=a(85893),t=a(25115),i=a(11739),s=a(82438),c=a(1832),o=a(80600),l=a(16673),u=a(92348),p=a(80202),d=(a(67294),a(71277)),m=a(28641),h=a(15193);function f(e){var r=e.href;return(0,n.jsxs)(t.xu,{my:"30px",children:[(0,n.jsx)(t.iz,{mb:"15px",orientation:"horizontal"}),(0,n.jsx)(t.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,n.jsx)(h.zx,{size:"sm",py:"20px",as:t.rU,href:r,target:"_blank",isFullWidth:!0,colorScheme:"gray",_hover:{textDecoration:"none",bg:"gray.200"},children:"Edit this Page"})]})}function g(e){var r=e.roadmap,i=e.group;if(!r.contentPathsFilePath)return null;var s=r.contentPathsFilePath.replace(/^\//,""),c=(a(79280)("./".concat(s))[i]||"").replace(/^\//,""),o=a(79280)("./".concat(c)).default;return(0,n.jsx)(t.xu,{children:(0,n.jsxs)(u.Z,{children:[(0,n.jsx)(o,{}),(0,n.jsx)(f,{href:"".concat(m.url.repoData,"/").concat(c)})]})})}function x(e){var r=e.roadmap,a=e.group.split(":");return(0,n.jsxs)(i.aG,{fontWeight:"medium",fontSize:"sm",separator:(0,n.jsx)(d.XC,{color:"gray.500"}),children:[(0,n.jsx)(i.gN,{children:(0,n.jsx)(i.At,{color:"blue.500",href:"/".concat(r.id),children:r.featuredTitle})}),a.map((function(e,t){return(0,n.jsx)(i.gN,{isCurrentPage:t===a.length-1,children:(0,n.jsx)(i.At,{textTransform:"capitalize",color:"blue.500",href:"/".concat(r.id,"/").concat(a.slice(0,t+1).join(":")),children:e.split("-").join(" ")})},e)}))]})}var v=!0;function _(e){var r,a,i=e.roadmap,u=e.group,d=e.isOutlet;return void 0!==d&&d?(0,n.jsx)(g,{roadmap:i,group:u}):(0,n.jsxs)(t.xu,{bg:"white",minH:"100vh",children:[(0,n.jsx)(s.e,{}),(0,n.jsx)(p.Z,{title:(null===i||void 0===i||null===(r=i.seo)||void 0===r?void 0:r.title)||i.title,description:(null===i||void 0===i||null===(a=i.seo)||void 0===a?void 0:a.description)||i.description,keywords:(null===i||void 0===i?void 0:i.seo.keywords)||[]}),(0,n.jsxs)(t.W2,{my:"60px",maxW:"container.md",position:"relative",children:[(0,n.jsx)(x,{roadmap:i,group:u}),(0,n.jsx)(g,{roadmap:i,group:u})]}),(0,n.jsx)(c.z,{}),(0,n.jsx)(o.q,{}),(0,n.jsx)(l.$,{})]})}}},function(e){e.O(0,[680,22,515,564,366,547,280,774,888,179],(function(){return r=65553,e(e.s=r);var r}));var r=e.O();_N_E=r}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[911],{11739:function(e,r,a){"use strict";a.d(r,{aG:function(){return g},gN:function(){return f},At:function(){return h}});var n=a(42846),t=a(15031),i=a(26450),s=a(67294);function c(){return(c=Object.assign||function(e){for(var r=1;r=0||(t[a]=e[a]);return t}var l=["spacing"],u=["isCurrentPage","as","className","href"],p=["isCurrentPage","separator","isLastChild","spacing","children","className"],d=["children","spacing","separator","className"],m=(0,n.Gp)((function(e,r){var a=e.spacing,t=o(e,l),i=c({mx:a},(0,n.yK)().separator);return s.createElement(n.m$.span,c({ref:r,role:"presentation"},t,{__css:i}))}));t.Ts&&(m.displayName="BreadcrumbSeparator");var h=(0,n.Gp)((function(e,r){var a=e.isCurrentPage,i=e.as,l=e.className,p=e.href,d=o(e,u),m=(0,n.yK)(),h=c({ref:r,as:i,className:(0,t.cx)("chakra-breadcrumb__link",l)},d);return a?s.createElement(n.m$.span,c({"aria-current":"page",__css:m.link},h)):s.createElement(n.m$.a,c({__css:m.link,href:p},h))}));t.Ts&&(h.displayName="BreadcrumbLink");var f=(0,n.Gp)((function(e,r){var a=e.isCurrentPage,l=e.separator,u=e.isLastChild,d=e.spacing,f=e.children,g=e.className,x=o(e,p),v=(0,i.WR)(f).map((function(e){return e.type===h?s.cloneElement(e,{isCurrentPage:a}):e.type===m?s.cloneElement(e,{spacing:d,children:e.props.children||l}):e})),_=c({display:"inline-flex",alignItems:"center"},(0,n.yK)().item),b=(0,t.cx)("chakra-breadcrumb__list-item",g);return s.createElement(n.m$.li,c({ref:r,className:b},x,{__css:_}),v,!u&&s.createElement(m,{spacing:d},l))}));t.Ts&&(f.displayName="BreadcrumbItem");var g=(0,n.Gp)((function(e,r){var a=(0,n.jC)("Breadcrumb",e),l=(0,n.Lr)(e),u=l.children,p=l.spacing,m=void 0===p?"0.5rem":p,h=l.separator,f=void 0===h?"/":h,g=l.className,x=o(l,d),v=(0,i.WR)(u),_=v.length,b=v.map((function(e,r){return s.cloneElement(e,{separator:f,spacing:m,isLastChild:_===r+1})})),j=(0,t.cx)("chakra-breadcrumb",g);return s.createElement(n.m$.nav,c({ref:r,"aria-label":"breadcrumb",className:j,__css:a.container},x),s.createElement(n.Fo,{value:a},s.createElement(n.m$.ol,{className:"chakra-breadcrumb__list"},b)))}));t.Ts&&(g.displayName="Breadcrumb")},65553:function(e,r,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/[group]",function(){return a(2903)}])},2903:function(e,r,a){"use strict";a.r(r),a.d(r,{__N_SSG:function(){return v},default:function(){return _}});var n=a(85893),t=a(25115),i=a(11739),s=a(82438),c=a(1832),o=a(80600),l=a(16673),u=a(92348),p=a(80202),d=(a(67294),a(71277)),m=a(28641),h=a(15193);function f(e){var r=e.href;return(0,n.jsxs)(t.xu,{my:"30px",children:[(0,n.jsx)(t.iz,{mb:"15px",orientation:"horizontal"}),(0,n.jsx)(t.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,n.jsx)(h.zx,{size:"sm",py:"20px",as:t.rU,href:r,target:"_blank",isFullWidth:!0,colorScheme:"gray",_hover:{textDecoration:"none",bg:"gray.200"},children:"Edit this Page"})]})}function g(e){var r=e.roadmap,i=e.group;if(!r.contentPathsFilePath)return null;var s=r.contentPathsFilePath.replace(/^\//,""),c=(a(79280)("./".concat(s))[i]||"").replace(/^\//,""),o=a(79280)("./".concat(c)).default;return(0,n.jsx)(t.xu,{children:(0,n.jsxs)(u.Z,{children:[(0,n.jsx)(o,{}),(0,n.jsx)(f,{href:"".concat(m.url.repoData,"/").concat(c)})]})})}function x(e){var r=e.roadmap,a=e.group.split(":");return(0,n.jsxs)(i.aG,{fontWeight:"medium",fontSize:"sm",separator:(0,n.jsx)(d.XC,{color:"gray.500"}),children:[(0,n.jsx)(i.gN,{children:(0,n.jsx)(i.At,{color:"blue.500",href:"/".concat(r.id),children:r.featuredTitle})}),a.map((function(e,t){return(0,n.jsx)(i.gN,{isCurrentPage:t===a.length-1,children:(0,n.jsx)(i.At,{textTransform:"capitalize",color:"blue.500",href:"/".concat(r.id,"/").concat(a.slice(0,t+1).join(":")),children:e.split("-").join(" ")})},e)}))]})}var v=!0;function _(e){var r,a,i=e.roadmap,u=e.group,d=e.isOutlet;return void 0!==d&&d?(0,n.jsx)(g,{roadmap:i,group:u}):(0,n.jsxs)(t.xu,{bg:"white",minH:"100vh",children:[(0,n.jsx)(s.e,{}),(0,n.jsx)(p.Z,{title:(null===i||void 0===i||null===(r=i.seo)||void 0===r?void 0:r.title)||i.title,description:(null===i||void 0===i||null===(a=i.seo)||void 0===a?void 0:a.description)||i.description,keywords:(null===i||void 0===i?void 0:i.seo.keywords)||[]}),(0,n.jsxs)(t.W2,{my:"60px",maxW:"container.md",position:"relative",children:[(0,n.jsx)(x,{roadmap:i,group:u}),(0,n.jsx)(g,{roadmap:i,group:u})]}),(0,n.jsx)(c.z,{}),(0,n.jsx)(o.q,{}),(0,n.jsx)(l.$,{})]})}}},function(e){e.O(0,[680,22,515,564,681,547,280,774,888,179],(function(){return r=65553,e(e.s=r);var r}));var r=e.O();_N_E=r}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/[roadmap]/interactive-d208ea1b52c48a31.js b/_next/static/chunks/pages/[roadmap]/interactive-3b61593bbb08ed5c.js similarity index 79% rename from _next/static/chunks/pages/[roadmap]/interactive-d208ea1b52c48a31.js rename to _next/static/chunks/pages/[roadmap]/interactive-3b61593bbb08ed5c.js index 1e731f179..48a060e49 100644 --- a/_next/static/chunks/pages/[roadmap]/interactive-d208ea1b52c48a31.js +++ b/_next/static/chunks/pages/[roadmap]/interactive-3b61593bbb08ed5c.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[526],{97718:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/interactive",function(){return u(11714)}])}},function(n){n.O(0,[680,22,26,515,564,366,547,280,714,774,888,179],(function(){return _=97718,n(n.s=_);var _}));var _=n.O();_N_E=_}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[526],{97718:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/interactive",function(){return u(11714)}])}},function(n){n.O(0,[680,22,26,515,564,681,547,280,714,774,888,179],(function(){return _=97718,n(n.s=_);var _}));var _=n.O();_N_E=_}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/[roadmap]/resources-17dfdfdb3794b758.js b/_next/static/chunks/pages/[roadmap]/resources-e235b7667b8f07f7.js similarity index 98% rename from _next/static/chunks/pages/[roadmap]/resources-17dfdfdb3794b758.js rename to _next/static/chunks/pages/[roadmap]/resources-e235b7667b8f07f7.js index 954309004..a830d2f28 100644 --- a/_next/static/chunks/pages/[roadmap]/resources-17dfdfdb3794b758.js +++ b/_next/static/chunks/pages/[roadmap]/resources-e235b7667b8f07f7.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[450],{14450:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/resources",function(){return r(83415)}])},4866:function(e,n,r){"use strict";r.d(n,{v:function(){return l}});var o=r(85893),i=r(25115),t=r(28641),s=r(85657);r(67294);function l(){return(0,o.jsxs)(i.xv,{_hover:{textDecoration:"none",color:"blue.700","& .new-badge":{bg:"blue.700"}},as:i.rU,href:t.url.youtube,d:"block",target:"_blank",color:"red.700",fontSize:"sm",mb:"10px",fontWeight:500,onClick:function(){return(0,s.B)({category:"Subscription",action:"Clicked the YouTube banner",label:"YouTube Alert on Roadmap"})},children:[(0,o.jsx)(i.Ct,{transition:"all 300ms",className:"new-badge",mr:"7px",colorScheme:"red",variant:"solid",children:"New"}),(0,o.jsx)(i.xv,{textDecoration:"underline",as:"span",d:["none","inline"],children:"Roadmap topics to be covered on our YouTube Channel"}),(0,o.jsx)(i.xv,{textDecoration:"underline",as:"span",d:["inline","none"],children:"Topic videos being made on YouTube"}),(0,o.jsx)(i.xv,{as:"span",ml:"5px",children:"\xbb"})]})}},91177:function(e,n,r){"use strict";r.d(n,{h:function(){return c}});var o=r(85893),i=r(81436),t=r(4866),s=r(25115),l=r(15193),x=r(71277);r(67294);function c(e){var n=e.roadmap;return(0,o.jsx)(s.xu,{pt:["25px","20px","45px"],pb:["20px","15px","30px"],borderBottomWidth:1,mb:"30px",children:(0,o.jsxs)(s.W2,{maxW:"container.md",position:"relative",children:[(0,o.jsx)(t.v,{}),(0,o.jsx)(s.X6,{as:"h1",color:"black",fontSize:["28px","33px","40px"],fontWeight:700,mb:["2px","2px","5px"],children:n.title}),(0,o.jsx)(s.xv,{fontSize:["13px","14px","15px"],children:n.description}),(0,o.jsx)(s.kC,{justifyContent:"space-between",alignItems:"center",mt:"20px",children:(0,o.jsxs)(s.Kq,{isInline:!0,children:[(0,o.jsxs)(l.zx,{d:["flex","flex"],as:s.rU,href:"/roadmaps",size:"xs",py:"14px",px:"10px",colorScheme:"teal",variant:"solid",_hover:{textDecoration:"none"},children:["\u2190",(0,o.jsx)(s.xv,{as:"span",d:["none","inline"],ml:"5px",children:"All Roadmaps"})]}),n.pdfUrl&&(0,o.jsx)(l.zx,{as:s.rU,href:n.pdfUrl,target:"_blank",size:"xs",py:"14px",px:"10px",leftIcon:(0,o.jsx)(x._8,{}),colorScheme:"yellow",variant:"solid",_hover:{textDecoration:"none"},children:"Download"}),(0,o.jsx)(l.zx,{as:s.rU,href:"/signup",size:"xs",py:"14px",px:"10px",variant:"solid",colorScheme:"yellow",leftIcon:(0,o.jsx)(x.Km,{}),_hover:{textDecoration:"none"},children:"Subscribe"})]})}),(0,i.FJ)(n.id)&&(0,o.jsxs)(s.xv,{mt:"30px",mb:["-37px","-32px","-47px"],fontWeight:500,fontSize:"14px",bg:"white",borderWidth:1,p:"5px 7px",rounded:"3px",children:[(0,o.jsx)(s.Ct,{pos:"relative",top:"-1px",mr:"6px",colorScheme:"yellow",children:"New"}),"Resources are here, try clicking any nodes."]})]})})}},81436:function(e,n,r){"use strict";r.d(n,{FJ:function(){return o}});r(1662);function o(e){return["frontend","backend"].includes(e)}},83415:function(e,n,r){"use strict";r.r(n),r.d(n,{__N_SSG:function(){return u},default:function(){return h}});var o=r(85893),i=r(25115),t=r(82438),s=r(1832),l=r(80600),x=r(16673),c=r(92348),a=r(80202),d=r(91177);function p(e){var n=e.roadmap;if(!n.resourcesPath)return null;var t=n.resourcesPath.replace(/^\//,""),s=r(79280)("./".concat(t)).default;return(0,o.jsx)(i.W2,{maxW:"container.md",position:"relative",children:(0,o.jsx)(c.Z,{children:(0,o.jsx)(s,{})})})}var u=!0;function h(e){var n,r,c=e.roadmap;return(0,o.jsxs)(i.xu,{bg:"white",minH:"100vh",children:[(0,o.jsx)(t.e,{}),(0,o.jsx)(a.Z,{title:(null===c||void 0===c||null===(n=c.seo)||void 0===n?void 0:n.title)||c.title,description:(null===c||void 0===c||null===(r=c.seo)||void 0===r?void 0:r.description)||c.description,keywords:(null===c||void 0===c?void 0:c.seo.keywords)||[]}),(0,o.jsxs)(i.xu,{mb:"60px",children:[(0,o.jsx)(d.h,{roadmap:c}),(0,o.jsx)(p,{roadmap:c})]}),(0,o.jsx)(s.z,{}),(0,o.jsx)(l.q,{}),(0,o.jsx)(x.$,{})]})}}},function(e){e.O(0,[680,22,515,564,366,547,280,774,888,179],(function(){return n=14450,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[450],{14450:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[roadmap]/resources",function(){return r(83415)}])},4866:function(e,n,r){"use strict";r.d(n,{v:function(){return l}});var o=r(85893),i=r(25115),t=r(28641),s=r(85657);r(67294);function l(){return(0,o.jsxs)(i.xv,{_hover:{textDecoration:"none",color:"blue.700","& .new-badge":{bg:"blue.700"}},as:i.rU,href:t.url.youtube,d:"block",target:"_blank",color:"red.700",fontSize:"sm",mb:"10px",fontWeight:500,onClick:function(){return(0,s.B)({category:"Subscription",action:"Clicked the YouTube banner",label:"YouTube Alert on Roadmap"})},children:[(0,o.jsx)(i.Ct,{transition:"all 300ms",className:"new-badge",mr:"7px",colorScheme:"red",variant:"solid",children:"New"}),(0,o.jsx)(i.xv,{textDecoration:"underline",as:"span",d:["none","inline"],children:"Roadmap topics to be covered on our YouTube Channel"}),(0,o.jsx)(i.xv,{textDecoration:"underline",as:"span",d:["inline","none"],children:"Topic videos being made on YouTube"}),(0,o.jsx)(i.xv,{as:"span",ml:"5px",children:"\xbb"})]})}},91177:function(e,n,r){"use strict";r.d(n,{h:function(){return c}});var o=r(85893),i=r(81436),t=r(4866),s=r(25115),l=r(15193),x=r(71277);r(67294);function c(e){var n=e.roadmap;return(0,o.jsx)(s.xu,{pt:["25px","20px","45px"],pb:["20px","15px","30px"],borderBottomWidth:1,mb:"30px",children:(0,o.jsxs)(s.W2,{maxW:"container.md",position:"relative",children:[(0,o.jsx)(t.v,{}),(0,o.jsx)(s.X6,{as:"h1",color:"black",fontSize:["28px","33px","40px"],fontWeight:700,mb:["2px","2px","5px"],children:n.title}),(0,o.jsx)(s.xv,{fontSize:["13px","14px","15px"],children:n.description}),(0,o.jsx)(s.kC,{justifyContent:"space-between",alignItems:"center",mt:"20px",children:(0,o.jsxs)(s.Kq,{isInline:!0,children:[(0,o.jsxs)(l.zx,{d:["flex","flex"],as:s.rU,href:"/roadmaps",size:"xs",py:"14px",px:"10px",colorScheme:"teal",variant:"solid",_hover:{textDecoration:"none"},children:["\u2190",(0,o.jsx)(s.xv,{as:"span",d:["none","inline"],ml:"5px",children:"All Roadmaps"})]}),n.pdfUrl&&(0,o.jsx)(l.zx,{as:s.rU,href:n.pdfUrl,target:"_blank",size:"xs",py:"14px",px:"10px",leftIcon:(0,o.jsx)(x._8,{}),colorScheme:"yellow",variant:"solid",_hover:{textDecoration:"none"},children:"Download"}),(0,o.jsx)(l.zx,{as:s.rU,href:"/signup",size:"xs",py:"14px",px:"10px",variant:"solid",colorScheme:"yellow",leftIcon:(0,o.jsx)(x.Km,{}),_hover:{textDecoration:"none"},children:"Subscribe"})]})}),(0,i.FJ)(n.id)&&(0,o.jsxs)(s.xv,{mt:"30px",mb:["-37px","-32px","-47px"],fontWeight:500,fontSize:"14px",bg:"white",borderWidth:1,p:"5px 7px",rounded:"3px",children:[(0,o.jsx)(s.Ct,{pos:"relative",top:"-1px",mr:"6px",colorScheme:"yellow",children:"New"}),"Resources are here, try clicking any nodes."]})]})})}},81436:function(e,n,r){"use strict";r.d(n,{FJ:function(){return o}});r(1662);function o(e){return["frontend","backend"].includes(e)}},83415:function(e,n,r){"use strict";r.r(n),r.d(n,{__N_SSG:function(){return u},default:function(){return h}});var o=r(85893),i=r(25115),t=r(82438),s=r(1832),l=r(80600),x=r(16673),c=r(92348),a=r(80202),d=r(91177);function p(e){var n=e.roadmap;if(!n.resourcesPath)return null;var t=n.resourcesPath.replace(/^\//,""),s=r(79280)("./".concat(t)).default;return(0,o.jsx)(i.W2,{maxW:"container.md",position:"relative",children:(0,o.jsx)(c.Z,{children:(0,o.jsx)(s,{})})})}var u=!0;function h(e){var n,r,c=e.roadmap;return(0,o.jsxs)(i.xu,{bg:"white",minH:"100vh",children:[(0,o.jsx)(t.e,{}),(0,o.jsx)(a.Z,{title:(null===c||void 0===c||null===(n=c.seo)||void 0===n?void 0:n.title)||c.title,description:(null===c||void 0===c||null===(r=c.seo)||void 0===r?void 0:r.description)||c.description,keywords:(null===c||void 0===c?void 0:c.seo.keywords)||[]}),(0,o.jsxs)(i.xu,{mb:"60px",children:[(0,o.jsx)(d.h,{roadmap:c}),(0,o.jsx)(p,{roadmap:c})]}),(0,o.jsx)(s.z,{}),(0,o.jsx)(l.q,{}),(0,o.jsx)(x.$,{})]})}}},function(e){e.O(0,[680,22,515,564,681,547,280,774,888,179],(function(){return n=14450,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/watch/[video]-943ed5fcaf72d0bf.js b/_next/static/chunks/pages/watch/[video]-943ed5fcaf72d0bf.js deleted file mode 100644 index e3186f18c..000000000 --- a/_next/static/chunks/pages/watch/[video]-943ed5fcaf72d0bf.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[686],{44245:function(e,n,t){var r={"./acid-explained.md":98974,"./all-about-http-caching.md":73730,"./array-structure.md":71232,"./arrays-and-objects-in-javascript.md":77589,"./async-javascript.md":38001,"./big-o-notation.md":6736,"./content-delivery-networks.md":45489,"./dns-explained.md":79029,"./dns-records.md":74046,"./floating-point-arithmetic.md":27327,"./freeze-and-seal-objects-in-javascript.md":66527,"./how-to-use-css-variables.md":85512,"./how-to-use-github-actions.md":48688,"./javascript-fetch-api.md":4474,"./linked-list-data-structure.md":36955,"./load-balancers-101.md":2012,"./osi-model.md":85495,"./practical-intro-to-react.md":24913,"./promises-in-javascript.md":77e3,"./queue-structure.md":90898,"./random-number-generators.md":61516,"./scaling-the-unscalable.md":37850,"./ssh-ssl-tls.md":39345,"./stack-data-structure.md":56851,"./system-design-101.md":35069,"./tcp-ip-model.md":1559,"./transport-protocols-tcp-vs-udp.md":32382,"./what-are-data-structures.md":68496,"./what-is-cap-theorem.md":45875,"./what-is-dependency-injection.md":52635,"./what-is-dom-shadow-dom-virtual-dom.md":16095,"./what-is-eventual-consistency.md":72068,"./yaml-in-depth.md":26372};function i(e){var n=o(e);return t(n)}function o(e){if(!t.o(r,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=44245},30730:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/watch/[video]",function(){return t(2942)}])},83905:function(e,n,t){"use strict";t.d(n,{D:function(){return a}});var r=t(85893),i=t(25115),o=t(34651);t(67294);function a(e){var n=e.title,t=e.subtitle,a=e.author,c=void 0===a?null:a,u=e.formattedDate,l=e.subLink,s=void 0===l?null:l;return(0,r.jsx)(i.xu,{pt:["35px","35px","70px"],pb:["35px","35px","55px"],borderBottomWidth:1,mb:"30px",children:(0,r.jsxs)(i.W2,{maxW:"container.md",position:"relative",textAlign:["left","left","center"],children:[(0,r.jsxs)(i.kC,{alignItems:"center",justifyContent:["flex-start","flex-start","center"],fontSize:["12px","12px","14px"],children:[(null===c||void 0===c?void 0:c.name)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.rU,{d:["none","flex","flex"],target:"_blank",href:"https://twitter.com/".concat(c.twitter),alignItems:"center",fontWeight:600,color:"gray.500",children:[(0,r.jsx)(o.Ee,{alt:"",rounded:"full",mr:"7px",w:"22px",src:c.picture}),c.name]}),(0,r.jsx)(i.xv,{d:["none","inline","inline"],mx:"7px",color:"gray.500",as:"span",children:"\xb7"})]}),(0,r.jsx)(i.xv,{color:"gray.500",as:"span",children:u}),(null===s||void 0===s?void 0:s.text)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.xv,{d:["none","none","inline"],mx:"7px",color:"gray.500",as:"span",children:"\xb7"}),(0,r.jsx)(i.rU,{d:["none","none","inline"],color:"blue.500",fontWeight:500,href:s.url,target:"_blank",children:s.text})]})]}),(0,r.jsx)(i.X6,{as:"h1",color:"black",fontSize:["30px","30px","45px"],lineHeight:["40px","40px","53px"],fontWeight:700,my:["5px","5px","10px"],children:n}),(0,r.jsx)(i.xv,{fontSize:["14px","14px","16px"],color:"gray.700",children:t})]})})}},92348:function(e,n,t){"use strict";t.d(n,{Z:function(){return Y}});var r=t(85893),i=(t(67294),t(3905)),o=t(63606),a=t(25115),c=t(8797);function u(){var e,n,t=(e=["\n line-height: 27px;\n font-size: 16px;\n color: black;\n margin-bottom: 18px;\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return u=function(){return t},t}var l=c.ZP.p(u());function s(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function p(){var e=s(["\n position: absolute;\n top: 0;\n left: -25px;\n width: 25px;\n display: none;\n height: 100%;\n align-items: center;\n justify-content: flex-start;\n"]);return p=function(){return e},e}function d(){var e=s(["\n position: relative;\n font-size: 32px;\n line-height: 40px;\n font-weight: 700;\n margin: 20px 0 10px !important;\n\n &:hover "," {\n display: flex;\n }\n"]);return d=function(){return e},e}function f(){var e=s(["\n font-size: 30px;\n"]);return f=function(){return e},e}function x(){var e=s(["\n margin: 22px 0 8px;\n font-size: 28px;\n"]);return x=function(){return e},e}function h(){var e=s(["\n margin: 18px 0 8px;\n font-size: 24px;\n"]);return h=function(){return e},e}function m(){var e=s(["\n margin: 14px 0 8px;\n font-size: 18px;\n"]);return m=function(){return e},e}function b(){var e=s(["\n margin: 12px 0 8px;\n font-size: 18px;\n"]);return b=function(){return e},e}var g=c.ZP.a(p()),v=c.ZP.h1(d(),g),j={h1:v,h2:(0,c.ZP)(v).attrs({as:"h2"})(f()),h3:(0,c.ZP)(v).attrs({as:"h3"})(x()),h4:(0,c.ZP)(v).attrs({as:"h4"})(h()),h5:(0,c.ZP)(v).attrs({as:"h5"})(m()),h6:(0,c.ZP)(v).attrs({as:"h6"})(b())};function w(){var e,n,t=(e=["\n margin: 25px -25px 25px -25px !important;\n padding: 20px 25px !important;\n border-radius: 10px;\n line-height: 1.5 !important;\n \n code {\n background: transparent;\n }\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return w=function(){return t},t}var y=c.ZP.pre(w());function O(){var e,n,t=(e=["\n padding: 16px 20px;\n position: relative;\n background: #e8e8e8;\n border-radius: 5px;\n margin-bottom: 18px;\n\n h1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n }\n\n p + h4 {\n margin-top: 15px;\n }\n\n p {\n margin: 0;\n\n & + p {\n margin-top: 10px;\n }\n }\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return O=function(){return t},t}var P=c.ZP.blockquote(O());function z(){var e,n,t=(e=["\n border-collapse: separate;\n width: 100%;\n border-spacing: 0;\n margin: 20px 0;\n\n th {\n color: #666;\n font-size: 12px;\n font-weight: 400;\n background: #FAFAFA;\n text-transform: uppercase;\n height: 40px;\n vertical-align: middle;\n padding: 5px 10px;\n }\n\n td {\n font-size: 14px;\n padding: 10px;\n border-bottom: 1px solid #EAEAEA;\n }\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return z=function(){return t},t}var k=c.ZP.table(z());function _(){var e,n,t=(e=['\n position: relative;\n max-width: 100%;\n margin-bottom: 18px;\n\n &:before {\n height: 0;\n content: "";\n display: block;\n padding-bottom: 50%;\n }\n\n & > iframe {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n'],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return _=function(){return t},t}var S=c.ZP.div(_());function Z(){var e,n,t=(e=["\n max-width: 100%;\n margin: 25px auto;\n display: block;\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return Z=function(){return t},t}var E=c.ZP.img(Z());function W(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function D(e){for(var n=1;n iframe {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n'],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return _=function(){return t},t}var S=c.ZP.div(_());function Z(){var e,n,t=(e=["\n max-width: 100%;\n margin: 25px auto;\n display: block;\n"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return Z=function(){return t},t}var E=c.ZP.img(Z());function W(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function D(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 new file mode 100644 index 000000000..2c71a9371 --- /dev/null +++ b/android.html @@ -0,0 +1,22 @@ +Android Developer Roadmap: Learn to become an Android developer
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 2022

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 new file mode 100644 index 000000000..87f71d905 --- /dev/null +++ b/android/android.html @@ -0,0 +1,6 @@ +Android Developer Roadmap: Learn to become an Android developer
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 new file mode 100644 index 000000000..7a7009665 --- /dev/null +++ b/android/interactive.html @@ -0,0 +1,6 @@ +Android Developer Roadmap: Learn to become an Android developer
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 2022

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 new file mode 100644 index 000000000..ae2ddc2ef --- /dev/null +++ b/android/resources.html @@ -0,0 +1,16 @@ +Android Developer Roadmap: Learn to become an Android developer
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 2022

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 new file mode 100644 index 000000000..ccab8fdab --- /dev/null +++ b/angular.html @@ -0,0 +1,12 @@ +Angular Developer Roadmap: Learn to become a Angular developer
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 2022.

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 new file mode 100644 index 000000000..0e2250a22 --- /dev/null +++ b/angular/angular.html @@ -0,0 +1,6 @@ +Angular Developer Roadmap: Learn to become a Angular developer
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 new file mode 100644 index 000000000..929fbbc27 --- /dev/null +++ b/angular/interactive.html @@ -0,0 +1,6 @@ +Angular Developer Roadmap: Learn to become a Angular developer
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 2022.

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 new file mode 100644 index 000000000..291a9d79d --- /dev/null +++ b/angular/resources.html @@ -0,0 +1,16 @@ +Angular Developer Roadmap: Learn to become a Angular developer
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 2022.

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 new file mode 100644 index 000000000..1271ad6cb --- /dev/null +++ b/aws.html @@ -0,0 +1,16 @@ +AWS Roadmap: Learn to use AWS
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 2022.

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 new file mode 100644 index 000000000..047f7f71b --- /dev/null +++ b/aws/aws.html @@ -0,0 +1,6 @@ +AWS Roadmap: Learn to use AWS
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 new file mode 100644 index 000000000..b38fa49d3 --- /dev/null +++ b/aws/interactive.html @@ -0,0 +1,6 @@ +AWS Roadmap: Learn to use AWS
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 2022.

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 new file mode 100644 index 000000000..cba766c76 --- /dev/null +++ b/aws/resources.html @@ -0,0 +1,16 @@ +AWS Roadmap: Learn to use AWS
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 2022.

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 new file mode 100644 index 000000000..caa4f4903 --- /dev/null +++ b/backend.html @@ -0,0 +1,6 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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 2022

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/backend/apis.html b/backend/apis.html new file mode 100644 index 000000000..c7acec243 --- /dev/null +++ b/backend/apis.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/apis:authentication.html b/backend/apis:authentication.html new file mode 100644 index 000000000..f6f93e673 --- /dev/null +++ b/backend/apis:authentication.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Authentication


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:basic-authentication.html b/backend/apis:authentication:basic-authentication.html new file mode 100644 index 000000000..4eb0ec2eb --- /dev/null +++ b/backend/apis:authentication:basic-authentication.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basic authentication


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:cookie-based.html b/backend/apis:authentication:cookie-based.html new file mode 100644 index 000000000..dec8b88e9 --- /dev/null +++ b/backend/apis:authentication:cookie-based.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cookie based


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:jwt.html b/backend/apis:authentication:jwt.html new file mode 100644 index 000000000..026ce84d1 --- /dev/null +++ b/backend/apis:authentication:jwt.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

JWT

JWT stands for JSON Web Token is a token-based encryption open standard/methodology that is used to transfer information securely as a JSON object. Clients and Servers use JWT to securely share information, with the JWT containing encoded JSON objects and claims. JWT tokens are designed to be compact, safe to use within URLs, and ideal for SSO contexts.

Free Content

JWT Websitejwt.io Website

ReadIntroduction to JSON Web Tokens

ReadWhat is JWT?

WatchWhat Is JWT and Why Should You Use JWT

WatchWhat is JWT? JSON Web Token Explained


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:oauth.html b/backend/apis:authentication:oauth.html new file mode 100644 index 000000000..55f210c71 --- /dev/null +++ b/backend/apis:authentication:oauth.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

OAuth

OAuth stands for Open Authorization and is an open standard for authorization. It works to authorize devices, APIs, servers and applications using access tokens rather than user credentials, known as "secure delegated access".

In its most simplest form, OAuth delegates authentication to services like Facebook, Amazon, Twitter and authorizes third-party applications to access the user account without having to enter their login and password.

It is mostly utilized for REST/APIs and only provides a limited scope of a user's data.

Free Content

ReadOkta - What the Heck is OAuth

ReadDigitalOcean - An Introduction to OAuth 2

WatchWhat is OAuth really all about

WatchOAuth 2.0: An Overview


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:openid.html b/backend/apis:authentication:openid.html new file mode 100644 index 000000000..29cfe77bc --- /dev/null +++ b/backend/apis:authentication:openid.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Openid


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:saml.html b/backend/apis:authentication:saml.html new file mode 100644 index 000000000..fff125170 --- /dev/null +++ b/backend/apis:authentication:saml.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Saml


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:authentication:token-authentication.html b/backend/apis:authentication:token-authentication.html new file mode 100644 index 000000000..089c38cc3 --- /dev/null +++ b/backend/apis:authentication:token-authentication.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Token authentication


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:grpc.html b/backend/apis:grpc.html new file mode 100644 index 000000000..f77849b9d --- /dev/null +++ b/backend/apis:grpc.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Grpc


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:hateoas.html b/backend/apis:hateoas.html new file mode 100644 index 000000000..4a8c5be64 --- /dev/null +++ b/backend/apis:hateoas.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Hateoas

HATEOAS is an acronym for Hypermedia As The Engine Of Application State, it's the concept that when sending information over a RESTful API the document received should contain everything the client needs in order to parse and use the data i.e they don't have to contact any other endpoint not explicitly mentioned within the Document

Free Content

WatchOktane17: Designing Beautiful REST + JSON APIs (3:56 - 5:57)


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:json-apis.html b/backend/apis:json-apis.html new file mode 100644 index 000000000..01d69594f --- /dev/null +++ b/backend/apis:json-apis.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Json 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/backend/apis:open-api-spec.html b/backend/apis:open-api-spec.html new file mode 100644 index 000000000..12b86ede7 --- /dev/null +++ b/backend/apis:open-api-spec.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Open api spec


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:rest.html b/backend/apis:rest.html new file mode 100644 index 000000000..73332c153 --- /dev/null +++ b/backend/apis:rest.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

REST

REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other.

Free Content

ReadWhat is REST?

ReadWhat is a REST API?

ReadRoy Fielding's dissertation chapter, "Representational State Transfer (REST)"


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/apis:soap.html b/backend/apis:soap.html new file mode 100644 index 000000000..1af7cba66 --- /dev/null +++ b/backend/apis:soap.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Soap


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns.html b/backend/architectural-patterns.html new file mode 100644 index 000000000..36c18c080 --- /dev/null +++ b/backend/architectural-patterns.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Architectural patterns


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns:cqrs.html b/backend/architectural-patterns:cqrs.html new file mode 100644 index 000000000..105e4851c --- /dev/null +++ b/backend/architectural-patterns:cqrs.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cqrs


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns:microservices.html b/backend/architectural-patterns:microservices.html new file mode 100644 index 000000000..2f5d586b4 --- /dev/null +++ b/backend/architectural-patterns:microservices.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Microservices

Microservice architecture is a pattern in which highly cohesive, loosely coupled services are separately developed, maintained, and deployed. Each component handles an individual function, and when combined, the application handles an overall business function.

Free Content

ReadPattern: Microservice Architecture

ReadWhat is Microservices?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns:monolithic-apps.html b/backend/architectural-patterns:monolithic-apps.html new file mode 100644 index 000000000..795827719 --- /dev/null +++ b/backend/architectural-patterns:monolithic-apps.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Monolithic Apps

Monolithic architecture is a pattern in which an application handles requests, executes business logic, interacts with the database, and creates the HTML for the front end. In simpler terms, this one application does many things. It's inner components are highly coupled and deployed as one unit.

Free Content

ReadPattern: Monolithic Architecture

ReadMonolithic Architecture - Advantages & Disadvantages


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns:serverless.html b/backend/architectural-patterns:serverless.html new file mode 100644 index 000000000..e63488c10 --- /dev/null +++ b/backend/architectural-patterns:serverless.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Serverless

Serverless is an architecture in which a developer builds and runs applications without provisioning or managing servers. With cloud computing/serverless, servers exist but are managed by the cloud provider. Resources are used as they are needed, on demand and often using auto scaling.

Free Content

ReadServerless

ReadAWS Services

WatchServerless Computing in 100 Seconds


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/architectural-patterns:soa.html b/backend/architectural-patterns:soa.html new file mode 100644 index 000000000..d93831251 --- /dev/null +++ b/backend/architectural-patterns:soa.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Soa


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/basic-frontend.html b/backend/basic-frontend.html new file mode 100644 index 000000000..3aab27db7 --- /dev/null +++ b/backend/basic-frontend.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basic Frontend Knowledge

As a backend developer, you may not need to have proficient knowledge of the frontend stack but you should at least have some basic understanding of HTML, CSS and JavaScript.

Free Content

ReadW3Schools: Learn HTML

ReadW3Schools: Learn CSS

ReadW3Schools: JavaScript Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/basic-frontend:css.html b/backend/basic-frontend:css.html new file mode 100644 index 000000000..821f5cc34 --- /dev/null +++ b/backend/basic-frontend:css.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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

CourseWhat The Flexbox!

CourseLearn CSS | Codecademy

CourseLearn Intermediate CSS | Codecademy


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/basic-frontend:html.html b/backend/basic-frontend:html.html new file mode 100644 index 000000000..c253b5852 --- /dev/null +++ b/backend/basic-frontend:html.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML

HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course

CourseCodecademy - Learn HTML

CourseInteractive HTML 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/backend/basic-frontend:javascript.html b/backend/basic-frontend:javascript.html new file mode 100644 index 000000000..42aea2eb1 --- /dev/null +++ b/backend/basic-frontend:javascript.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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.

Free Content

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/backend/caching.html b/backend/caching.html new file mode 100644 index 000000000..33580447c --- /dev/null +++ b/backend/caching.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Caching


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/caching:cdn.html b/backend/caching:cdn.html new file mode 100644 index 000000000..adbfaee56 --- /dev/null +++ b/backend/caching:cdn.html @@ -0,0 +1,13 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CDN (Content Delivery Network)

A Content Delivery Network (CDN) service aims to provide high availability and performance improvements of websites. This is achieved with fast delivery of website assets and content typically via geographically closer endpoints to the client requests. +Traditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) provide servers across the globe which can be used for this purpose. +Serving assets and contents via a CDN reduces bandwidth on website hosting, provides an extra layer of caching to reduce potential outages and can improve website security as well

Free Content

ReadCloudFlare - What is a CDN? | How do CDNs work?

ReadWikipedia - Content Delivery Network

WatchWhat is Cloud CDN?

WatchWhat is a Content Delivery Network (CDN)?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/caching:client-side.html b/backend/caching:client-side.html new file mode 100644 index 000000000..37391d4c4 --- /dev/null +++ b/backend/caching:client-side.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Client side


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/caching:server-side.html b/backend/caching:server-side.html new file mode 100644 index 000000000..43a725c96 --- /dev/null +++ b/backend/caching:server-side.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Server side


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/caching:server-side:memcached.html b/backend/caching:server-side:memcached.html new file mode 100644 index 000000000..ee607f0eb --- /dev/null +++ b/backend/caching:server-side:memcached.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Memcached


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/caching:server-side:redis.html b/backend/caching:server-side:redis.html new file mode 100644 index 000000000..20ac65caf --- /dev/null +++ b/backend/caching:server-side:redis.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Redis


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/ci-cd.html b/backend/ci-cd.html new file mode 100644 index 000000000..15d503f08 --- /dev/null +++ b/backend/ci-cd.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CI/CD

CI/CD (Continuous Integration/Continuous Deployment) is the practice of automating building, testing, and deployment of applications with the main goal of detecting issues early, and provide quicker releases to the production environment.

Free Content

WatchDevOps CI/CD Explained in 100 Seconds by Fireship

WatchAutomate your Workflows with GitHub Actions


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/containerization.html b/backend/containerization.html new file mode 100644 index 000000000..94c63ef1b --- /dev/null +++ b/backend/containerization.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Containerization


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/containerization:docker.html b/backend/containerization:docker.html new file mode 100644 index 000000000..0b0e54c2f --- /dev/null +++ b/backend/containerization:docker.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Docker

Docker is a platform for working with containerized applications. Among its features are a daemon and client for managing and interacting with containers, registries for storing images, and a desktop application to package all these features together.

Free Content

Official WebsiteDocker Documentation

ReadWhat is Docker | AWS

WatchDocker Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/containerization:lxc.html b/backend/containerization:lxc.html new file mode 100644 index 000000000..6dd5c94d6 --- /dev/null +++ b/backend/containerization:lxc.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Lxc


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/containerization:rkt.html b/backend/containerization:rkt.html new file mode 100644 index 000000000..c4b07cda0 --- /dev/null +++ b/backend/containerization:rkt.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rkt


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles.html b/backend/design-and-development-principles.html new file mode 100644 index 000000000..0b304f53d --- /dev/null +++ b/backend/design-and-development-principles.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Design and development principles


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles:domain-driven-design.html b/backend/design-and-development-principles:domain-driven-design.html new file mode 100644 index 000000000..a90c25f10 --- /dev/null +++ b/backend/design-and-development-principles:domain-driven-design.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Domain driven 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/backend/design-and-development-principles:dry.html b/backend/design-and-development-principles:dry.html new file mode 100644 index 000000000..7c64ee197 --- /dev/null +++ b/backend/design-and-development-principles:dry.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

DRY

Don't Repeat Yourself (DRY) is a software design principle which encourages developers to not repeat software patterns or code. DRY encourages code reusability, often in the form of methods, functions, or subroutines. When DRY is implemented successfully, developers are able to make one change to update many related elements while avoiding making changes to unrelated elements.

Free Content

ReadSoftware Design Principles DRY and KISS

ReadBest Practices for Scientific Computing


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles:gof-design-patterns.html b/backend/design-and-development-principles:gof-design-patterns.html new file mode 100644 index 000000000..35b0786bd --- /dev/null +++ b/backend/design-and-development-principles:gof-design-patterns.html @@ -0,0 +1,16 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Design Patterns

Design patterns are typical solutions to commonly occurring problems in software design. They can be broken into three categories:

  • Creational Patterns for the creation of objects
  • Structural Patterns to provide relationship between objects
  • Behavioral Patterns to help define how objects interact

Free Content

ReadDesign Patterns for Humans

ReadGOF design patterns

ReadDesign Patterns


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles:kiss.html b/backend/design-and-development-principles:kiss.html new file mode 100644 index 000000000..a2bc5a108 --- /dev/null +++ b/backend/design-and-development-principles:kiss.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

KISS

Keep It Simple, Stupid (KISS) is a software design principle that states avoiding needless complexity is the best way to build software that is easier to maintain, understand, and contains fewer defects. A simple product that does a single thing well is better than a complex product that does many things poorly.

Free Content

ReadKeep It Simple

ReadKeep It Simple, Stupid (Kiss)


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles:solid.html b/backend/design-and-development-principles:solid.html new file mode 100644 index 000000000..a2e91e385 --- /dev/null +++ b/backend/design-and-development-principles:solid.html @@ -0,0 +1,16 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

SOLID

SOLID is a set of principles applied to object-oriented design (OOD) to create maintainable, understandable, and flexible code, while avoiding code smells and defects. The principles are:

  • Single Responsibility
  • Open/Closed
  • Liskov Substitution
  • Interface Segregation
  • Dependency Inversion

Free Content

Original PaperDesign Principles and Design Patterns

ReadSOLID Principles

ReadSOLID: The First 5 Principles of Object Oriented 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/backend/design-and-development-principles:test-driven-development.html b/backend/design-and-development-principles:test-driven-development.html new file mode 100644 index 000000000..f89b42ead --- /dev/null +++ b/backend/design-and-development-principles:test-driven-development.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Test Driven Development

Test driven development (TDD) is the process of writing tests for software's requirements which will fail until the software is developed to meet those requirements. Once those tests pass, then the cycle repeats to refactor code or develop another feature/requirement. In theory, this ensures that software is written to meet requirements in the simplest form, and avoids code defects.

Free Content

ReadWhat is Test Driven Development (TDD)?

ReadTest-driven development

WatchAgile in Practice: Test Driven Development


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/design-and-development-principles:yagni.html b/backend/design-and-development-principles:yagni.html new file mode 100644 index 000000000..a39d2891e --- /dev/null +++ b/backend/design-and-development-principles:yagni.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

YAGNI

You Aren't Going to Need It (YAGNI) is a software design principle from the Extreme Programming (XP) framework that states when developing software, functionality or features should not be added until they are necessary. Within agile software development in general, requirements are always open to change; any extra functionality may end up being wasted time and resources.

Free Content

ReadYagni

ReadYAGNI


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/graph-databases.html b/backend/graph-databases.html new file mode 100644 index 000000000..6c934b217 --- /dev/null +++ b/backend/graph-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Graph databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/graph-databases:neo4j.html b/backend/graph-databases:neo4j.html new file mode 100644 index 000000000..460b14ced --- /dev/null +++ b/backend/graph-databases:neo4j.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Neo4j


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/graphql.html b/backend/graphql.html new file mode 100644 index 000000000..b84b958c8 --- /dev/null +++ b/backend/graphql.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/graphql:apollo.html b/backend/graphql:apollo.html new file mode 100644 index 000000000..0c96506af --- /dev/null +++ b/backend/graphql:apollo.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/graphql:relay-modern.html b/backend/graphql:relay-modern.html new file mode 100644 index 000000000..d441ced1a --- /dev/null +++ b/backend/graphql:relay-modern.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/home.html b/backend/home.html new file mode 100644 index 000000000..cc7cc01fc --- /dev/null +++ b/backend/home.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/interactive.html b/backend/interactive.html new file mode 100644 index 000000000..f674ad7cf --- /dev/null +++ b/backend/interactive.html @@ -0,0 +1,6 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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 2022

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/backend/internet.html b/backend/internet.html new file mode 100644 index 000000000..8925ad24f --- /dev/null +++ b/backend/internet.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:browsers-and-how-they-work.html b/backend/internet:browsers-and-how-they-work.html new file mode 100644 index 000000000..b6f7fde86 --- /dev/null +++ b/backend/internet:browsers-and-how-they-work.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:dns-and-how-it-works.html b/backend/internet:dns-and-how-it-works.html new file mode 100644 index 000000000..4848b9d2e --- /dev/null +++ b/backend/internet:dns-and-how-it-works.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:how-does-the-internet-work.html b/backend/internet:how-does-the-internet-work.html new file mode 100644 index 000000000..156413e71 --- /dev/null +++ b/backend/internet:how-does-the-internet-work.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:what-is-domain-name.html b/backend/internet:what-is-domain-name.html new file mode 100644 index 000000000..72def9192 --- /dev/null +++ b/backend/internet:what-is-domain-name.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:what-is-hosting.html b/backend/internet:what-is-hosting.html new file mode 100644 index 000000000..6d646321f --- /dev/null +++ b/backend/internet:what-is-hosting.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/internet:what-is-http.html b/backend/internet:what-is-http.html new file mode 100644 index 000000000..3ab9df851 --- /dev/null +++ b/backend/internet:what-is-http.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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

ReadHTTP/3 From A To Z: Core Concepts

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/backend/learn-a-language.html b/backend/learn-a-language.html new file mode 100644 index 000000000..e50d4009f --- /dev/null +++ b/backend/learn-a-language.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Learn a language


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/learn-a-language:csharp.html b/backend/learn-a-language:csharp.html new file mode 100644 index 000000000..c31ba92c2 --- /dev/null +++ b/backend/learn-a-language:csharp.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Csharp

C# (pronounced "C sharp") is a general purpose programming language made by Microsoft. It is used to perform different tasks and can be used to create web apps, games, mobile apps, etc.

Free Content

LearnC# Learning Path

LearnC# on W3 schools

WatchIntroduction to C#

WatchC# 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/backend/learn-a-language:go.html b/backend/learn-a-language:go.html new file mode 100644 index 000000000..a01020cfc --- /dev/null +++ b/backend/learn-a-language:go.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Go

Go is an open source programming language supported by Google. Go can be used to write cloud services, CLI tools, used for API development, and much more.

Free Content

ReadA Tour of Go – Go Basics

ReadGo Reference Documentation

ReadGo by Example - annotated example programs

CourseLearn Go | Codecademy

CourseW3Schools Go Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/learn-a-language:java.html b/backend/learn-a-language:java.html new file mode 100644 index 000000000..bc85866b2 --- /dev/null +++ b/backend/learn-a-language:java.html @@ -0,0 +1,12 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Java

Java is general-purpose language, primarily used for Internet-based applications. +It was created in 1995 by James Gosling at Sun Microsystems and is one of the most popular options for backend developers.

Free Content

Official WebsiteJava Website

LearnCodeacademy - Free Course

LearnW3 Schools Tutorials

WatchJava 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/backend/learn-a-language:javascript.html b/backend/learn-a-language:javascript.html new file mode 100644 index 000000000..d2f91bca1 --- /dev/null +++ b/backend/learn-a-language:javascript.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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. Apart from being used on the frontend in browsers, there is Node.js which is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.

Free Content

ReadW3Schools – JavaScript Tutorial

ReadThe Modern JavaScript Tutorial

WatchJavaScript Crash Course for Beginners

WatchNode.js Crash Course

WatchNode.js Tutorial for Beginners

CourseCodecademy - Learn 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/backend/learn-a-language:php.html b/backend/learn-a-language:php.html new file mode 100644 index 000000000..78bb0eb71 --- /dev/null +++ b/backend/learn-a-language:php.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

PHP

PHP is a server scripting language and a powerful tool for making dynamic and interactive Web pages. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group.

Free Content

Official WebsitePHP Website

ReadLearn PHP - W3Schools

WatchPHP For Absolute 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/backend/learn-a-language:python.html b/backend/learn-a-language:python.html new file mode 100644 index 000000000..341ba7f28 --- /dev/null +++ b/backend/learn-a-language:python.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Python

Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedureal or object-oriented programmatic ways.

Free Content

Python WebsitePython Website

ReadPython Getting Started

CourseW3Schools - Python Tutorial

CoursePython Crash Course

ReadAutomate the Boring Stuff

CourseCodecademy - Learn Python 2


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/learn-a-language:ruby.html b/backend/learn-a-language:ruby.html new file mode 100644 index 000000000..0095277f5 --- /dev/null +++ b/backend/learn-a-language:ruby.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ruby

Ruby is a high-level, interpreted programming language that blends Perl, Smalltalk, Eiffel, Ada, and Lisp. Ruby focuses on simplicity and productivity along with a syntax that reads and writes naturally. Ruby supports procedural, object-oriented and functional programming and is dynamically typed.

Free Content

Ruby WebsiteRuby Website

CourseLearn Ruby in 20 minutes

CourseLearn Ruby | Codecademy


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/learn-a-language:rust.html b/backend/learn-a-language:rust.html new file mode 100644 index 000000000..66d0d47bf --- /dev/null +++ b/backend/learn-a-language:rust.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rust

Rust is a modern systems programming language focusing on safety, speed, and concurrency. It accomplishes these goals by being memory safe without using garbage collection.

Free Content

ReadThe Rust Programming Language - online book

ReadRust by Example - collection of runnable examples


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/message-brokers.html b/backend/message-brokers.html new file mode 100644 index 000000000..c23271495 --- /dev/null +++ b/backend/message-brokers.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Message brokers


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/message-brokers:kafka.html b/backend/message-brokers:kafka.html new file mode 100644 index 000000000..733f4cbec --- /dev/null +++ b/backend/message-brokers:kafka.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Kafka


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/message-brokers:rabbitmq.html b/backend/message-brokers:rabbitmq.html new file mode 100644 index 000000000..6a9ab61a1 --- /dev/null +++ b/backend/message-brokers:rabbitmq.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rabbitmq


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases.html b/backend/more-about-databases.html new file mode 100644 index 000000000..74dbe06fd --- /dev/null +++ b/backend/more-about-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

More about databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:acid.html b/backend/more-about-databases:acid.html new file mode 100644 index 000000000..61a42b29c --- /dev/null +++ b/backend/more-about-databases:acid.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

ACID

ACID are the four properties of any database system that help in making sure that we are able to perform the transactions in a reliable manner. It's an acronym which refers to the presence of four properties: atomicity, consistency, isolation and durability

Free Content

WatchACID Explained: Atomic, Consistent, Isolated & Durable

ReadWhat is ACID Compliant Database?

ReadWhat is ACID Compliance?: Atomicity, Consistency, Isolation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:cap-theorem.html b/backend/more-about-databases:cap-theorem.html new file mode 100644 index 000000000..e77bd328f --- /dev/null +++ b/backend/more-about-databases:cap-theorem.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cap theorem


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:data-replication.html b/backend/more-about-databases:data-replication.html new file mode 100644 index 000000000..7ae9a12e6 --- /dev/null +++ b/backend/more-about-databases:data-replication.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Data replication


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:database-indexes.html b/backend/more-about-databases:database-indexes.html new file mode 100644 index 000000000..ce26cbb5a --- /dev/null +++ b/backend/more-about-databases:database-indexes.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Database indexes


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:database-normalization.html b/backend/more-about-databases:database-normalization.html new file mode 100644 index 000000000..5f887c60c --- /dev/null +++ b/backend/more-about-databases:database-normalization.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Database normalization


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:n-plus-one-problem.html b/backend/more-about-databases:n-plus-one-problem.html new file mode 100644 index 000000000..68c13e69c --- /dev/null +++ b/backend/more-about-databases:n-plus-one-problem.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

N plus one problem


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:orms.html b/backend/more-about-databases:orms.html new file mode 100644 index 000000000..776b3c112 --- /dev/null +++ b/backend/more-about-databases:orms.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Orms


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:sharding-strategies.html b/backend/more-about-databases:sharding-strategies.html new file mode 100644 index 000000000..02c031527 --- /dev/null +++ b/backend/more-about-databases:sharding-strategies.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Sharding strategies


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/more-about-databases:transactions.html b/backend/more-about-databases:transactions.html new file mode 100644 index 000000000..04dce0c3b --- /dev/null +++ b/backend/more-about-databases:transactions.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Transactions


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/nosql-databases.html b/backend/nosql-databases.html new file mode 100644 index 000000000..3e5ef5011 --- /dev/null +++ b/backend/nosql-databases.html @@ -0,0 +1,12 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

NoSQL databases

NoSQL databases offer data storage and retrieval that is modelled differently to "traditional" relational databases. NoSQL databases typically focus more on horizontal scaling, eventual consistency, speed and flexibility and is used commonly for big data and real-time streaming applications. +NoSQL is often described as a BASE system (Basically Available, Soft state, Eventual consistency) as opposed to SQL/relational which typically focus on ACID (Atomicity, Consistency, Isolation, Durability). Common NoSQL data structures include key-value pair, wide column, graph and document.

Free Content

ReadNoSQL Explained

WatchHow do NoSQL Databases work

WatchSQL vs NoSQL Explained


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/nosql-databases:column-databases.html b/backend/nosql-databases:column-databases.html new file mode 100644 index 000000000..1b2f42682 --- /dev/null +++ b/backend/nosql-databases:column-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Column databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/nosql-databases:document-databases.html b/backend/nosql-databases:document-databases.html new file mode 100644 index 000000000..107f7b48d --- /dev/null +++ b/backend/nosql-databases:document-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Document databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/nosql-databases:realtime-databases.html b/backend/nosql-databases:realtime-databases.html new file mode 100644 index 000000000..447495fcc --- /dev/null +++ b/backend/nosql-databases:realtime-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Realtime databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/nosql-databases:timeseries-databases.html b/backend/nosql-databases:timeseries-databases.html new file mode 100644 index 000000000..2221a4581 --- /dev/null +++ b/backend/nosql-databases:timeseries-databases.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Timeseries databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge.html b/backend/os-general-knowledge.html new file mode 100644 index 000000000..405a22da1 --- /dev/null +++ b/backend/os-general-knowledge.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

General Knowledge

Operating System is a program that manages a computer’s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections.

Free Content

ReadWhat is an operating system?

WatchOperating Systems: Crash Course Computer Science #18

WatchIntroduction to Operating System


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:basic-networking-concepts.html b/backend/os-general-knowledge:basic-networking-concepts.html new file mode 100644 index 000000000..52bae5acb --- /dev/null +++ b/backend/os-general-knowledge:basic-networking-concepts.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basic networking 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/backend/os-general-knowledge:basic-terminal-commands.html b/backend/os-general-knowledge:basic-terminal-commands.html new file mode 100644 index 000000000..f8da2a046 --- /dev/null +++ b/backend/os-general-knowledge:basic-terminal-commands.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basic terminal Commands


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:how-oss-work-in-general.html b/backend/os-general-knowledge:how-oss-work-in-general.html new file mode 100644 index 000000000..7251cd3d4 --- /dev/null +++ b/backend/os-general-knowledge:how-oss-work-in-general.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Operating 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 diff --git a/backend/os-general-knowledge:interprocess-communication.html b/backend/os-general-knowledge:interprocess-communication.html new file mode 100644 index 000000000..f2595983f --- /dev/null +++ b/backend/os-general-knowledge:interprocess-communication.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Interprocess Communication

Interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data

ReadInterprocess Communication

WatchInterprocess Communication - Neso Academy


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:io-management.html b/backend/os-general-knowledge:io-management.html new file mode 100644 index 000000000..84398967a --- /dev/null +++ b/backend/os-general-knowledge:io-management.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Io management


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:memory-management.html b/backend/os-general-knowledge:memory-management.html new file mode 100644 index 000000000..eeb5cd744 --- /dev/null +++ b/backend/os-general-knowledge:memory-management.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Memory management


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:posix-basics.html b/backend/os-general-knowledge:posix-basics.html new file mode 100644 index 000000000..7c36ec644 --- /dev/null +++ b/backend/os-general-knowledge:posix-basics.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Posix basics


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:process-management.html b/backend/os-general-knowledge:process-management.html new file mode 100644 index 000000000..29dfcd036 --- /dev/null +++ b/backend/os-general-knowledge:process-management.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Process Management


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:terminal-usage.html b/backend/os-general-knowledge:terminal-usage.html new file mode 100644 index 000000000..6ec0e5ace --- /dev/null +++ b/backend/os-general-knowledge:terminal-usage.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Terminal usage

Terminals, also known as command lines or consoles, allow us to accomplish and automate tasks on a computer without the use of a graphical user interface.

ReadCommand line crash course

CourseBasic Terminal Usage - Cheat Sheet to make the command line EASY


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/os-general-knowledge:threads-and-concurrency.html b/backend/os-general-knowledge:threads-and-concurrency.html new file mode 100644 index 000000000..fe4b90584 --- /dev/null +++ b/backend/os-general-knowledge:threads-and-concurrency.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Threads and Concurrency


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/relational-databases.html b/backend/relational-databases.html new file mode 100644 index 000000000..3c9b6e1e0 --- /dev/null +++ b/backend/relational-databases.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Relational Databases

A relational database is a type of database that stores and provides access to data points that are related to one another. Relational databases store data in a series of tables. Interconnections between the tables are specified as foreign keys. A foreign key is a unique reference from one row in a relational table to another row in a table, which can be the same table but is most commonly a different table.

Free Content

ReadRelational Databases

Read51 Years of Relational Databases

WatchDatabases and SQL

WatchIntro To Relational Databases

WatchWhat is Relational Database


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/relational-databases:mariadb.html b/backend/relational-databases:mariadb.html new file mode 100644 index 000000000..12ab00e2b --- /dev/null +++ b/backend/relational-databases:mariadb.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mariadb


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/relational-databases:mssql.html b/backend/relational-databases:mssql.html new file mode 100644 index 000000000..5e2f67481 --- /dev/null +++ b/backend/relational-databases:mssql.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

MS SQL

MS SQL (or Microsoft SQL Server) is the Microsoft developed relational database management system (RDBMS). MS SQL uses the T-SQL (Transact-SQL) query language to interact with the relational databases. There are many different versions and editions available of MS SQL

Free Content

MS SQL WebsiteMS SQL website

TutorialTutorials for SQL Server

CourseSQL Server tutorial 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/backend/relational-databases:mysql.html b/backend/relational-databases:mysql.html new file mode 100644 index 000000000..963df0402 --- /dev/null +++ b/backend/relational-databases:mysql.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

MySQL

MySQL is an incredibly popular open source relational database management system (RDBMS). MySQL can be used as a stand-alone client or in conjunction with other services to provide database connectivity. The M in LAMP stack stands for MySQL; that alone should provide an idea of its prevalence.

Free Content

MySQL WebsiteMySQL website

CourseW3Schools - MySQL tutorial

CourseMySQL tutorial 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/backend/relational-databases:oracle.html b/backend/relational-databases:oracle.html new file mode 100644 index 000000000..37bca514f --- /dev/null +++ b/backend/relational-databases:oracle.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Oracle


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/relational-databases:postgresql.html b/backend/relational-databases:postgresql.html new file mode 100644 index 000000000..1c32b1963 --- /dev/null +++ b/backend/relational-databases:postgresql.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

PostgreSQL

PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.

Free Content

Official WebsiteOfficial Website

ReadWhat is PostgreSQL

WatchLearn PostgreSQL Tutorial - Full Course for Beginners

WatchPostgres tutorial 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/backend/repo-hosting-services.html b/backend/repo-hosting-services.html new file mode 100644 index 000000000..9dad8628b --- /dev/null +++ b/backend/repo-hosting-services.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Repo Hosting Services

When working on a team, you often need a remote place to put your code so others can access it, create their own branches, and create or review pull requests. These services often include issue tracking, code review, and continuous integration features. A few popular choices are GitHub, GitLab, BitBucket, and AWS CodeCommit.

Free Content

Official WebsiteGitHub

Official WebsiteGitLab

Official WebsiteBitBucket

ReadHow to choose the best source code repository


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/repo-hosting-services:bitbucket.html b/backend/repo-hosting-services:bitbucket.html new file mode 100644 index 000000000..d82f1c3d2 --- /dev/null +++ b/backend/repo-hosting-services:bitbucket.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bitbucket

Bitbucket is a Git based hosting and source code repository service that is Atlassian's alternative to other products like GitHub, GitLab etc

Bitbucket offers hosting options via Bitbucket Cloud (Atlassian's servers), Bitbucket Server (customer's on-premise) or Bitbucket Data Centre (number of servers in customers on-premise or cloud environment)

Free Content

Bitbucket WebsiteBitbucket Website

ReadA brief overview of Bitbucket

GuideGetting started with Bitbucket

GuideUsing Git with Bitbucket Cloud

WatchBitbucket tutorial | How to use Bitbucket Cloud

WatchBitbucket Tutorial | Bitbucket 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/backend/repo-hosting-services:github.html b/backend/repo-hosting-services:github.html new file mode 100644 index 000000000..9403d10f0 --- /dev/null +++ b/backend/repo-hosting-services:github.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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

Official WebsiteGitHub Website

Official DocumentationGitHub Documentation

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/backend/repo-hosting-services:gitlab.html b/backend/repo-hosting-services:gitlab.html new file mode 100644 index 000000000..b36b8661f --- /dev/null +++ b/backend/repo-hosting-services:gitlab.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

GitLab

GitLab 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

Official WebsiteGitLab Website

Official DocumentationGitLab Documentation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..995984951 --- /dev/null +++ b/backend/resources.html @@ -0,0 +1,16 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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 2022

All RoadmapsDownloadSubscribe

NewResources are here, try clicking any nodes.

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/scalability.html b/backend/scalability.html new file mode 100644 index 000000000..966f87572 --- /dev/null +++ b/backend/scalability.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Scalability


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/scalability:horizontal-vertial-scaling.html b/backend/scalability:horizontal-vertial-scaling.html new file mode 100644 index 000000000..6b8fe4c94 --- /dev/null +++ b/backend/scalability:horizontal-vertial-scaling.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Horizontal/Vertical Scaling

Horizontal scaling is a change in the number of a resource. For example, increasing the number of virtual machines processing messages in a queue. Vertical scaling is a change in the size/power of a resource. For example, increasing the memory or disk space available to a machine. Scaling can be applied to databases, cloud resources, and other areas of computing.

Free Content

WatchSystem Design Basics: Horizontal vs. Vertical Scaling

WatchSystem Design 101

ReadHorizontal vs Vertical Scaling

ReadScaling In Databases


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/scalability:instrumentation-monitoring-telemetry.html b/backend/scalability:instrumentation-monitoring-telemetry.html new file mode 100644 index 000000000..2548028dd --- /dev/null +++ b/backend/scalability:instrumentation-monitoring-telemetry.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Instrumentation monitoring telemetry


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/scalability:migration-strategies.html b/backend/scalability:migration-strategies.html new file mode 100644 index 000000000..e358cd6c9 --- /dev/null +++ b/backend/scalability:migration-strategies.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Migration strategies


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/scalability:mitigation-strategies.html b/backend/scalability:mitigation-strategies.html new file mode 100644 index 000000000..ee3594e09 --- /dev/null +++ b/backend/scalability:mitigation-strategies.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mitigation strategies


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/scalability:observability.html b/backend/scalability:observability.html new file mode 100644 index 000000000..7042f1313 --- /dev/null +++ b/backend/scalability:observability.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Observability


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/search-engines.html b/backend/search-engines.html new file mode 100644 index 000000000..4e592abb7 --- /dev/null +++ b/backend/search-engines.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Search engines


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/search-engines:elasticsearch.html b/backend/search-engines:elasticsearch.html new file mode 100644 index 000000000..427bda46e --- /dev/null +++ b/backend/search-engines:elasticsearch.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Elasticsearch

Elastic search at its core is a document-oriented search engine. It is a document based database that lets you INSERT, DELETE , RETRIEVE and even perform analytics on the saved records. But, Elastic Search is unlike any other general purpose database you have worked with, in the past. It's essentially a search engine and offers an arsenal of features you can use to retrieve the data stored in it, as per your search criteria. And that too, at lightning speeds.

Free Content

Official WebsiteElasticsearch Website

Official DocsElasticsearch Documentation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/search-engines:solr.html b/backend/search-engines:solr.html new file mode 100644 index 000000000..6e9ceeab6 --- /dev/null +++ b/backend/search-engines:solr.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Solr


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/testing.html b/backend/testing.html new file mode 100644 index 000000000..6e2fe04f6 --- /dev/null +++ b/backend/testing.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Testing

A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code.

Free Content

ReadWhat is Software Testing?

ReadTesting Pyramid


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/testing:functional-testing.html b/backend/testing:functional-testing.html new file mode 100644 index 000000000..d94123163 --- /dev/null +++ b/backend/testing:functional-testing.html @@ -0,0 +1,12 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Functional Testing

Functional testing is where software is tested to ensure functional requirements are met. Usually, it is a form of black box testing in which the tester has no understanding of the source code; testing is performed by providing input and comparing expected/actual output. +It contrasts with non-functional testing, which includes performance, load, scalability, and penetration testing.

Free Content

ReadWhat is Functional Testing?

WatchFunctional Testing vs Non-Functional Testing


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/testing:integration-testing.html b/backend/testing:integration-testing.html new file mode 100644 index 000000000..6200018e9 --- /dev/null +++ b/backend/testing:integration-testing.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Integration Testing

Integration testing a broad category of tests where multiple software modules are integrated and tested as a group. It is meant to test the interaction between multiple services, resources, or modules. For example, an API's interaction with a backend service, or a service with a database.

Free Content

ReadIntegration Testing

WatchWhat is Integration Testing?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/testing:unit-testing.html b/backend/testing:unit-testing.html new file mode 100644 index 000000000..ee5233066 --- /dev/null +++ b/backend/testing:unit-testing.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Unit Testing

Unit testing is where individual units (modules, functions/methods, routines, etc.) of software are tested to ensure their correctness. This low-level testing ensures smaller components are functionally sound while taking the burden off of higher-level tests. Generally, a developer writes these tests during the development process and they are run as automated tests.

Free Content

ReadUnit Testing Tutorial

WatchWhat is Unit Testing?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/version-control-systems.html b/backend/version-control-systems.html new file mode 100644 index 000000000..a7b5a5f10 --- /dev/null +++ b/backend/version-control-systems.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Version Control Systems

Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made.

Free Content

Official WebsiteGit

Official WebsiteMercurial

ReadWhat is Version Control?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/version-control-systems:git.html b/backend/version-control-systems:git.html new file mode 100644 index 000000000..4a03a48a0 --- /dev/null +++ b/backend/version-control-systems:git.html @@ -0,0 +1,13 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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.

Free Content

WatchVersion Control System Introduction

WatchGit & GitHub Crash Course For Beginners

WatchLearn Git in 20 Minutes

CourseLearn Git on the command line


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge.html b/backend/web-security-knowledge.html new file mode 100644 index 000000000..a9417fb06 --- /dev/null +++ b/backend/web-security-knowledge.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/web-security-knowledge:bcrypt.html b/backend/web-security-knowledge:bcrypt.html new file mode 100644 index 000000000..1e584fdcc --- /dev/null +++ b/backend/web-security-knowledge:bcrypt.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bcrypt

bcrypt is a password hashing function, that has proven been proven reliable and secure since it's release in 1999.It has been implemented into most commonly-used programming languages.

Free Content

Watchbcrypt explained

ReadUnderstanding bcrypt

NPMbcrypt's npm package


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:content-security-policy.html b/backend/web-security-knowledge:content-security-policy.html new file mode 100644 index 000000000..2ee38129b --- /dev/null +++ b/backend/web-security-knowledge:content-security-policy.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
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/backend/web-security-knowledge:cors.html b/backend/web-security-knowledge:cors.html new file mode 100644 index 000000000..63f11d055 --- /dev/null +++ b/backend/web-security-knowledge:cors.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Cors

Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources.

Free Content

ReadCross-Origin Resource Sharing (CORS)

WatchCORS in 100 Seconds

WatchCORS in 6 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/backend/web-security-knowledge:https.html b/backend/web-security-knowledge:https.html new file mode 100644 index 000000000..5e89829f1 --- /dev/null +++ b/backend/web-security-knowledge:https.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTTPS

HTTPS is a secure way to send data between a web server and a browser.

Free Content

ReadWhat is HTTPS?

ReadWhy HTTPS Matters

ReadEnabling HTTPS on Your Servers

WatchSSL, TLS, HTTP, HTTPS Explained

WatchHTTPS — Stories from the field


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:md5.html b/backend/web-security-knowledge:md5.html new file mode 100644 index 000000000..b5ae0991b --- /dev/null +++ b/backend/web-security-knowledge:md5.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

MD5

MD5 (Message-Digest Algorithm 5) is a hash function that is currently advised not to be used due to it's extensive vulnerabilities. It is still used as a checksum to verify data integrity.

Free Content

ReadWikipedia - MD5

ReadWhat is MD5?

ReadWhy is MD5 not safe?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:owasp.html b/backend/web-security-knowledge:owasp.html new file mode 100644 index 000000000..320dafc15 --- /dev/null +++ b/backend/web-security-knowledge:owasp.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Owasp


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:scrypt.html b/backend/web-security-knowledge:scrypt.html new file mode 100644 index 000000000..9e6c5f7be --- /dev/null +++ b/backend/web-security-knowledge:scrypt.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Scrypt


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:sha-family.html b/backend/web-security-knowledge:sha-family.html new file mode 100644 index 000000000..f370b37ce --- /dev/null +++ b/backend/web-security-knowledge:sha-family.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Sha family


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-security-knowledge:ssl-tls.html b/backend/web-security-knowledge:ssl-tls.html new file mode 100644 index 000000000..6d5d9f8a2 --- /dev/null +++ b/backend/web-security-knowledge:ssl-tls.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ssl tls


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-servers.html b/backend/web-servers.html new file mode 100644 index 000000000..028a22815 --- /dev/null +++ b/backend/web-servers.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web servers


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-servers:apache.html b/backend/web-servers:apache.html new file mode 100644 index 000000000..5736ba445 --- /dev/null +++ b/backend/web-servers:apache.html @@ -0,0 +1,11 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apache

Apache is a free, open-source HTTP server, available on many operating systems, but mainly used on Linux distributions. It is one of the most popular options for web developers, as it accounts for over 30% of all the websites, as estimated by W3Techs.

Free Content

Official WebsiteApache Server Website

WatchWhat is Apache Web Server?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-servers:caddy.html b/backend/web-servers:caddy.html new file mode 100644 index 000000000..8338b3d78 --- /dev/null +++ b/backend/web-servers:caddy.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Caddy


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-servers:ms-iis.html b/backend/web-servers:ms-iis.html new file mode 100644 index 000000000..713227329 --- /dev/null +++ b/backend/web-servers:ms-iis.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ms iis


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-servers:nginx.html b/backend/web-servers:nginx.html new file mode 100644 index 000000000..aa96bae89 --- /dev/null +++ b/backend/web-servers:nginx.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nginx


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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/web-sockets.html b/backend/web-sockets.html new file mode 100644 index 000000000..f693f565a --- /dev/null +++ b/backend/web-sockets.html @@ -0,0 +1,9 @@ +Backend Developer Roadmap: Learn to become a modern backend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web sockets


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..9f117615b --- /dev/null +++ b/devops.html @@ -0,0 +1,6 @@ +DevOps Roadmap: Learn to become a DevOps Engineer or SRE
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 2022

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 new file mode 100644 index 000000000..39cdbf2fc --- /dev/null +++ b/devops/devops.html @@ -0,0 +1,6 @@ +DevOps Roadmap: Learn to become a DevOps Engineer or SRE
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 new file mode 100644 index 000000000..493631aa5 --- /dev/null +++ b/devops/interactive.html @@ -0,0 +1,6 @@ +DevOps Roadmap: Learn to become a DevOps Engineer or SRE
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 2022

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 new file mode 100644 index 000000000..b70ca9907 --- /dev/null +++ b/devops/resources.html @@ -0,0 +1,16 @@ +DevOps Roadmap: Learn to become a DevOps Engineer or SRE
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 2022

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 new file mode 100644 index 000000000..5668e0605 --- /dev/null +++ b/frontend.html @@ -0,0 +1,6 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 2022

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 new file mode 100644 index 000000000..d8c61f163 --- /dev/null +++ b/frontend/build-tools.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..2f83aa3d7 --- /dev/null +++ b/frontend/build-tools:linters-formatters.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..f8ba02a53 --- /dev/null +++ b/frontend/build-tools:linters-formatters:eslint.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

ESLint

With ESLint you can impose the coding standard using a certain set of standalone rules.

Free Content

Official WebsiteESLint Official Website

ReadIntroduction to ESLint

WatchESLint Quickstart - find errors automatically


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..4ca58ff4a --- /dev/null +++ b/frontend/build-tools:linters-formatters:prettier.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Prettier

Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, and more.

Free Content

WebsitePrettier Website


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..29fb86785 --- /dev/null +++ b/frontend/build-tools:linters-formatters:standardjs.html @@ -0,0 +1,12 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

StandardJS

Standardjs is a Style guide, with linter & automatic code fixer. It is a way to enforce consistent style in your project. It automatically formats code. +Standard JS is a tool in the Code Review category of a tech stack.

Free Content

ReadOfficial Website

WatchStandard JS Tutorial with React, 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:module-bundlers.html b/frontend/build-tools:module-bundlers.html new file mode 100644 index 000000000..c980958ce --- /dev/null +++ b/frontend/build-tools:module-bundlers.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..769dc7e81 --- /dev/null +++ b/frontend/build-tools:module-bundlers:esbuild.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

esbuild

Our current build tools for the web are 10-100x slower than they could be. The main goal of the esbuild bundler project is to bring about a new era of build tool performance, and create an easy-to-use modern bundler along the way.

Official WebsiteEsbuild Official Website

Official DocumentationEsbuild Documentation

WatchWhy are People Obsessed with 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 new file mode 100644 index 000000000..adb3a7ba2 --- /dev/null +++ b/frontend/build-tools:module-bundlers:parcel.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Parcel

Parcel is a web application bundler, differentiated by its developer experience. It offers blazing-fast performance utilizing multicore processing and requires zero configuration.

Free Content

Official WebsiteOfficial Website and Docs

WatchUsing Parcel Bundler with React


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..8d1f447a2 --- /dev/null +++ b/frontend/build-tools:module-bundlers:rollup.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Rollup

Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application.

Free Content

ReadOfficial Website and Docs

WatchHow to Set Up JavaScript Bundling Using 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 new file mode 100644 index 000000000..a845e78b3 --- /dev/null +++ b/frontend/build-tools:module-bundlers:vite.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vite

Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects.

Free Content

Official WebsiteVite Website

DocumentationVite Documentation

CourseVite 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/build-tools:module-bundlers:webpack.html b/frontend/build-tools:module-bundlers:webpack.html new file mode 100644 index 000000000..27841821b --- /dev/null +++ b/frontend/build-tools:module-bundlers:webpack.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Webpack

Webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.

Free Content

Official WebsiteWebpack Official Website

Official DocumentationWebpack Documentation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..83880de53 --- /dev/null +++ b/frontend/build-tools:task-runners.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..308ad8622 --- /dev/null +++ b/frontend/build-tools:task-runners:npm-scripts.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

npm Scripts

npm scripts are the entries in the scripts field of the package.json file. The scripts field holds an object where you can specify various commands and scripts that you want to expose.

Free Content

ReadIntroduction to npm scripts

WatchCodevolution: 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 new file mode 100644 index 000000000..f0ea2582d --- /dev/null +++ b/frontend/css-architecture.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS Architecture

CSS is notoriously difficult to manage in large, complex, rapidly-iterated systems. There are different ways of writing CSS that allows in writing more maintainable CSS.

Free Content

ReadA Look at Some CSS Methodologies

Official WebsiteBEM Official Website

Official WebsiteOOCSS Official Website

Official WebsiteSMACSS Official Website


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..46b126f87 --- /dev/null +++ b/frontend/css-architecture:bem.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..164cc3f13 --- /dev/null +++ b/frontend/css-architecture:oocss.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..2e30f6450 --- /dev/null +++ b/frontend/css-architecture:smacss.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

SMACSS

SMACSS (pronounced “smacks”) is more style guide than rigid framework. SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS.

Free Content

Official WebsiteSMACSS Official Website


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..5174cb7b1 --- /dev/null +++ b/frontend/css-frameworks.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..d94a69263 --- /dev/null +++ b/frontend/css-frameworks:css-first.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..cee4d7b32 --- /dev/null +++ b/frontend/css-frameworks:css-first:bootstrap.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bootstrap

Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.

Free Content

Framework WebsiteBootstrap Website

CourseBootstrap CSS Framework - Full 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-frameworks:css-first:bulma.html b/frontend/css-frameworks:css-first:bulma.html new file mode 100644 index 000000000..1f8f48dd0 --- /dev/null +++ b/frontend/css-frameworks:css-first:bulma.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Bulma

Bulma is a free, open source framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces.

Free Content

Framework WebsiteBulma Website

CourseBulma CSS Tutorial

CourseLearn Bulma CSS

ReadHow To Build A ? Responsive Blog Design With Bulma 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-frameworks:js-first.html b/frontend/css-frameworks:js-first.html new file mode 100644 index 000000000..ef1222d2a --- /dev/null +++ b/frontend/css-frameworks:js-first.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..67df58b6e --- /dev/null +++ b/frontend/css-frameworks:js-first:chakra-ui.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Chakra UI

Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications.

Free Content

Official WebsiteChakra UI Website

Official DocsChakra UI Official Getting Started

CourseBuild a Modern User Interface with Chakra UI

Course

WatchOfficial Getting Started Video

WatchChakra UI Crash Course

ReadWhy You Should Start Using 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 new file mode 100644 index 000000000..5a0340892 --- /dev/null +++ b/frontend/css-frameworks:js-first:material-ui.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Material UI

Material-UI is an open-source framework that features React components that implement Google’s Material Design.

Free Content

Framework WebsiteOfficial Website

DocsOfficial Documentation

WatchMaterial UI React Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..68745db26 --- /dev/null +++ b/frontend/css-frameworks:js-first:radix-ui.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Radix UI

An open-source UI component library for building high-quality, accessible design systems and web apps.

Free Content

Framework WebsiteOfficial Website

Official DocsOfficial Documentation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..5f24e2636 --- /dev/null +++ b/frontend/css-frameworks:js-first:tailwind-css.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..a54a72dd2 --- /dev/null +++ b/frontend/css-preprocessors.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS Preprocessors

CSS Preprocessors are scripting languages that extend the default capabilities of CSS. They enable us to use logic in our CSS code, such as variables, nesting, inheritance, mixins, functions, and mathematical operations.

Free Content

ReadCSS Preprocessors Explained

ReadWhy Use 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 new file mode 100644 index 000000000..622b657f3 --- /dev/null +++ b/frontend/css-preprocessors:less.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Less

Less extends CSS with dynamic behavior such as variables, mixins, operations and functions. Less runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only).

Free Content

ReadOfficial Website

ReadOfficial Documentation

Watch Less CSS Pre-Processor Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..7bc829f57 --- /dev/null +++ b/frontend/css-preprocessors:postcss.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

PostCSS

PostCSS is a tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.

Free Resources

WebsiteOfficial Website


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..beca3c784 --- /dev/null +++ b/frontend/css-preprocessors:sass.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Sass

Sass is a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets. It lets you write maintainable CSS and provides features like variable, nesting, mixins, extension, functions, loops, conditionals and so on.

Free Content

Official WebsiteSass Website

DocumentationOfficial Documentation

Watch Sass Tutorial 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.html b/frontend/css.html new file mode 100644 index 000000000..42fade5fe --- /dev/null +++ b/frontend/css.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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

ReadWeb.dev by Google — 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

CourseWhat The Flexbox!

CourseLearn CSS | Codecademy

CourseLearn Intermediate CSS | Codecademy


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..029f2d1f6 --- /dev/null +++ b/frontend/css:learn-the-basics.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..f429f982e --- /dev/null +++ b/frontend/css:making-layouts.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Making layouts

Float, grid, flexbox, positioning, display and box model are some of the key topics that are used for making layouts. Use the resources below to learn about these topics:

Free Content

ReadLearn and Practice Flexbox

ReadGame for learning CSS Grid

ReadAll about Floats

ReadPositioning Types: How Do They Differ?

ReadThe Box Model

ReadThe CSS Display Property


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..c027337d1 --- /dev/null +++ b/frontend/css:responsive-design-and-media-queries.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Responsive Web Design

Responsive Web Designing is the technique to make your webpages look good on all screen sizes. There are certain techniques used to achieve that e.g. CSS media queries, percentage widths, min or max widths heights etc.

Free Content

ReadResponsive Web Design

ReadLearn Responsive Design

WatchIntroduction To Responsive Web 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 new file mode 100644 index 000000000..7796d5c6b --- /dev/null +++ b/frontend/desktop-applications.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..310b0e8c3 --- /dev/null +++ b/frontend/desktop-applications:carlo.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Carlo

Carlo is a headful Node app framework for building desktop applications.

Free Content

Official RepGithub Repository

ReadCarlo development on a web server


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..fb9b7e812 --- /dev/null +++ b/frontend/desktop-applications:electron.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Electron

Electron allows you to build cross-platform desktop applications with HTML, CSS, and Javascript/Typescript. It uses Chromium and Node.js, so essentially it is a "Browser" like application that is compatbile with Mac, Windows, and Linux.


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..4f47c98ee --- /dev/null +++ b/frontend/desktop-applications:proton-native.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Proton native

Proton Native allows you to create desktop applications through a React syntax, on all platforms.

Free Content

Official WebsiteOfficial Website and Docs

WatchGetting Started With 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 new file mode 100644 index 000000000..e01caea50 --- /dev/null +++ b/frontend/graphql.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Graphql

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

Free Content

ReadIntroduction to GraphQL

ReadThe Fullstack Tutorial for GraphQL

CourseGraphQL Tutorials

CourseGraphQL 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/graphql:apollo.html b/frontend/graphql:apollo.html new file mode 100644 index 000000000..35938535f --- /dev/null +++ b/frontend/graphql:apollo.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Apollo

Apollo is a platform for building a unified graph, a communication layer that helps you manage the flow of data between your application clients (such as web and native apps) and your back-end services.

Free Content

Official WebsiteApollo Website

ReadOfficial Docs

WatchOfficial YouTube Channel

WatchGraphQL With React Tutorial - Apollo Client


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..f3b646475 --- /dev/null +++ b/frontend/graphql:relay-modern.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Relay Modern

Relay is a JavaScript client used in the browser to fetch GraphQL data. It's a JavaScript framework developed by Facebook for managing and fetching data in React applications. It is built with scalability in mind in order to power complex applications like Facebook. The ultimate goal of GraphQL and Relay is to deliver instant UI-response interactions.

Free Content

Official WebsiteOfficial Website

ReadIntroduction to 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 new file mode 100644 index 000000000..0ad353178 --- /dev/null +++ b/frontend/home.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..483bfdfb5 --- /dev/null +++ b/frontend/html.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML

HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course

CourseCodecademy - Learn HTML

CourseInteractive HTML 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 new file mode 100644 index 000000000..5e776578d --- /dev/null +++ b/frontend/html:accessibility.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Accessibility

Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily.

Free Content

WatchComplete Playlist on Accessibility

ReadAccessibility Tutorial

ReadA Complete Guide To Accessible Front-End 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/html:conventions-and-best-practices.html b/frontend/html:conventions-and-best-practices.html new file mode 100644 index 000000000..d2960c0ad --- /dev/null +++ b/frontend/html:conventions-and-best-practices.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Best Practices

Learn to follow the best practices for writing maintainable and scalable HTML documents.

Free Content

ReadHTML 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 new file mode 100644 index 000000000..8ccf060d4 --- /dev/null +++ b/frontend/html:forms-and-validations.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Forms and Validations

Before submitting data to the server, it is important to ensure all required form controls are filled out, in the correct format. This is called client-side form validation, and helps ensure data submitted matches the requirements set forth in the various form controls.

Free Content

ReadMDN Web Docs: Client-side form validation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..eae60c3f7 --- /dev/null +++ b/frontend/html:learn-the-basics.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTML Basics

HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.

Free Content

ReadW3Schools: Learn HTML

CourseHTML Full Course - Build a Website Tutorial

CourseHTML Tutorial for Beginners: HTML Crash Course

CourseBuild 15 JavaScript Projects - Vanilla 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/html:seo-basics.html b/frontend/html:seo-basics.html new file mode 100644 index 000000000..4256b0001 --- /dev/null +++ b/frontend/html:seo-basics.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Basics of SEO

SEO or Search Engine Optimization is the technique used to optimize your website for better rankings on search engines such as Google, Bing etc.

Free Content

ReadGoogle Search Central — SEO Docs

ReadSEO Guide

ReadSEO for Developers


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..63bd7e5e2 --- /dev/null +++ b/frontend/html:writing-semantic-html.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..98ffd6080 --- /dev/null +++ b/frontend/interactive.html @@ -0,0 +1,6 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 2022

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 new file mode 100644 index 000000000..a027313ce --- /dev/null +++ b/frontend/internet.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..89b6b7596 --- /dev/null +++ b/frontend/internet:browsers-and-how-they-work.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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

WatchHow Do Web 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 new file mode 100644 index 000000000..76545122d --- /dev/null +++ b/frontend/internet:dns-and-how-it-works.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..dd3fb2910 --- /dev/null +++ b/frontend/internet:how-does-the-internet-work.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..1b11f9e65 --- /dev/null +++ b/frontend/internet:what-is-domain-name.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..b68e4fa5b --- /dev/null +++ b/frontend/internet:what-is-hosting.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..b27049f84 --- /dev/null +++ b/frontend/internet:what-is-http.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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

ReadHTTP/3 From A To Z: Core Concepts

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 new file mode 100644 index 000000000..4ecf6e93c --- /dev/null +++ b/frontend/javascript.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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.

Free Content

ReadW3Schools – JavaScript Tutorial

ReadThe Modern JavaScript Tutorial

WatchJavaScript Crash Course for Beginners

WatchBuild a Netflix Landing Page Clone with HTML, CSS & JS

CourseLearn the basics of 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:concepts.html b/frontend/javascript:concepts.html new file mode 100644 index 000000000..160b70567 --- /dev/null +++ b/frontend/javascript:concepts.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

JavaScript Concepts

Learn and understand the concepts such as Hoisting, Event Bubbling, Scope, Prototype, Shadow DOM and strict.

Free Content

ReadJavaScript Hoisting

ReadEvent Bubbling and Capturing

ReadScope in JavaScript

ReadVar, Let and Const — What's the difference?

ReadInheritance and Prototype Chain

ReadJavaScript Strict Mode

WatchDOM vs Shadow DOM vs Virtual 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/javascript:es6-and-modular-javascript.html b/frontend/javascript:es6-and-modular-javascript.html new file mode 100644 index 000000000..1d7e1b05a --- /dev/null +++ b/frontend/javascript:es6-and-modular-javascript.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Modern JavaScript

ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming language. It is the first major update to the language since ES5 which was standardized in 2009. You should look at the features introduced with ES6 and onwards.

Free Content

ReadES6 Tutorial

WatchLearn Modern JavaScript in 1 Hour

WatchJavaScript ES6, ES7, ES8


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..242d048d9 --- /dev/null +++ b/frontend/javascript:learn-dom-manipulation.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

DOM Manipulation

The Document Object Model (DOM) connects web pages to scripts or programming languages by representing the structure of a document—such as the HTML representing a web page—in memory.

Free Content

ReadWhat is the DOM?

ReadJavaScript HTML DOM

ReadJavaScript DOM

WatchWhat is DOM, Shadow DOM and Virtual DOM?

WatchJavaScript DOM 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/javascript:learn-fetch-api-ajax-xhr.html b/frontend/javascript:learn-fetch-api-ajax-xhr.html new file mode 100644 index 000000000..9a46fe9d4 --- /dev/null +++ b/frontend/javascript:learn-fetch-api-ajax-xhr.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Fetch API

Ajax is the technique that lets us send and receive the data asynchronously from the servers e.g. updaing the user profile or asynchronously fetch the list of searched products without reloading the page.

Free Content

ReadFetch API MDN Docs

WatchJavaScript Fetch API


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..a535b531f --- /dev/null +++ b/frontend/javascript:syntax-and-basic-constructs.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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.

Free Content

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/mobile-applications.html b/frontend/mobile-applications.html new file mode 100644 index 000000000..9855bbe0e --- /dev/null +++ b/frontend/mobile-applications.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..05e0e5700 --- /dev/null +++ b/frontend/mobile-applications:flutter.html @@ -0,0 +1,17 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 diff --git a/frontend/mobile-applications:ionic.html b/frontend/mobile-applications:ionic.html new file mode 100644 index 000000000..a11469aba --- /dev/null +++ b/frontend/mobile-applications:ionic.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ionic

Ionic framework is an open-source UI toolkit for building performant, high-quality mobile apps, desktop apps, and progressive web apps using web technologies such as HTML, CSS, and JavaScript.

Free Content

Official WebsiteOfficial Website

Official DocsOfficial Getting Started to Ionic framework

WatchIonic Framework 4 - Full Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..e77a5cb3f --- /dev/null +++ b/frontend/mobile-applications:nativescript.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

NativeScript

NativeScript is an open source framework for creating native iOS and Android apps in Angular, TypeScript, or JavaScript.

Free Content

Official WebsiteOfficial Website

Official DocsOfficial Getting Started to NativeScript

WatchNativeScript Tutorial 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/mobile-applications:react-native.html b/frontend/mobile-applications:react-native.html new file mode 100644 index 000000000..f4a196d84 --- /dev/null +++ b/frontend/mobile-applications:react-native.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

React Native

React Native is a popular JavaScript-based mobile app framework that allows you to build natively-rendered mobile apps for iOS and Android. The framework lets you create an application for various platforms by using the same codebase.

Free Content

Official WebsiteOfficial Website

Official DocsOfficial Getting Started to React Native

WatchTutorial to Learn 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 new file mode 100644 index 000000000..9962f4a20 --- /dev/null +++ b/frontend/modern-css.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..e43fdd876 --- /dev/null +++ b/frontend/modern-css:css-modules.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CSS Modules

CSS files in which all class names and animation names are scoped locally by default.

Free Content

Official WebsiteProject GitHub Repository

ReadUsing CSS Modules In React App

WatchCSS Modules: Why are they great?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..3d3826984 --- /dev/null +++ b/frontend/modern-css:emotion.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Emotion

Emotion is a library designed for writing css styles with JavaScript. It provides powerful and predictable style composition in addition to a great developer experience with features such as source maps, labels, and testing utilities. Both string and object styles are supported.

Free Content

ReadOfficial Website and Docs

WatchStyled components using emotion in React


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..9be6f7780 --- /dev/null +++ b/frontend/modern-css:styled-components.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled components

Styled-components is a CSS-in-JS library that enables you to write regular CSS and attach it to JavaScript components. With styled-components, you can use the CSS you’re already familiar with instead of having to learn a new styling structure.

Free Content

ReadOfficial Website

ReadOfficial Docs

WatchStyled Components Crash Course & Project


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..f2d65fbce --- /dev/null +++ b/frontend/modern-css:styled-jsx.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Styled JSX

Styled JSX is a CSS-in-JS library that allows you to write encapsulated and scoped CSS to style your components. The styles you introduce for one component won't affect other components, allowing you to add, change and delete styles without worrying about unintended side effects.

Free Content

Official DocsGetting started

WatchStyled JSX in Next.js: Master 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/package-managers.html b/frontend/package-managers.html new file mode 100644 index 000000000..52dc7de75 --- /dev/null +++ b/frontend/package-managers.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Package Managers

Package managers allow you to manage the dependencies (external code written by you or someone else) that your project needs to work correctly.

Free Content

ReadModern JavaScript for Dinosaurs

ReadAn Absolute Beginner's Guide to Using npm

WatchNPM tutorial for Beginners

WatchNPM Crash Course

ReadYarn - Getting Started

WatchYarn 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/package-managers:npm.html b/frontend/package-managers:npm.html new file mode 100644 index 000000000..38a1fbafa --- /dev/null +++ b/frontend/package-managers:npm.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

npm

npm is a package manager for the JavaScript programming language maintained by npm, Inc. npm is the default package manager for the JavaScript runtime environment Node.js.

Free Content

ReadModern JavaScript for Dinosaurs

ReadAn Absolute Beginner's Guide to Using npm

WatchNPM tutorial for Beginners

WatchNPM Crash Course

CourseHow to 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 new file mode 100644 index 000000000..d002fdb05 --- /dev/null +++ b/frontend/package-managers:yarn.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Yarn

Yarn is a software packaging system developed in 2016 by Facebook for Node.js JavaScript runtime environment that provides speed, consistency, stability, and security as an alternative to npm (package manager).

Free Content

ReadModern JavaScript for Dinosaurs

ReadYarn - Getting Started

WatchYarn 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/pick-a-framework.html b/frontend/pick-a-framework.html new file mode 100644 index 000000000..6991c75fe --- /dev/null +++ b/frontend/pick-a-framework.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Pick a Framework

Web frameworks are designed to write web applications. Frameworks are collections of libraries that aid in the development of a software product or website. Frameworks for web application development are collections of various tools. Frameworks vary in their capabilities and functions, depending on the tasks set. They define the structure, establish the rules, and provide the development tools required.

Free Content

WatchWhat is the difference between a framework and a library?

Watch Which JS Framework is best?


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..cefe871be --- /dev/null +++ b/frontend/pick-a-framework:angular.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..0fe688dd4 --- /dev/null +++ b/frontend/pick-a-framework:angular:ngrx.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

NgRx

NgRx is an open source library that provides reactive state management for your Angular applications

Free Content

Official DocsOfficial Documentation

WatchAngular NgRx Redux Quick Start Tutorial

CourseNgRx 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/pick-a-framework:angular:rxjs.html b/frontend/pick-a-framework:angular:rxjs.html new file mode 100644 index 000000000..3faba4d96 --- /dev/null +++ b/frontend/pick-a-framework:angular:rxjs.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

RxJS

RxJS (Reactive Extensions for JavaScript) is a library for reactive programming using observables that makes it easier to compose asynchronous or callback-based code.

Free Content

Official WebsiteRxJS Official Website

ReadRxJS Angular Docs

WatchRxJS Quick Start

CourseRxJS 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/pick-a-framework:react-js.html b/frontend/pick-a-framework:react-js.html new file mode 100644 index 000000000..f4d3ba1e0 --- /dev/null +++ b/frontend/pick-a-framework:react-js.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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

CourseReact Course - Beginner's Tutorial for React JavaScript Library [2022]

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 new file mode 100644 index 000000000..9715f9d21 --- /dev/null +++ b/frontend/pick-a-framework:react-js:mobx.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

MobX

MobX is an open source state management tool. MobX, a simple, scalable, and standalone state management library, follows functional reactive programming (FRP) implementation and prevents inconsistent state by ensuring that all derivations are performed automatically.

Free Content

Official WebsiteMobX Official Website

WatchIntro to MobX Tutorial


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..02f4782eb --- /dev/null +++ b/frontend/pick-a-framework:react-js:recoil.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Recoil

Recoil is a new state management library built by the Facebook team that simplifies global state management.

Free Content

Official WebsiteRecoil Official Website

ReadOfficial Documentation

WatchLearn the basics of Recoil.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:react-js:redux.html b/frontend/pick-a-framework:react-js:redux.html new file mode 100644 index 000000000..3805657d7 --- /dev/null +++ b/frontend/pick-a-framework:react-js:redux.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Redux

Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as live code editing combined with a time traveling debugger.

Free Content

ReadOfficial Website

ReadOfficial Getting Started to Redux

CourseOfficial Tutorial to Learn Redux

CourseFundamentals of Redux Course from Dan Abramov


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..a2b886262 --- /dev/null +++ b/frontend/pick-a-framework:vue-js.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vue.js

Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is mainly focused on front end development.

Free Content

Framework WebsiteVue.js Website

Official DocsOfficial Getting Started

CourseVue.js Course for Beginners

CourseVue.js 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/pick-a-framework:vue-js:vuex.html b/frontend/pick-a-framework:vue-js:vuex.html new file mode 100644 index 000000000..470c967cf --- /dev/null +++ b/frontend/pick-a-framework:vue-js:vuex.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Vuex

Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion.

Free Content

ReadOfficial Documentation

WatchVuex 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/progressive-web-apps.html b/frontend/progressive-web-apps.html new file mode 100644 index 000000000..2cea72e84 --- /dev/null +++ b/frontend/progressive-web-apps.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Progressive Web Apps

Progressive Web Apps (PWAs) are websites that are progressively enhanced to function like installed, native apps on supporting platforms, while functioning like regular websites on other browsers.

Free Content

ReadProgressive Web Apps for Beginners

ReadLearn PWA

WatchBuild a Progressive Web App


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..1eb3cd187 --- /dev/null +++ b/frontend/progressive-web-apps:apis.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..f1db19e85 --- /dev/null +++ b/frontend/progressive-web-apps:performance.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..98fc3cb76 --- /dev/null +++ b/frontend/repo-hosting-services.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Repo Hosting Services

There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are.

Services Links

VisitGitHub: Where the world builds software

VisitGitLab: Iterate faster, innovate together

VisitBitBucket: The Git solution for professional teams


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..686166b21 --- /dev/null +++ b/frontend/repo-hosting-services:bitbucket.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

BitBucket

BitBucket 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

VisitBitBucket Website

ReadHow to use 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 new file mode 100644 index 000000000..ba0f1f216 --- /dev/null +++ b/frontend/repo-hosting-services:github.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..f785208e7 --- /dev/null +++ b/frontend/repo-hosting-services:gitlab.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

GitLab

GitLab 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

VisitGitLab Website

ReadGitLab Documentation


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..c81bbeab3 --- /dev/null +++ b/frontend/resources.html @@ -0,0 +1,10 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 2022

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 new file mode 100644 index 000000000..f26dbd286 --- /dev/null +++ b/frontend/server-side-rendering.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..8ad1c9a69 --- /dev/null +++ b/frontend/server-side-rendering:angular.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..19fa74141 --- /dev/null +++ b/frontend/server-side-rendering:angular:universal.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..494a1af6a --- /dev/null +++ b/frontend/server-side-rendering:react-js.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..58fe4443e --- /dev/null +++ b/frontend/server-side-rendering:react-js:after-js.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..c0e78ed05 --- /dev/null +++ b/frontend/server-side-rendering:react-js:next-js.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next.js

Next.js is an open-source development framework built on top of Node.js +enabling React based web applications functionalities such as server-side +rendering and generating static websites.

Free Resources

WebsiteOfficial Website

DocsOfficial Docs for Getting Started

WatchMastering Next.js

WatchNext.js for Beginners - freeCodeCamp

HandbookThe Next.js Handbook — freeCodeCamp


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..a9c516ccf --- /dev/null +++ b/frontend/server-side-rendering:vue-js.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..2241e19a7 --- /dev/null +++ b/frontend/server-side-rendering:vue-js:nuxt-js.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..2f8519163 --- /dev/null +++ b/frontend/static-site-generators.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Static Site Generators

A static site generator is a tool that generates a full static HTML website based on raw data and a set of templates. Essentially, a static site generator automates the task of coding individual HTML pages and gets those pages ready to serve to users ahead of time. Because these HTML pages are pre-built, they can load very quickly in users' browsers.

Free Content

ReadWhat is a static site generator?

ReadNext.js SSG

ReadGatsby SSG

ReadSSG — An 11ty, Vite And JAM Sandwich


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..9b5c69a26 --- /dev/null +++ b/frontend/static-site-generators:eleventy.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Eleventy

Eleventy (11ty) is a simple to use, easy to customize, highly performant and powerful static site generator with a helpful set of plugins (e.g. navigation, build-time image transformations, cache assets). Pages can be built and written with a variety of template languages (HTML, Markdown, JavaScript, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug or JS template literals). But it also offers the possibility to dynamically create pages from local data or external sources that are compiled at build time. It has zero client-side JavaScript dependencies.

Free Content

WebsiteOfficial Website

WatchIntroduction to Eleventy

ReadA collection of 11ty starters, projects, plugins, and resources


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..23e5f074b --- /dev/null +++ b/frontend/static-site-generators:gatsbyjs.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..5acab82c0 --- /dev/null +++ b/frontend/static-site-generators:gridsome.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..c10038ec1 --- /dev/null +++ b/frontend/static-site-generators:hugo.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..3b2c61a14 --- /dev/null +++ b/frontend/static-site-generators:jekyll.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jekyll

Jekyll is a static site generator. It takes text written in your favorite markup language and uses layouts to create a static website. You can tweak the site’s look and feel, URLs, the data displayed on the page, and more.

Free Content

Official WebsiteJekyll Website

DocsJekyll Docs


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..f7441bdd8 --- /dev/null +++ b/frontend/static-site-generators:next-js.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Next.js

Next.js is an open-source development framework built on top of Node.js +enabling React based web applications functionalities such as server-side +rendering and generating static websites.

Free Resources

WebsiteOfficial Website

DocsOfficial Docs for Getting Started

WatchMastering Next.js

WatchNext.js for Beginners - Full Course at freeCodeCamp YouTube Channel

HandbookThe Next.js Handbook — FreeCodeCamp


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..83ff80532 --- /dev/null +++ b/frontend/static-site-generators:nuxt-js.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Nuxt js

Nuxt.js is an open-source development framework built on top of Node.js +enabling Vue based web applications functionalities such as server-side +rendering and generating static websites.

Free Resources

WebsiteOfficial Website

DocsOfficial Docs for Getting Started

WatchMastering Nuxt.js

WatchVue.js for Beginners - Full Course at freeCodeCamp YouTube Channel


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..d4d43fcc2 --- /dev/null +++ b/frontend/static-site-generators:vuepress.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..9e56df45c --- /dev/null +++ b/frontend/testing-your-apps.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Testing your apps

Before delivering your application to users, you need to be sure that your app meets the requirements it was designed for, and that it doesn't do any weird, unintended things (called 'bugs'). To accomplish this, we 'test' our applications in different ways.

Free Content

ReadA comprehensive dive into software testing.

ReadThe different types of software tests

ReadTesting React apps with 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:ava.html b/frontend/testing-your-apps:ava.html new file mode 100644 index 000000000..d5717ddf2 --- /dev/null +++ b/frontend/testing-your-apps:ava.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Ava


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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:chai.html b/frontend/testing-your-apps:chai.html new file mode 100644 index 000000000..a4a22d53a --- /dev/null +++ b/frontend/testing-your-apps:chai.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Chai


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..2312976f3 --- /dev/null +++ b/frontend/testing-your-apps:cypress.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..718297e2c --- /dev/null +++ b/frontend/testing-your-apps:enzyme.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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:jasmine.html b/frontend/testing-your-apps:jasmine.html new file mode 100644 index 000000000..75fdef590 --- /dev/null +++ b/frontend/testing-your-apps:jasmine.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jasmine


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..48419d02b --- /dev/null +++ b/frontend/testing-your-apps:jest.html @@ -0,0 +1,12 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Jest

Jest is a delightful JavaScript Testing Framework with a focus on simplicity. +It works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!

Free Content

Official WebsiteJest Website


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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:mocha.html b/frontend/testing-your-apps:mocha.html new file mode 100644 index 000000000..a1d4c800d --- /dev/null +++ b/frontend/testing-your-apps:mocha.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Mocha


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..5506568dc --- /dev/null +++ b/frontend/testing-your-apps:other-options.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..d8bfd50fc --- /dev/null +++ b/frontend/testing-your-apps:react-testing-library.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..26b8c4bfd --- /dev/null +++ b/frontend/type-checkers.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..1d6a24473 --- /dev/null +++ b/frontend/type-checkers:flow.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Flow

Flow is a static type checker, designed to find type errors in JavaScript programs.

Free Resources

WebsiteOfficial Website

DocsOfficial Documentation

WatchFlow 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/type-checkers:typescript.html b/frontend/type-checkers:typescript.html new file mode 100644 index 000000000..3cb0c30be --- /dev/null +++ b/frontend/type-checkers:typescript.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

TypeScript

TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

Free Resources

WebsiteOfficial Website

DocsOfficial Docs for Deep Dives

HandbookThe TypeScript Handbook

ReadTypeScript Tutorial

WatchTypeScript 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/version-control-systems.html b/frontend/version-control-systems.html new file mode 100644 index 000000000..a4cb79c1f --- /dev/null +++ b/frontend/version-control-systems.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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.

Free Content

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 new file mode 100644 index 000000000..b57a09cf7 --- /dev/null +++ b/frontend/version-control-systems:basic-usage-of-git.html @@ -0,0 +1,13 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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.

Free Content

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 new file mode 100644 index 000000000..3d456d1d6 --- /dev/null +++ b/frontend/web-assembly.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web Assembly

WebAssembly is a new type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C# and Rust with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together.

Free Content

Official WebsiteOfficial Website

Official DocsOfficial Getting Started to Web Assembly

WatchAn introduction to WebAssembly


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..c888b18bb --- /dev/null +++ b/frontend/web-components.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..b4cb04c24 --- /dev/null +++ b/frontend/web-components:custom-elements.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..c3bc543cd --- /dev/null +++ b/frontend/web-components:html-templates.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..1d53410f0 --- /dev/null +++ b/frontend/web-components:shadow-dom.html @@ -0,0 +1,9 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
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 new file mode 100644 index 000000000..9d1617cb8 --- /dev/null +++ b/frontend/web-security-knowledge.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Web Security Knowledge

Web security refers to the protective measures taken by the developers to protect the web applications from threats that could affect the business.

Free Content

ReadWhy HTTPS Matters

ReadWikipedia - OWASP

ReadOWASP Web Application Security Testing Checklist

ReadOWASP Top 10 Security Risks

ReadOWASP Cheatsheets

ReadContent Security Policy (CSP)


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..bb718cad6 --- /dev/null +++ b/frontend/web-security-knowledge:content-security-policy.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Content Security Policy

Content Security Policy is a computer security standard introduced to prevent cross-site scripting, clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context.

Free Content

ReadMDN — Content Security Policy (CSP)

ReadGoogle Devs — Content Security Policy (CSP)


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..8521a522b --- /dev/null +++ b/frontend/web-security-knowledge:cors.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

CORS

Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources.

Free Content

ReadCORS — Cross-Origin Resource Sharing


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..3b67aabe5 --- /dev/null +++ b/frontend/web-security-knowledge:https.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

HTTPS

HTTPS is a secure way to send data between a web server and a browser.

Free Content

ReadWhat is HTTPS?

ReadWhy HTTPS Matters

ReadEnabling HTTPS on Your Servers

WatchSSL, TLS, HTTP, HTTPS Explained

WatchHTTPS — Stories from the field


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..35b5d65b1 --- /dev/null +++ b/frontend/web-security-knowledge:owasp-security-risks.html @@ -0,0 +1,11 @@ +Frontend Developer Roadmap: Learn to become a modern frontend developer
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

OWASP Security Risks

OWASP or Open Web Application Security Project is an online community that produces freely-available articles, methodologies, documentation, tools, and technologies in the field of web application security.

Free Content

ReadWikipedia - OWASP

ReadOWASP Web Application Security Testing Checklist

ReadOWASP Top 10 Security Risks

ReadOWASP Cheatsheets


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

Edit this Page

Open Source

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

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

Stay Informed

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

Subscribe to Updates

Free subscription for updates

Updates & Paid Content

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

RoadmapsGuidesVideosAboutYouTube
RoadmapsGuidesVideosThanksAboutYouTube
roadmap.shby@kamranahmedse

Community created roadmaps, articles, resources 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 new file mode 100644 index 000000000..9e677a72b --- /dev/null +++ b/golang.html @@ -0,0 +1,12 @@ +Learn to become a Go developer
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 2022

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 new file mode 100644 index 000000000..9e20a76fe --- /dev/null +++ b/golang/golang.html @@ -0,0 +1,6 @@ +Learn to become a Go developer
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 new file mode 100644 index 000000000..1b7ff82f5 --- /dev/null +++ b/golang/interactive.html @@ -0,0 +1,6 @@ +Learn to become a Go developer
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 2022

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 new file mode 100644 index 000000000..4d8b87830 --- /dev/null +++ b/golang/resources.html @@ -0,0 +1,16 @@ +Learn to become a Go developer
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 2022

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 new file mode 100644 index 000000000..82a545067 --- /dev/null +++ b/guides.html @@ -0,0 +1,6 @@ +Visual Guides
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 new file mode 100644 index 000000000..2da2c808a --- /dev/null +++ b/guides/asymptotic-notation.html @@ -0,0 +1,12 @@ +Asymptotic Notation
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 new file mode 100644 index 000000000..ee795be9c --- /dev/null +++ b/guides/avoid-render-blocking-javascript-with-async-defer.html @@ -0,0 +1,12 @@ +Async and Defer Script Loading
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 new file mode 100644 index 000000000..bb709c63f --- /dev/null +++ b/guides/basic-authentication.html @@ -0,0 +1,12 @@ +Basic Authentication
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 new file mode 100644 index 000000000..267ce8166 --- /dev/null +++ b/guides/big-o-notation.html @@ -0,0 +1,12 @@ +Big-O Notation
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 new file mode 100644 index 000000000..692b52a95 --- /dev/null +++ b/guides/character-encodings.html @@ -0,0 +1,12 @@ +Character Encodings
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 new file mode 100644 index 000000000..e59e5318e --- /dev/null +++ b/guides/ci-cd.html @@ -0,0 +1,12 @@ +What is CI and CD?
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 new file mode 100644 index 000000000..434ed050b --- /dev/null +++ b/guides/design-patterns-for-humans.html @@ -0,0 +1,1555 @@ +Design Patterns for Humans
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·October 9, 2019·Improve this Guide

Design Patterns for Humans

A language agnostic, ultra-simplified explanation to design patterns

Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems. They are not classes, packages or libraries that you can plug into your application and wait for the magic to happen. These are, rather, guidelines on how to tackle certain problems in certain situations.

Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems

Wikipedia describes them as

In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations.

Be Careful

Developers, mostly beginners, make the mistake of over-thinking and forcing the design patterns which results in a horrible un-maintainable mess. The rule of thumb is to keep the codebase as simple as possible, once you start developing, you will start to see the patterns repeating in the codebase in which case you can go ahead and implement the relevant design patterns.

  • Design patterns are not a silver bullet to all your problems.
  • Do not try to force them; bad things are supposed to happen, if done so.
  • Keep in mind that design patterns are solutions to problems, not solutions finding problems; so don't overthink.
  • If used in a correct place in a correct manner, they can prove to be a savior; or else they can result in a horrible mess of a code.

Also note that the code samples below are in PHP-7, however this shouldn't stop you because the concepts are same anyways.

Types of Design Patterns

This guide is about Gang of Four (GoF) design patterns, which refers to the four authors of the book which introduced these design patterns. There are three types of design patterns:

Creational Design Patterns

In plain words

Creational patterns are focused towards how to instantiate an object or group of related objects.

Wikipedia says

In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or added complexity to the design. Creational design patterns solve this problem by somehow controlling this object creation.

There are 6 types of Creational patterns

🏠 Simple Factory

Real world example

Consider, you are building a house and you need doors. You can either put on your carpenter clothes, bring some wood, glue, nails and all the tools required to build the door and start building it in your house or you can simply call the factory and get the built door delivered to you so that you don't need to learn anything about the door making or to deal with the mess that comes with making it.

In plain words

Simple factory simply generates an instance for client without exposing any instantiation logic to the client

Wikipedia says

In object-oriented programming (OOP), a factory is an object for creating other objects – formally a factory is a function or method that returns objects of a varying prototype or class from some method call, which is assumed to be "new".

Programmatic Example

First of all we have a door interface and the implementation

interface Door
+{
+    public function getWidth(): float;
+    public function getHeight(): float;
+}
+
+class WoodenDoor implements Door
+{
+    protected $width;
+    protected $height;
+
+    public function __construct(float $width, float $height)
+    {
+        $this->width = $width;
+        $this->height = $height;
+    }
+
+    public function getWidth(): float
+    {
+        return $this->width;
+    }
+
+    public function getHeight(): float
+    {
+        return $this->height;
+    }
+}
+

Then we have our door factory that makes the door and returns it

class DoorFactory
+{
+    public static function makeDoor($width, $height): Door
+    {
+        return new WoodenDoor($width, $height);
+    }
+}
+

And then it can be used as

// Make me a door of 100x200
+$door = DoorFactory::makeDoor(100, 200);
+
+echo 'Width: ' . $door->getWidth();
+echo 'Height: ' . $door->getHeight();
+
+// Make me a door of 50x100
+$door2 = DoorFactory::makeDoor(50, 100);
+

When to Use?

When creating an object is not just a few assignments and involves some logic, it makes sense to put it in a dedicated factory instead of repeating the same code everywhere.

🏭 Factory Method

Real world example

Consider the case of a hiring manager. It is impossible for one person to interview for each of the positions. Based on the job opening, she has to decide and delegate the interview steps to different people.

In plain words

It provides a way to delegate the instantiation logic to child classes.

Wikipedia says

In class-based programming, the factory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class of the object that will be created. This is done by creating objects by calling a factory method—either specified in an interface and implemented by child classes, or implemented in a base class and optionally overridden by derived classes—rather than by calling a constructor.

Programmatic Example

Taking our hiring manager example above. First of all we have an interviewer interface and some implementations for it

interface Interviewer
+{
+    public function askQuestions();
+}
+
+class Developer implements Interviewer
+{
+    public function askQuestions()
+    {
+        echo 'Asking about design patterns!';
+    }
+}
+
+class CommunityExecutive implements Interviewer
+{
+    public function askQuestions()
+    {
+        echo 'Asking about community building';
+    }
+}
+

Now let us create our HiringManager

abstract class HiringManager
+{
+
+    // Factory method
+    abstract protected function makeInterviewer(): Interviewer;
+
+    public function takeInterview()
+    {
+        $interviewer = $this->makeInterviewer();
+        $interviewer->askQuestions();
+    }
+}
+
+

Now any child can extend it and provide the required interviewer

class DevelopmentManager extends HiringManager
+{
+    protected function makeInterviewer(): Interviewer
+    {
+        return new Developer();
+    }
+}
+
+class MarketingManager extends HiringManager
+{
+    protected function makeInterviewer(): Interviewer
+    {
+        return new CommunityExecutive();
+    }
+}
+

and then it can be used as

$devManager = new DevelopmentManager();
+$devManager->takeInterview(); // Output: Asking about design patterns
+
+$marketingManager = new MarketingManager();
+$marketingManager->takeInterview(); // Output: Asking about community building.
+

When to use?

Useful when there is some generic processing in a class but the required sub-class is dynamically decided at runtime. Or putting it in other words, when the client doesn't know what exact sub-class it might need.

🔨 Abstract Factory

Real world example

Extending our door example from Simple Factory. Based on your needs you might get a wooden door from a wooden door shop, iron door from an iron shop or a PVC door from the relevant shop. Plus you might need a guy with different kind of specialities to fit the door, for example a carpenter for wooden door, welder for iron door etc. As you can see there is a dependency between the doors now, wooden door needs carpenter, iron door needs a welder etc.

In plain words

A factory of factories; a factory that groups the individual but related/dependent factories together without specifying their concrete classes.

Wikipedia says

The abstract factory pattern provides a way to encapsulate a group of individual factories that have a common theme without specifying their concrete classes

Programmatic Example

Translating the door example above. First of all we have our Door interface and some implementation for it

interface Door
+{
+    public function getDescription();
+}
+
+class WoodenDoor implements Door
+{
+    public function getDescription()
+    {
+        echo 'I am a wooden door';
+    }
+}
+
+class IronDoor implements Door
+{
+    public function getDescription()
+    {
+        echo 'I am an iron door';
+    }
+}
+

Then we have some fitting experts for each door type

interface DoorFittingExpert
+{
+    public function getDescription();
+}
+
+class Welder implements DoorFittingExpert
+{
+    public function getDescription()
+    {
+        echo 'I can only fit iron doors';
+    }
+}
+
+class Carpenter implements DoorFittingExpert
+{
+    public function getDescription()
+    {
+        echo 'I can only fit wooden doors';
+    }
+}
+

Now we have our abstract factory that would let us make family of related objects i.e. wooden door factory would create a wooden door and wooden door fitting expert and iron door factory would create an iron door and iron door fitting expert

interface DoorFactory
+{
+    public function makeDoor(): Door;
+    public function makeFittingExpert(): DoorFittingExpert;
+}
+
+// Wooden factory to return carpenter and wooden door
+class WoodenDoorFactory implements DoorFactory
+{
+    public function makeDoor(): Door
+    {
+        return new WoodenDoor();
+    }
+
+    public function makeFittingExpert(): DoorFittingExpert
+    {
+        return new Carpenter();
+    }
+}
+
+// Iron door factory to get iron door and the relevant fitting expert
+class IronDoorFactory implements DoorFactory
+{
+    public function makeDoor(): Door
+    {
+        return new IronDoor();
+    }
+
+    public function makeFittingExpert(): DoorFittingExpert
+    {
+        return new Welder();
+    }
+}
+

And then it can be used as

$woodenFactory = new WoodenDoorFactory();
+
+$door = $woodenFactory->makeDoor();
+$expert = $woodenFactory->makeFittingExpert();
+
+$door->getDescription();  // Output: I am a wooden door
+$expert->getDescription(); // Output: I can only fit wooden doors
+
+// Same for Iron Factory
+$ironFactory = new IronDoorFactory();
+
+$door = $ironFactory->makeDoor();
+$expert = $ironFactory->makeFittingExpert();
+
+$door->getDescription();  // Output: I am an iron door
+$expert->getDescription(); // Output: I can only fit iron doors
+

As you can see the wooden door factory has encapsulated the carpenter and the wooden door also iron door factory has encapsulated the iron door and welder. And thus it had helped us make sure that for each of the created door, we do not get a wrong fitting expert.

When to use?

When there are interrelated dependencies with not-that-simple creation logic involved

👷 Builder

Real world example

Imagine you are at Hardee's and you order a specific deal, lets say, "Big Hardee" and they hand it over to you without any questions; this is the example of simple factory. But there are cases when the creation logic might involve more steps. For example you want a customized Subway deal, you have several options in how your burger is made e.g what bread do you want? what types of sauces would you like? What cheese would you want? etc. In such cases builder pattern comes to the rescue.

In plain words

Allows you to create different flavors of an object while avoiding constructor pollution. Useful when there could be several flavors of an object. Or when there are a lot of steps involved in creation of an object.

Wikipedia says

The builder pattern is an object creation software design pattern with the intentions of finding a solution to the telescoping constructor anti-pattern.

Having said that let me add a bit about what telescoping constructor anti-pattern is. At one point or the other we have all seen a constructor like below:

public function __construct($size, $cheese = true, $pepperoni = true, $tomato = false, $lettuce = true)
+{
+}
+

As you can see; the number of constructor parameters can quickly get out of hand and it might become difficult to understand the arrangement of parameters. Plus this parameter list could keep on growing if you would want to add more options in future. This is called telescoping constructor anti-pattern.

Programmatic Example

The sane alternative is to use the builder pattern. First of all we have our burger that we want to make

class Burger
+{
+    protected $size;
+
+    protected $cheese = false;
+    protected $pepperoni = false;
+    protected $lettuce = false;
+    protected $tomato = false;
+
+    public function __construct(BurgerBuilder $builder)
+    {
+        $this->size = $builder->size;
+        $this->cheese = $builder->cheese;
+        $this->pepperoni = $builder->pepperoni;
+        $this->lettuce = $builder->lettuce;
+        $this->tomato = $builder->tomato;
+    }
+}
+

And then we have the builder

class BurgerBuilder
+{
+    public $size;
+
+    public $cheese = false;
+    public $pepperoni = false;
+    public $lettuce = false;
+    public $tomato = false;
+
+    public function __construct(int $size)
+    {
+        $this->size = $size;
+    }
+
+    public function addPepperoni()
+    {
+        $this->pepperoni = true;
+        return $this;
+    }
+
+    public function addLettuce()
+    {
+        $this->lettuce = true;
+        return $this;
+    }
+
+    public function addCheese()
+    {
+        $this->cheese = true;
+        return $this;
+    }
+
+    public function addTomato()
+    {
+        $this->tomato = true;
+        return $this;
+    }
+
+    public function build(): Burger
+    {
+        return new Burger($this);
+    }
+}
+

And then it can be used as:

$burger = (new BurgerBuilder(14))
+                    ->addPepperoni()
+                    ->addLettuce()
+                    ->addTomato()
+                    ->build();
+

When to use?

When there could be several flavors of an object and to avoid the constructor telescoping. The key difference from the factory pattern is that; factory pattern is to be used when the creation is a one step process while builder pattern is to be used when the creation is a multi step process.

🐑 Prototype

Real world example

Remember dolly? The sheep that was cloned! Lets not get into the details but the key point here is that it is all about cloning

In plain words

Create object based on an existing object through cloning.

Wikipedia says

The prototype pattern is a creational design pattern in software development. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects.

In short, it allows you to create a copy of an existing object and modify it to your needs, instead of going through the trouble of creating an object from scratch and setting it up.

Programmatic Example

In PHP, it can be easily done using clone

class Sheep
+{
+    protected $name;
+    protected $category;
+
+    public function __construct(string $name, string $category = 'Mountain Sheep')
+    {
+        $this->name = $name;
+        $this->category = $category;
+    }
+
+    public function setName(string $name)
+    {
+        $this->name = $name;
+    }
+
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    public function setCategory(string $category)
+    {
+        $this->category = $category;
+    }
+
+    public function getCategory()
+    {
+        return $this->category;
+    }
+}
+

Then it can be cloned like below

$original = new Sheep('Jolly');
+echo $original->getName(); // Jolly
+echo $original->getCategory(); // Mountain Sheep
+
+// Clone and modify what is required
+$cloned = clone $original;
+$cloned->setName('Dolly');
+echo $cloned->getName(); // Dolly
+echo $cloned->getCategory(); // Mountain sheep
+

Also you could use the magic method __clone to modify the cloning behavior.

When to use?

When an object is required that is similar to existing object or when the creation would be expensive as compared to cloning.

💍 Singleton

Real world example

There can only be one president of a country at a time. The same president has to be brought to action, whenever duty calls. President here is singleton.

In plain words

Ensures that only one object of a particular class is ever created.

Wikipedia says

In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system.

Singleton pattern is actually considered an anti-pattern and overuse of it should be avoided. It is not necessarily bad and could have some valid use-cases but should be used with caution because it introduces a global state in your application and change to it in one place could affect in the other areas and it could become pretty difficult to debug. The other bad thing about them is it makes your code tightly coupled plus mocking the singleton could be difficult.

Programmatic Example

To create a singleton, make the constructor private, disable cloning, disable extension and create a static variable to house the instance

final class President
+{
+    private static $instance;
+
+    private function __construct()
+    {
+        // Hide the constructor
+    }
+
+    public static function getInstance(): President
+    {
+        if (!self::$instance) {
+            self::$instance = new self();
+        }
+
+        return self::$instance;
+    }
+
+    private function __clone()
+    {
+        // Disable cloning
+    }
+
+    private function __wakeup()
+    {
+        // Disable unserialize
+    }
+}
+

Then in order to use

$president1 = President::getInstance();
+$president2 = President::getInstance();
+
+var_dump($president1 === $president2); // true
+

Structural Design Patterns

In plain words

Structural patterns are mostly concerned with object composition or in other words how the entities can use each other. Or yet another explanation would be, they help in answering "How to build a software component?"

Wikipedia says

In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities.

There are 7 types of structural patterns

🔌 Adapter

Real world example

Consider that you have some pictures in your memory card and you need to transfer them to your computer. In order to transfer them you need some kind of adapter that is compatible with your computer ports so that you can attach memory card to your computer. In this case card reader is an adapter. +Another example would be the famous power adapter; a three legged plug can't be connected to a two pronged outlet, it needs to use a power adapter that makes it compatible with the two pronged outlet. +Yet another example would be a translator translating words spoken by one person to another

In plain words

Adapter pattern lets you wrap an otherwise incompatible object in an adapter to make it compatible with another class.

Wikipedia says

In software engineering, the adapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes work with others without modifying their source code.

Programmatic Example

Consider a game where there is a hunter and he hunts lions.

First we have an interface Lion that all types of lions have to implement

interface Lion
+{
+    public function roar();
+}
+
+class AfricanLion implements Lion
+{
+    public function roar()
+    {
+    }
+}
+
+class AsianLion implements Lion
+{
+    public function roar()
+    {
+    }
+}
+

And hunter expects any implementation of Lion interface to hunt.

class Hunter
+{
+    public function hunt(Lion $lion)
+    {
+        $lion->roar();
+    }
+}
+

Now let's say we have to add a WildDog in our game so that hunter can hunt that also. But we can't do that directly because dog has a different interface. To make it compatible for our hunter, we will have to create an adapter that is compatible

// This needs to be added to the game
+class WildDog
+{
+    public function bark()
+    {
+    }
+}
+
+// Adapter around wild dog to make it compatible with our game
+class WildDogAdapter implements Lion
+{
+    protected $dog;
+
+    public function __construct(WildDog $dog)
+    {
+        $this->dog = $dog;
+    }
+
+    public function roar()
+    {
+        $this->dog->bark();
+    }
+}
+

And now the WildDog can be used in our game using WildDogAdapter.

$wildDog = new WildDog();
+$wildDogAdapter = new WildDogAdapter($wildDog);
+
+$hunter = new Hunter();
+$hunter->hunt($wildDogAdapter);
+

🚡 Bridge

Real world example

Consider you have a website with different pages and you are supposed to allow the user to change the theme. What would you do? Create multiple copies of each of the pages for each of the themes or would you just create separate theme and load them based on the user's preferences? Bridge pattern allows you to do the second i.e.

With and without the bridge pattern

In Plain Words

Bridge pattern is about preferring composition over inheritance. Implementation details are pushed from a hierarchy to another object with a separate hierarchy.

Wikipedia says

The bridge pattern is a design pattern used in software engineering that is meant to "decouple an abstraction from its implementation so that the two can vary independently"

Programmatic Example

Translating our WebPage example from above. Here we have the WebPage hierarchy

interface WebPage
+{
+    public function __construct(Theme $theme);
+    public function getContent();
+}
+
+class About implements WebPage
+{
+    protected $theme;
+
+    public function __construct(Theme $theme)
+    {
+        $this->theme = $theme;
+    }
+
+    public function getContent()
+    {
+        return "About page in " . $this->theme->getColor();
+    }
+}
+
+class Careers implements WebPage
+{
+    protected $theme;
+
+    public function __construct(Theme $theme)
+    {
+        $this->theme = $theme;
+    }
+
+    public function getContent()
+    {
+        return "Careers page in " . $this->theme->getColor();
+    }
+}
+

And the separate theme hierarchy


+interface Theme
+{
+    public function getColor();
+}
+
+class DarkTheme implements Theme
+{
+    public function getColor()
+    {
+        return 'Dark Black';
+    }
+}
+class LightTheme implements Theme
+{
+    public function getColor()
+    {
+        return 'Off white';
+    }
+}
+class AquaTheme implements Theme
+{
+    public function getColor()
+    {
+        return 'Light blue';
+    }
+}
+

And both the hierarchies

$darkTheme = new DarkTheme();
+
+$about = new About($darkTheme);
+$careers = new Careers($darkTheme);
+
+echo $about->getContent(); // "About page in Dark Black";
+echo $careers->getContent(); // "Careers page in Dark Black";
+

🌿 Composite

Real world example

Every organization is composed of employees. Each of the employees has the same features i.e. has a salary, has some responsibilities, may or may not report to someone, may or may not have some subordinates etc.

In plain words

Composite pattern lets clients treat the individual objects in a uniform manner.

Wikipedia says

In software engineering, the composite pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the same way as a single instance of an object. The intent of a composite is to "compose" objects into tree structures to represent part-whole hierarchies. Implementing the composite pattern lets clients treat individual objects and compositions uniformly.

Programmatic Example

Taking our employees example from above. Here we have different employee types

interface Employee
+{
+    public function __construct(string $name, float $salary);
+    public function getName(): string;
+    public function setSalary(float $salary);
+    public function getSalary(): float;
+    public function getRoles(): array;
+}
+
+class Developer implements Employee
+{
+    protected $salary;
+    protected $name;
+    protected $roles;
+    
+    public function __construct(string $name, float $salary)
+    {
+        $this->name = $name;
+        $this->salary = $salary;
+    }
+
+    public function getName(): string
+    {
+        return $this->name;
+    }
+
+    public function setSalary(float $salary)
+    {
+        $this->salary = $salary;
+    }
+
+    public function getSalary(): float
+    {
+        return $this->salary;
+    }
+
+    public function getRoles(): array
+    {
+        return $this->roles;
+    }
+}
+
+class Designer implements Employee
+{
+    protected $salary;
+    protected $name;
+    protected $roles;
+
+    public function __construct(string $name, float $salary)
+    {
+        $this->name = $name;
+        $this->salary = $salary;
+    }
+
+    public function getName(): string
+    {
+        return $this->name;
+    }
+
+    public function setSalary(float $salary)
+    {
+        $this->salary = $salary;
+    }
+
+    public function getSalary(): float
+    {
+        return $this->salary;
+    }
+
+    public function getRoles(): array
+    {
+        return $this->roles;
+    }
+}
+

Then we have an organization which consists of several different types of employees

class Organization
+{
+    protected $employees;
+
+    public function addEmployee(Employee $employee)
+    {
+        $this->employees[] = $employee;
+    }
+
+    public function getNetSalaries(): float
+    {
+        $netSalary = 0;
+
+        foreach ($this->employees as $employee) {
+            $netSalary += $employee->getSalary();
+        }
+
+        return $netSalary;
+    }
+}
+

And then it can be used as

// Prepare the employees
+$john = new Developer('John Doe', 12000);
+$jane = new Designer('Jane Doe', 15000);
+
+// Add them to organization
+$organization = new Organization();
+$organization->addEmployee($john);
+$organization->addEmployee($jane);
+
+echo "Net salaries: " . $organization->getNetSalaries(); // Net Salaries: 27000
+

☕ Decorator

Real world example

Imagine you run a car service shop offering multiple services. Now how do you calculate the bill to be charged? You pick one service and dynamically keep adding to it the prices for the provided services till you get the final cost. Here each type of service is a decorator.

In plain words

Decorator pattern lets you dynamically change the behavior of an object at run time by wrapping them in an object of a decorator class.

Wikipedia says

In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class. The decorator pattern is often useful for adhering to the Single Responsibility Principle, as it allows functionality to be divided between classes with unique areas of concern.

Programmatic Example

Lets take coffee for example. First of all we have a simple coffee implementing the coffee interface

interface Coffee
+{
+    public function getCost();
+    public function getDescription();
+}
+
+class SimpleCoffee implements Coffee
+{
+    public function getCost()
+    {
+        return 10;
+    }
+
+    public function getDescription()
+    {
+        return 'Simple coffee';
+    }
+}
+

We want to make the code extensible to allow options to modify it if required. Lets make some add-ons (decorators)

class MilkCoffee implements Coffee
+{
+    protected $coffee;
+
+    public function __construct(Coffee $coffee)
+    {
+        $this->coffee = $coffee;
+    }
+
+    public function getCost()
+    {
+        return $this->coffee->getCost() + 2;
+    }
+
+    public function getDescription()
+    {
+        return $this->coffee->getDescription() . ', milk';
+    }
+}
+
+class WhipCoffee implements Coffee
+{
+    protected $coffee;
+
+    public function __construct(Coffee $coffee)
+    {
+        $this->coffee = $coffee;
+    }
+
+    public function getCost()
+    {
+        return $this->coffee->getCost() + 5;
+    }
+
+    public function getDescription()
+    {
+        return $this->coffee->getDescription() . ', whip';
+    }
+}
+
+class VanillaCoffee implements Coffee
+{
+    protected $coffee;
+
+    public function __construct(Coffee $coffee)
+    {
+        $this->coffee = $coffee;
+    }
+
+    public function getCost()
+    {
+        return $this->coffee->getCost() + 3;
+    }
+
+    public function getDescription()
+    {
+        return $this->coffee->getDescription() . ', vanilla';
+    }
+}
+

Lets make a coffee now

$someCoffee = new SimpleCoffee();
+echo $someCoffee->getCost(); // 10
+echo $someCoffee->getDescription(); // Simple Coffee
+
+$someCoffee = new MilkCoffee($someCoffee);
+echo $someCoffee->getCost(); // 12
+echo $someCoffee->getDescription(); // Simple Coffee, milk
+
+$someCoffee = new WhipCoffee($someCoffee);
+echo $someCoffee->getCost(); // 17
+echo $someCoffee->getDescription(); // Simple Coffee, milk, whip
+
+$someCoffee = new VanillaCoffee($someCoffee);
+echo $someCoffee->getCost(); // 20
+echo $someCoffee->getDescription(); // Simple Coffee, milk, whip, vanilla
+

📦 Facade

Real world example

How do you turn on the computer? "Hit the power button" you say! That is what you believe because you are using a simple interface that computer provides on the outside, internally it has to do a lot of stuff to make it happen. This simple interface to the complex subsystem is a facade.

In plain words

Facade pattern provides a simplified interface to a complex subsystem.

Wikipedia says

A facade is an object that provides a simplified interface to a larger body of code, such as a class library.

Programmatic Example

Taking our computer example from above. Here we have the computer class

class Computer
+{
+    public function getElectricShock()
+    {
+        echo "Ouch!";
+    }
+
+    public function makeSound()
+    {
+        echo "Beep beep!";
+    }
+
+    public function showLoadingScreen()
+    {
+        echo "Loading..";
+    }
+
+    public function bam()
+    {
+        echo "Ready to be used!";
+    }
+
+    public function closeEverything()
+    {
+        echo "Bup bup bup buzzzz!";
+    }
+
+    public function sooth()
+    {
+        echo "Zzzzz";
+    }
+
+    public function pullCurrent()
+    {
+        echo "Haaah!";
+    }
+}
+

Here we have the facade

class ComputerFacade
+{
+    protected $computer;
+
+    public function __construct(Computer $computer)
+    {
+        $this->computer = $computer;
+    }
+
+    public function turnOn()
+    {
+        $this->computer->getElectricShock();
+        $this->computer->makeSound();
+        $this->computer->showLoadingScreen();
+        $this->computer->bam();
+    }
+
+    public function turnOff()
+    {
+        $this->computer->closeEverything();
+        $this->computer->pullCurrent();
+        $this->computer->sooth();
+    }
+}
+

Now to use the facade

$computer = new ComputerFacade(new Computer());
+$computer->turnOn(); // Ouch! Beep beep! Loading.. Ready to be used!
+$computer->turnOff(); // Bup bup buzzz! Haah! Zzzzz
+

🍃 Flyweight

Real world example

Did you ever have fresh tea from some stall? They often make more than one cup that you demanded and save the rest for any other customer so to save the resources e.g. gas etc. Flyweight pattern is all about that i.e. sharing.

In plain words

It is used to minimize memory usage or computational expenses by sharing as much as possible with similar objects.

Wikipedia says

In computer programming, flyweight is a software design pattern. A flyweight is an object that minimizes memory use by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when a simple repeated representation would use an unacceptable amount of memory.

Programmatic example

Translating our tea example from above. First of all we have tea types and tea maker

// Anything that will be cached is flyweight.
+// Types of tea here will be flyweights.
+class KarakTea
+{
+}
+
+// Acts as a factory and saves the tea
+class TeaMaker
+{
+    protected $availableTea = [];
+
+    public function make($preference)
+    {
+        if (empty($this->availableTea[$preference])) {
+            $this->availableTea[$preference] = new KarakTea();
+        }
+
+        return $this->availableTea[$preference];
+    }
+}
+

Then we have the TeaShop which takes orders and serves them

class TeaShop
+{
+    protected $orders;
+    protected $teaMaker;
+
+    public function __construct(TeaMaker $teaMaker)
+    {
+        $this->teaMaker = $teaMaker;
+    }
+
+    public function takeOrder(string $teaType, int $table)
+    {
+        $this->orders[$table] = $this->teaMaker->make($teaType);
+    }
+
+    public function serve()
+    {
+        foreach ($this->orders as $table => $tea) {
+            echo "Serving tea to table# " . $table;
+        }
+    }
+}
+

And it can be used as below

$teaMaker = new TeaMaker();
+$shop = new TeaShop($teaMaker);
+
+$shop->takeOrder('less sugar', 1);
+$shop->takeOrder('more milk', 2);
+$shop->takeOrder('without sugar', 5);
+
+$shop->serve();
+// Serving tea to table# 1
+// Serving tea to table# 2
+// Serving tea to table# 5
+

🎱 Proxy

Real world example

Have you ever used an access card to go through a door? There are multiple options to open that door i.e. it can be opened either using access card or by pressing a button that bypasses the security. The door's main functionality is to open but there is a proxy added on top of it to add some functionality. Let me better explain it using the code example below.

In plain words

Using the proxy pattern, a class represents the functionality of another class.

Wikipedia says

A proxy, in its most general form, is a class functioning as an interface to something else. A proxy is a wrapper or agent object that is being called by the client to access the real serving object behind the scenes. Use of the proxy can simply be forwarding to the real object, or can provide additional logic. In the proxy extra functionality can be provided, for example caching when operations on the real object are resource intensive, or checking preconditions before operations on the real object are invoked.

Programmatic Example

Taking our security door example from above. Firstly we have the door interface and an implementation of door

interface Door
+{
+    public function open();
+    public function close();
+}
+
+class LabDoor implements Door
+{
+    public function open()
+    {
+        echo "Opening lab door";
+    }
+
+    public function close()
+    {
+        echo "Closing the lab door";
+    }
+}
+

Then we have a proxy to secure any doors that we want

class SecuredDoor
+{
+    protected $door;
+
+    public function __construct(Door $door)
+    {
+        $this->door = $door;
+    }
+
+    public function open($password)
+    {
+        if ($this->authenticate($password)) {
+            $this->door->open();
+        } else {
+            echo "Big no! It ain't possible.";
+        }
+    }
+
+    public function authenticate($password)
+    {
+        return $password === '$ecr@t';
+    }
+
+    public function close()
+    {
+        $this->door->close();
+    }
+}
+

And here is how it can be used

$door = new SecuredDoor(new LabDoor());
+$door->open('invalid'); // Big no! It ain't possible.
+
+$door->open('$ecr@t'); // Opening lab door
+$door->close(); // Closing lab door
+

Yet another example would be some sort of data-mapper implementation. For example, I recently made an ODM (Object Data Mapper) for MongoDB using this pattern where I wrote a proxy around mongo classes while utilizing the magic method __call(). All the method calls were proxied to the original mongo class and result retrieved was returned as it is but in case of find or findOne data was mapped to the required class objects and the object was returned instead of Cursor.

Behavioral Design Patterns

In plain words

It is concerned with assignment of responsibilities between the objects. What makes them different from structural patterns is they don't just specify the structure but also outline the patterns for message passing/communication between them. Or in other words, they assist in answering "How to run a behavior in software component?"

Wikipedia says

In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.

There are 10 types of behavioral design patterns

🔗 Chain of Responsibility

Real world example

For example, you have three payment methods (A, B and C) setup in your account; each having a different amount in it. A has 100 USD, B has 300 USD and C having 1000 USD and the preference for payments is chosen as A then B then C. You try to purchase something that is worth 210 USD. Using Chain of Responsibility, first of all account A will be checked if it can make the purchase, if yes purchase will be made and the chain will be broken. If not, request will move forward to account B checking for amount if yes chain will be broken otherwise the request will keep forwarding till it finds the suitable handler. Here A, B and C are links of the chain and the whole phenomenon is Chain of Responsibility.

In plain words

It helps building a chain of objects. Request enters from one end and keeps going from object to object till it finds the suitable handler.

Wikipedia says

In object-oriented design, the chain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contains logic that defines the types of command objects that it can handle; the rest are passed to the next processing object in the chain.

Programmatic Example

Translating our account example above. First of all we have a base account having the logic for chaining the accounts together and some accounts

abstract class Account
+{
+    protected $successor;
+    protected $balance;
+
+    public function setNext(Account $account)
+    {
+        $this->successor = $account;
+    }
+
+    public function pay(float $amountToPay)
+    {
+        if ($this->canPay($amountToPay)) {
+            echo sprintf('Paid %s using %s' . PHP_EOL, $amountToPay, get_called_class());
+        } elseif ($this->successor) {
+            echo sprintf('Cannot pay using %s. Proceeding ..' . PHP_EOL, get_called_class());
+            $this->successor->pay($amountToPay);
+        } else {
+            throw new Exception('None of the accounts have enough balance');
+        }
+    }
+
+    public function canPay($amount): bool
+    {
+        return $this->balance >= $amount;
+    }
+}
+
+class Bank extends Account
+{
+    protected $balance;
+
+    public function __construct(float $balance)
+    {
+        $this->balance = $balance;
+    }
+}
+
+class Paypal extends Account
+{
+    protected $balance;
+
+    public function __construct(float $balance)
+    {
+        $this->balance = $balance;
+    }
+}
+
+class Bitcoin extends Account
+{
+    protected $balance;
+
+    public function __construct(float $balance)
+    {
+        $this->balance = $balance;
+    }
+}
+

Now let's prepare the chain using the links defined above (i.e. Bank, Paypal, Bitcoin)

// Let's prepare a chain like below
+//      $bank->$paypal->$bitcoin
+//
+// First priority bank
+//      If bank can't pay then paypal
+//      If paypal can't pay then bit coin
+
+$bank = new Bank(100);          // Bank with balance 100
+$paypal = new Paypal(200);      // Paypal with balance 200
+$bitcoin = new Bitcoin(300);    // Bitcoin with balance 300
+
+$bank->setNext($paypal);
+$paypal->setNext($bitcoin);
+
+// Let's try to pay using the first priority i.e. bank
+$bank->pay(259);
+
+// Output will be
+// ==============
+// Cannot pay using bank. Proceeding ..
+// Cannot pay using paypal. Proceeding ..:
+// Paid 259 using Bitcoin!
+

👮 Command

Real world example

A generic example would be you ordering food at a restaurant. You (i.e. Client) ask the waiter (i.e. Invoker) to bring some food (i.e. Command) and waiter simply forwards the request to Chef (i.e. Receiver) who has the knowledge of what and how to cook. +Another example would be you (i.e. Client) switching on (i.e. Command) the television (i.e. Receiver) using a remote control (Invoker).

In plain words

Allows you to encapsulate actions in objects. The key idea behind this pattern is to provide the means to decouple client from receiver.

Wikipedia says

In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time. This information includes the method name, the object that owns the method and values for the method parameters.

Programmatic Example

First of all we have the receiver that has the implementation of every action that could be performed

// Receiver
+class Bulb
+{
+    public function turnOn()
+    {
+        echo "Bulb has been lit";
+    }
+
+    public function turnOff()
+    {
+        echo "Darkness!";
+    }
+}
+

then we have an interface that each of the commands are going to implement and then we have a set of commands

interface Command
+{
+    public function execute();
+    public function undo();
+    public function redo();
+}
+
+// Command
+class TurnOn implements Command
+{
+    protected $bulb;
+
+    public function __construct(Bulb $bulb)
+    {
+        $this->bulb = $bulb;
+    }
+
+    public function execute()
+    {
+        $this->bulb->turnOn();
+    }
+
+    public function undo()
+    {
+        $this->bulb->turnOff();
+    }
+
+    public function redo()
+    {
+        $this->execute();
+    }
+}
+
+class TurnOff implements Command
+{
+    protected $bulb;
+
+    public function __construct(Bulb $bulb)
+    {
+        $this->bulb = $bulb;
+    }
+
+    public function execute()
+    {
+        $this->bulb->turnOff();
+    }
+
+    public function undo()
+    {
+        $this->bulb->turnOn();
+    }
+
+    public function redo()
+    {
+        $this->execute();
+    }
+}
+

Then we have an Invoker with whom the client will interact to process any commands

// Invoker
+class RemoteControl
+{
+    public function submit(Command $command)
+    {
+        $command->execute();
+    }
+}
+

Finally let's see how we can use it in our client

$bulb = new Bulb();
+
+$turnOn = new TurnOn($bulb);
+$turnOff = new TurnOff($bulb);
+
+$remote = new RemoteControl();
+$remote->submit($turnOn); // Bulb has been lit!
+$remote->submit($turnOff); // Darkness!
+

Command pattern can also be used to implement a transaction based system. Where you keep maintaining the history of commands as soon as you execute them. If the final command is successfully executed, all good otherwise just iterate through the history and keep executing the undo on all the executed commands.

➿ Iterator

Real world example

An old radio set will be a good example of iterator, where user could start at some channel and then use next or previous buttons to go through the respective channels. Or take an example of MP3 player or a TV set where you could press the next and previous buttons to go through the consecutive channels or in other words they all provide an interface to iterate through the respective channels, songs or radio stations.

In plain words

It presents a way to access the elements of an object without exposing the underlying presentation.

Wikipedia says

In object-oriented programming, the iterator pattern is a design pattern in which an iterator is used to traverse a container and access the container's elements. The iterator pattern decouples algorithms from containers; in some cases, algorithms are necessarily container-specific and thus cannot be decoupled.

Programmatic example

In PHP it is quite easy to implement using SPL (Standard PHP Library). Translating our radio stations example from above. First of all we have RadioStation

class RadioStation
+{
+    protected $frequency;
+
+    public function __construct(float $frequency)
+    {
+        $this->frequency = $frequency;
+    }
+
+    public function getFrequency(): float
+    {
+        return $this->frequency;
+    }
+}
+

Then we have our iterator

use Countable;
+use Iterator;
+
+class StationList implements Countable, Iterator
+{
+    /** @var RadioStation[] $stations */
+    protected $stations = [];
+
+    /** @var int $counter */
+    protected $counter;
+
+    public function addStation(RadioStation $station)
+    {
+        $this->stations[] = $station;
+    }
+
+    public function removeStation(RadioStation $toRemove)
+    {
+        $toRemoveFrequency = $toRemove->getFrequency();
+        $this->stations = array_filter($this->stations, function (RadioStation $station) use ($toRemoveFrequency) {
+            return $station->getFrequency() !== $toRemoveFrequency;
+        });
+    }
+
+    public function count(): int
+    {
+        return count($this->stations);
+    }
+
+    public function current(): RadioStation
+    {
+        return $this->stations[$this->counter];
+    }
+
+    public function key()
+    {
+        return $this->counter;
+    }
+
+    public function next()
+    {
+        $this->counter++;
+    }
+
+    public function rewind()
+    {
+        $this->counter = 0;
+    }
+
+    public function valid(): bool
+    {
+        return isset($this->stations[$this->counter]);
+    }
+}
+

And then it can be used as

$stationList = new StationList();
+
+$stationList->addStation(new RadioStation(89));
+$stationList->addStation(new RadioStation(101));
+$stationList->addStation(new RadioStation(102));
+$stationList->addStation(new RadioStation(103.2));
+
+foreach($stationList as $station) {
+    echo $station->getFrequency() . PHP_EOL;
+}
+
+$stationList->removeStation(new RadioStation(89)); // Will remove station 89
+

👽 Mediator

Real world example

A general example would be when you talk to someone on your mobile phone, there is a network provider sitting between you and them and your conversation goes through it instead of being directly sent. In this case network provider is mediator.

In plain words

Mediator pattern adds a third party object (called mediator) to control the interaction between two objects (called colleagues). It helps reduce the coupling between the classes communicating with each other. Because now they don't need to have the knowledge of each other's implementation.

Wikipedia says

In software engineering, the mediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter the program's running behavior.

Programmatic Example

Here is the simplest example of a chat room (i.e. mediator) with users (i.e. colleagues) sending messages to each other.

First of all, we have the mediator i.e. the chat room

interface ChatRoomMediator 
+{
+    public function showMessage(User $user, string $message);
+}
+
+// Mediator
+class ChatRoom implements ChatRoomMediator
+{
+    public function showMessage(User $user, string $message)
+    {
+        $time = date('M d, y H:i');
+        $sender = $user->getName();
+
+        echo $time . '[' . $sender . ']:' . $message;
+    }
+}
+

Then we have our users i.e. colleagues

class User {
+    protected $name;
+    protected $chatMediator;
+
+    public function __construct(string $name, ChatRoomMediator $chatMediator) {
+        $this->name = $name;
+        $this->chatMediator = $chatMediator;
+    }
+
+    public function getName() {
+        return $this->name;
+    }
+
+    public function send($message) {
+        $this->chatMediator->showMessage($this, $message);
+    }
+}
+

And the usage

$mediator = new ChatRoom();
+
+$john = new User('John Doe', $mediator);
+$jane = new User('Jane Doe', $mediator);
+
+$john->send('Hi there!');
+$jane->send('Hey!');
+
+// Output will be
+// Feb 14, 10:58 [John]: Hi there!
+// Feb 14, 10:58 [Jane]: Hey!
+

💾 Memento

Real world example

Take the example of calculator (i.e. originator), where whenever you perform some calculation the last calculation is saved in memory (i.e. memento) so that you can get back to it and maybe get it restored using some action buttons (i.e. caretaker).

In plain words

Memento pattern is about capturing and storing the current state of an object in a manner that it can be restored later on in a smooth manner.

Wikipedia says

The memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback).

Usually useful when you need to provide some sort of undo functionality.

Programmatic Example

Lets take an example of text editor which keeps saving the state from time to time and that you can restore if you want.

First of all we have our memento object that will be able to hold the editor state

class EditorMemento
+{
+    protected $content;
+
+    public function __construct(string $content)
+    {
+        $this->content = $content;
+    }
+
+    public function getContent()
+    {
+        return $this->content;
+    }
+}
+

Then we have our editor i.e. originator that is going to use memento object

class Editor
+{
+    protected $content = '';
+
+    public function type(string $words)
+    {
+        $this->content = $this->content . ' ' . $words;
+    }
+
+    public function getContent()
+    {
+        return $this->content;
+    }
+
+    public function save()
+    {
+        return new EditorMemento($this->content);
+    }
+
+    public function restore(EditorMemento $memento)
+    {
+        $this->content = $memento->getContent();
+    }
+}
+

And then it can be used as

$editor = new Editor();
+
+// Type some stuff
+$editor->type('This is the first sentence.');
+$editor->type('This is second.');
+
+// Save the state to restore to : This is the first sentence. This is second.
+$saved = $editor->save();
+
+// Type some more
+$editor->type('And this is third.');
+
+// Output: Content before Saving
+echo $editor->getContent(); // This is the first sentence. This is second. And this is third.
+
+// Restoring to last saved state
+$editor->restore($saved);
+
+$editor->getContent(); // This is the first sentence. This is second.
+

😎 Observer

Real world example

A good example would be the job seekers where they subscribe to some job posting site and they are notified whenever there is a matching job opportunity.

In plain words

Defines a dependency between objects so that whenever an object changes its state, all its dependents are notified.

Wikipedia says

The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods.

Programmatic example

Translating our example from above. First of all we have job seekers that need to be notified for a job posting

class JobPost
+{
+    protected $title;
+
+    public function __construct(string $title)
+    {
+        $this->title = $title;
+    }
+
+    public function getTitle()
+    {
+        return $this->title;
+    }
+}
+
+class JobSeeker implements Observer
+{
+    protected $name;
+
+    public function __construct(string $name)
+    {
+        $this->name = $name;
+    }
+
+    public function onJobPosted(JobPost $job)
+    {
+        // Do something with the job posting
+        echo 'Hi ' . $this->name . '! New job posted: '. $job->getTitle();
+    }
+}
+

Then we have our job postings to which the job seekers will subscribe

class EmploymentAgency implements Observable
+{
+    protected $observers = [];
+
+    protected function notify(JobPost $jobPosting)
+    {
+        foreach ($this->observers as $observer) {
+            $observer->onJobPosted($jobPosting);
+        }
+    }
+
+    public function attach(Observer $observer)
+    {
+        $this->observers[] = $observer;
+    }
+
+    public function addJob(JobPost $jobPosting)
+    {
+        $this->notify($jobPosting);
+    }
+}
+

Then it can be used as

// Create subscribers
+$johnDoe = new JobSeeker('John Doe');
+$janeDoe = new JobSeeker('Jane Doe');
+
+// Create publisher and attach subscribers
+$jobPostings = new EmploymentAgency();
+$jobPostings->attach($johnDoe);
+$jobPostings->attach($janeDoe);
+
+// Add a new job and see if subscribers get notified
+$jobPostings->addJob(new JobPost('Software Engineer'));
+
+// Output
+// Hi John Doe! New job posted: Software Engineer
+// Hi Jane Doe! New job posted: Software Engineer
+

🏃 Visitor

Real world example

Consider someone visiting Dubai. They just need a way (i.e. visa) to enter Dubai. After arrival, they can come and visit any place in Dubai on their own without having to ask for permission or to do some leg work in order to visit any place here; just let them know of a place and they can visit it. Visitor pattern lets you do just that, it helps you add places to visit so that they can visit as much as they can without having to do any legwork.

In plain words

Visitor pattern lets you add further operations to objects without having to modify them.

Wikipedia says

In object-oriented programming and software engineering, the visitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add new operations to existing object structures without modifying those structures. It is one way to follow the open/closed principle.

Programmatic example

Let's take an example of a zoo simulation where we have several different kinds of animals and we have to make them Sound. Let's translate this using visitor pattern

// Visitee
+interface Animal
+{
+    public function accept(AnimalOperation $operation);
+}
+
+// Visitor
+interface AnimalOperation
+{
+    public function visitMonkey(Monkey $monkey);
+    public function visitLion(Lion $lion);
+    public function visitDolphin(Dolphin $dolphin);
+}
+

Then we have our implementations for the animals

class Monkey implements Animal
+{
+    public function shout()
+    {
+        echo 'Ooh oo aa aa!';
+    }
+
+    public function accept(AnimalOperation $operation)
+    {
+        $operation->visitMonkey($this);
+    }
+}
+
+class Lion implements Animal
+{
+    public function roar()
+    {
+        echo 'Roaaar!';
+    }
+
+    public function accept(AnimalOperation $operation)
+    {
+        $operation->visitLion($this);
+    }
+}
+
+class Dolphin implements Animal
+{
+    public function speak()
+    {
+        echo 'Tuut tuttu tuutt!';
+    }
+
+    public function accept(AnimalOperation $operation)
+    {
+        $operation->visitDolphin($this);
+    }
+}
+

Let's implement our visitor

class Speak implements AnimalOperation
+{
+    public function visitMonkey(Monkey $monkey)
+    {
+        $monkey->shout();
+    }
+
+    public function visitLion(Lion $lion)
+    {
+        $lion->roar();
+    }
+
+    public function visitDolphin(Dolphin $dolphin)
+    {
+        $dolphin->speak();
+    }
+}
+

And then it can be used as

$monkey = new Monkey();
+$lion = new Lion();
+$dolphin = new Dolphin();
+
+$speak = new Speak();
+
+$monkey->accept($speak);    // Ooh oo aa aa!    
+$lion->accept($speak);      // Roaaar!
+$dolphin->accept($speak);   // Tuut tutt tuutt!
+

We could have done this simply by having an inheritance hierarchy for the animals but then we would have to modify the animals whenever we would have to add new actions to animals. But now we will not have to change them. For example, let's say we are asked to add the jump behavior to the animals, we can simply add that by creating a new visitor i.e.

class Jump implements AnimalOperation
+{
+    public function visitMonkey(Monkey $monkey)
+    {
+        echo 'Jumped 20 feet high! on to the tree!';
+    }
+
+    public function visitLion(Lion $lion)
+    {
+        echo 'Jumped 7 feet! Back on the ground!';
+    }
+
+    public function visitDolphin(Dolphin $dolphin)
+    {
+        echo 'Walked on water a little and disappeared';
+    }
+}
+

And for the usage

$jump = new Jump();
+
+$monkey->accept($speak);   // Ooh oo aa aa!
+$monkey->accept($jump);    // Jumped 20 feet high! on to the tree!
+
+$lion->accept($speak);     // Roaaar!
+$lion->accept($jump);      // Jumped 7 feet! Back on the ground!
+
+$dolphin->accept($speak);  // Tuut tutt tuutt!
+$dolphin->accept($jump);   // Walked on water a little and disappeared
+

💡 Strategy

Real world example

Consider the example of sorting, we implemented bubble sort but the data started to grow and bubble sort started getting very slow. In order to tackle this we implemented Quick sort. But now although the quick sort algorithm was doing better for large datasets, it was very slow for smaller datasets. In order to handle this we implemented a strategy where for small datasets, bubble sort will be used and for larger, quick sort.

In plain words

Strategy pattern allows you to switch the algorithm or strategy based upon the situation.

Wikipedia says

In computer programming, the strategy pattern (also known as the policy pattern) is a behavioural software design pattern that enables an algorithm's behavior to be selected at runtime.

Programmatic example

Translating our example from above. First of all we have our strategy interface and different strategy implementations

interface SortStrategy
+{
+    public function sort(array $dataset): array;
+}
+
+class BubbleSortStrategy implements SortStrategy
+{
+    public function sort(array $dataset): array
+    {
+        echo "Sorting using bubble sort";
+
+        // Do sorting
+        return $dataset;
+    }
+}
+
+class QuickSortStrategy implements SortStrategy
+{
+    public function sort(array $dataset): array
+    {
+        echo "Sorting using quick sort";
+
+        // Do sorting
+        return $dataset;
+    }
+}
+

And then we have our client that is going to use any strategy

class Sorter
+{
+    protected $sorter;
+
+    public function __construct(SortStrategy $sorter)
+    {
+        $this->sorter = $sorter;
+    }
+
+    public function sort(array $dataset): array
+    {
+        return $this->sorter->sort($dataset);
+    }
+}
+

And it can be used as

$dataset = [1, 5, 4, 3, 2, 8];
+
+$sorter = new Sorter(new BubbleSortStrategy());
+$sorter->sort($dataset); // Output : Sorting using bubble sort
+
+$sorter = new Sorter(new QuickSortStrategy());
+$sorter->sort($dataset); // Output : Sorting using quick sort
+

💢 State

Real world example

Imagine you are using some drawing application, you choose the paint brush to draw. Now the brush changes its behavior based on the selected color i.e. if you have chosen red color it will draw in red, if blue then it will be in blue etc.

In plain words

It lets you change the behavior of a class when the state changes.

Wikipedia says

The state pattern is a behavioral software design pattern that implements a state machine in an object-oriented way. With the state pattern, a state machine is implemented by implementing each individual state as a derived class of the state pattern interface, and implementing state transitions by invoking methods defined by the pattern's superclass. +The state pattern can be interpreted as a strategy pattern which is able to switch the current strategy through invocations of methods defined in the pattern's interface.

Programmatic example

Let's take an example of text editor, it lets you change the state of text that is typed i.e. if you have selected bold, it starts writing in bold, if italic then in italics etc.

First of all we have our state interface and some state implementations

interface WritingState
+{
+    public function write(string $words);
+}
+
+class UpperCase implements WritingState
+{
+    public function write(string $words)
+    {
+        echo strtoupper($words);
+    }
+}
+
+class LowerCase implements WritingState
+{
+    public function write(string $words)
+    {
+        echo strtolower($words);
+    }
+}
+
+class DefaultText implements WritingState
+{
+    public function write(string $words)
+    {
+        echo $words;
+    }
+}
+

Then we have our editor

class TextEditor
+{
+    protected $state;
+
+    public function __construct(WritingState $state)
+    {
+        $this->state = $state;
+    }
+
+    public function setState(WritingState $state)
+    {
+        $this->state = $state;
+    }
+
+    public function type(string $words)
+    {
+        $this->state->write($words);
+    }
+}
+

And then it can be used as

$editor = new TextEditor(new DefaultText());
+
+$editor->type('First line');
+
+$editor->setState(new UpperCase());
+
+$editor->type('Second line');
+$editor->type('Third line');
+
+$editor->setState(new LowerCase());
+
+$editor->type('Fourth line');
+$editor->type('Fifth line');
+
+// Output:
+// First line
+// SECOND LINE
+// THIRD LINE
+// fourth line
+// fifth line
+

📒 Template Method

Real world example

Suppose we are getting some house built. The steps for building might look like

  • Prepare the base of house
  • Build the walls
  • Add roof
  • Add other floors

The order of these steps could never be changed i.e. you can't build the roof before building the walls etc but each of the steps could be modified for example walls can be made of wood or polyester or stone.

In plain words

Template method defines the skeleton of how a certain algorithm could be performed, but defers the implementation of those steps to the children classes.

Wikipedia says

In software engineering, the template method pattern is a behavioral design pattern that defines the program skeleton of an algorithm in an operation, deferring some steps to subclasses. It lets one redefine certain steps of an algorithm without changing the algorithm's structure.

Programmatic Example

Imagine we have a build tool that helps us test, lint, build, generate build reports (i.e. code coverage reports, linting report etc) and deploy our app on the test server.

First of all we have our base class that specifies the skeleton for the build algorithm

abstract class Builder
+{
+
+    // Template method
+    final public function build()
+    {
+        $this->test();
+        $this->lint();
+        $this->assemble();
+        $this->deploy();
+    }
+
+    abstract public function test();
+    abstract public function lint();
+    abstract public function assemble();
+    abstract public function deploy();
+}
+

Then we can have our implementations

class AndroidBuilder extends Builder
+{
+    public function test()
+    {
+        echo 'Running android tests';
+    }
+
+    public function lint()
+    {
+        echo 'Linting the android code';
+    }
+
+    public function assemble()
+    {
+        echo 'Assembling the android build';
+    }
+
+    public function deploy()
+    {
+        echo 'Deploying android build to server';
+    }
+}
+
+class IosBuilder extends Builder
+{
+    public function test()
+    {
+        echo 'Running ios tests';
+    }
+
+    public function lint()
+    {
+        echo 'Linting the ios code';
+    }
+
+    public function assemble()
+    {
+        echo 'Assembling the ios build';
+    }
+
+    public function deploy()
+    {
+        echo 'Deploying ios build to server';
+    }
+}
+

And then it can be used as

$androidBuilder = new AndroidBuilder();
+$androidBuilder->build();
+
+// Output:
+// Running android tests
+// Linting the android code
+// Assembling the android build
+// Deploying android build to server
+
+$iosBuilder = new IosBuilder();
+$iosBuilder->build();
+
+// Output:
+// Running ios tests
+// Linting the ios code
+// Assembling the ios build
+// Deploying ios build to server
+

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 new file mode 100644 index 000000000..321961ebd --- /dev/null +++ b/guides/dhcp-in-one-picture.html @@ -0,0 +1,12 @@ +DHCP in One Picture
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 new file mode 100644 index 000000000..b3105495b --- /dev/null +++ b/guides/dns-in-one-picture.html @@ -0,0 +1,12 @@ +DNS in One Picture
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 new file mode 100644 index 000000000..52650d2a5 --- /dev/null +++ b/guides/history-of-javascript.html @@ -0,0 +1,20 @@ +Brief History of JavaScript
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 new file mode 100644 index 000000000..968b2340b --- /dev/null +++ b/guides/http-caching.html @@ -0,0 +1,65 @@ +HTTP Caching
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·November 29, 2018·Improve this Guide

HTTP Caching

Everything you need to know about web caching

As users, we easily get frustrated by the buffering videos, the images that take seconds to load, pages that got stuck because the content is being loaded. Loading the resources from some cache is much faster than fetching the same from the originating server. It reduces latency, speeds up the loading of resources, decreases the load on server, cuts down the bandwidth costs etc.

Introduction

What is web cache? It is something that sits somewhere between the client and the server, continuously looking at the requests and their responses, looking for any responses that can be cached. So that there is less time consumed when the same request is made again.

Web Cache

Note that this image is just to give you an idea. Depending upon the type of cache, the place where it is implemented could vary. More on this later.

Before we get into further details, let me give you an overview of the terms that will be used, further in the article

  • Client could be your browser or any application requesting the server for some resource
  • Origin Server, the source of truth, houses all the content required by the client and is responsible for fulfilling the client requests.
  • Stale Content is the cached but expired content
  • Fresh Content is the content available in cache that hasn't expired yet
  • Cache Validation is the process of contacting the server to check the validity of the cached content and get it updated for when it is going to expire
  • Cache Invalidation is the process of removing any stale content available in the cache

Caching Locations

Web cache can be shared or private depending upon the location where it exists. Here is the list of different caching locations

Browser Cache

You might have noticed that when you click the back button in your browser it takes less time to load the page than the time that it took during the first load; this is the browser cache in play. Browser cache is the most common location for caching and browsers usually reserve some space for it.

Web Cache

A browser cache is limited to just one user and unlike other caches, it can store the "private" responses. More on it later.

Proxy Cache

Unlike browser cache which serves a single user, proxy caches may serve hundreds of different users accessing the same content. They are usually implemented on a broader level by ISPs or any other independent entities for example.

Proxy Cache

Reverse Proxy Cache

Reverse proxy cache or surrogate cache is implemented close to the origin servers in order to reduce the load on server. Unlike proxy caches which are implemented by ISPs etc to reduce the bandwidth usage in a network, surrogates or reverse proxy caches are implemented near to the origin servers by the server administrators to reduce the load on server.

Reverse Proxy Cache

Although you can control the reverse proxy caches (since it is implemented by you on your server) you can not avoid or control browser and proxy caches. And if your website is not configured to use these caches properly, it will still be cached using whatever the defaults are set on these caches.

Caching Headers

So, how do we control the web cache? Whenever the server emits some response, it is accompanied with some HTTP headers to guide the caches whether and how to cache this response. Content provider is the one that has to make sure to return proper HTTP headers to force the caches on how to cache the content.

Expires

Before HTTP/1.1 and introduction of Cache-Control, there was Expires header which is simply a timestamp telling the caches how long should some content be considered fresh. Possible value to this header is absolute expiry date; where date has to be in GMT. Below is the sample header

Expires: Mon, 13 Mar 2017 12:22:00 GMT
+

It should be noted that the date cannot be more than a year and if the date format is wrong, content will be considered stale. Also, the clock on cache has to be in sync with the clock on server, otherwise the desired results might not be achieved.

Although, Expires header is still valid and is supported widely by the caches, preference should be given to HTTP/1.1 successor of it i.e. Cache-Control.

Pragma

Another one from the old, pre HTTP/1.1 days, is Pragma. Everything that it could do is now possible using the cache-control header given below. However, one thing I would like to point out about it is, you might see Pragma: no-cache being used here and there in hopes of stopping the response from being cached. It might not necessarily work; as HTTP specification discusses it in the request headers and there is no mention of it in the response headers. Rather Cache-Control header should be used to control the caching.

Cache-Control

Cache-Control specifies how long and in what manner should the content be cached. This family of headers was introduced in HTTP/1.1 to overcome the limitations of the Expires header.

Value for the Cache-Control header is composite i.e. it can have multiple directive/values. Let's look at the possible values that this header may contain.

private

Setting the cache to private means that the content will not be cached in any of the proxies and it will only be cached by the client (i.e. browser)

Cache-Control: private
+

Having said that, don't let it fool you in to thinking that setting this header will make your data any secure; you still have to use SSL for that purpose.

public

If set to public, apart from being cached by the client, it can also be cached by the proxies; serving many other users

Cache-Control: public
+
no-store

no-store specifies that the content is not to be cached by any of the caches

Cache-Control: no-store
+
no-cache

no-cache indicates that the cache can be maintained but the cached content is to be re-validated (using ETag for example) from the server before being served. That is, there is still a request to server but for validation and not to download the cached content.

Cache-Control: max-age=3600, no-cache, public
+
max-age: seconds

max-age specifies the number of seconds for which the content will be cached. For example, if the cache-control looks like below:

Cache-Control: max-age=3600, public
+

it would mean that the content is publicly cacheable and will be considered stale after 60 minutes

s-maxage: seconds

s-maxage here s- prefix stands for shared. This directive specifically targets the shared caches. Like max-age it also gets the number of seconds for which something is to be cached. If present, it will override max-age and expires headers for shared caching.

Cache-Control: s-maxage=3600, public
+
must-revalidate

must-revalidate it might happen sometimes that if you have network problems and the content cannot be retrieved from the server, browser may serve stale content without validation. must-revalidate avoids that. If this directive is present, it means that stale content cannot be served in any case and the data must be re-validated from the server before serving.

Cache-Control: max-age=3600, public, must-revalidate
+
proxy-revalidate

proxy-revalidate is similar to must-revalidate but it specifies the same for shared or proxy caches. In other words proxy-revalidate is to must-revalidate as s-maxage is to max-age. But why did they not call it s-revalidate?. I have no idea why, if you have any clue please leave a comment below.

Mixing Values

You can combine these directives in different ways to achieve different caching behaviors, however no-cache/no-store and public/private are mutually exclusive.

If you specify both no-store and no-cache, no-store will be given precedence over no-cache.

; If specified both
+Cache-Control: no-store, no-cache
+
+; Below will be considered
+Cache-Control: no-store
+

For private/public, for any unauthenticated requests cache is considered public and for any authenticated ones cache is considered private.

Validators

Up until now we only discussed how the content is cached and how long the cached content is to be considered fresh but we did not discuss how the client does the validation from the server. Below we discuss the headers used for this purpose.

ETag

Etag or "entity tag" was introduced in HTTP/1.1 specs. Etag is just a unique identifier that the server attaches with some resource. This ETag is later on used by the client to make conditional HTTP requests stating "give me this resource if ETag is not same as the ETag that I have" and the content is downloaded only if the etags do not match.

Method by which ETag is generated is not specified in the HTTP docs and usually some collision-resistant hash function is used to assign etags to each version of a resource. There could be two types of etags i.e. strong and weak

ETag: "j82j8232ha7sdh0q2882" - Strong Etag
+ETag: W/"j82j8232ha7sdh0q2882" - Weak Etag (prefixed with `W/`)
+

A strong validating ETag means that two resources are exactly same and there is no difference between them at all. While a weak ETag means that two resources are although not strictly same but could be considered same. Weak etags might be useful for dynamic content, for example.

Now you know what etags are but how does the browser make this request? by making a request to server while sending the available Etag in If-None-Match header.

Consider the scenario, you opened a web page which loaded a logo image with caching period of 60 seconds and ETag of abc123xyz. After about 30 minutes you reload the page, browser will notice that the logo which was fresh for 60 seconds is now stale; it will trigger a request to server, sending the ETag of the stale logo image in if-none-match header

If-None-Match: "abc123xyz"
+

Server will then compare this ETag with the ETag of the current version of resource. If both etags are matched, server will send back the response of 304 Not Modified which will tell the client that the copy that it has is still good and it will be considered fresh for another 60 seconds. If both the etags do not match i.e. the logo has likely changed and client will be sent the new logo which it will use to replace the stale logo that it has.

Last-Modified

Server might include the Last-Modified header indicating the date and time at which some content was last modified on.

Last-Modified: Wed, 15 Mar 2017 12:30:26 GMT
+

When the content gets stale, client will make a conditional request including the last modified date that it has inside the header called If-Modified-Since to server to get the updated Last-Modified date; if it matches the date that the client has, Last-Modified date for the content is updated to be considered fresh for another n seconds. If the received Last-Modified date does not match the one that the client has, content is reloaded from the server and replaced with the content that client has.

If-Modified-Since: Wed, 15 Mar 2017 12:30:26 GMT
+

You might be questioning now, what if the cached content has both the Last-Modified and ETag assigned to it? Well, in that case both are to be used i.e. there will not be any re-downloading of the resource if and only if ETag matches the newly retrieved one and so does the Last-Modified date. If either the ETag does not match or the Last-Modified is greater than the one from the server, content has to be downloaded again.

Where do I start?

Now that we have got everything covered, let us put everything in perspective and see how you can use this information.

Utilizing Server

Before we get into the possible caching strategies , let me add the fact that most of the servers including Apache and Nginx allow you to implement your caching policy through the server so that you don't have to juggle with headers in your code.

For example, if you are using Apache and you have your static content placed at /static, you can put below .htaccess file in the directory to make all the content in it be cached for an year using below

# Cache everything for an year
+Header set Cache-Control "max-age=31536000, public"
+

You can further use filesMatch directive to add conditionals and use different caching strategy for different kinds of files e.g.

# Cache any images for one year
+<filesMatch ".(png|jpg|jpeg|gif)$">
+    Header set Cache-Control "max-age=31536000, public"
+</filesMatch>
+
+# Cache any CSS and JS files for a month
+<filesMatch ".(css|js)$">
+    Header set Cache-Control "max-age=2628000, public"
+</filesMatch>
+

Or if you don't want to use the .htaccess file you can modify Apache's configuration file http.conf. Same goes for Nginx, you can add the caching information in the location or server block.

Caching Recommendations

There is no golden rule or set standards about how your caching policy should look like, each of the application is different and you have to look and find what suits your application the best. However, just to give you a rough idea

  • You can have aggressive caching (e.g. cache for an year) on any static content and use fingerprinted filenames (e.g. style.ju2i90.css) so that the cache is automatically rejected whenever the files are updated. +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 new file mode 100644 index 000000000..d74ea1e11 --- /dev/null +++ b/guides/jwt-authentication.html @@ -0,0 +1,12 @@ +JWT Authentication
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 new file mode 100644 index 000000000..3eb0cf6d2 --- /dev/null +++ b/guides/levels-of-seniority.html @@ -0,0 +1,20 @@ +Levels of Seniority
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 new file mode 100644 index 000000000..ed3d1e615 --- /dev/null +++ b/guides/oauth.html @@ -0,0 +1,12 @@ +OAuth — Open Authorization
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 new file mode 100644 index 000000000..3712cdcff --- /dev/null +++ b/guides/proxy-servers.html @@ -0,0 +1,28 @@ +Proxy Servers
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 new file mode 100644 index 000000000..7d98286bf --- /dev/null +++ b/guides/random-numbers.html @@ -0,0 +1,12 @@ +Random Numbers: Are they?
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 new file mode 100644 index 000000000..37bebeec5 --- /dev/null +++ b/guides/scaling-databases.html @@ -0,0 +1,12 @@ +Scaling Databases
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 new file mode 100644 index 000000000..ec48782b8 --- /dev/null +++ b/guides/session-authentication.html @@ -0,0 +1,12 @@ +Session Based Authentication
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 new file mode 100644 index 000000000..7235e45d4 --- /dev/null +++ b/guides/ssl-tls-https-ssh.html @@ -0,0 +1,12 @@ +SSL vs TLS vs SSH
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 new file mode 100644 index 000000000..12fb04ccd --- /dev/null +++ b/guides/sso.html @@ -0,0 +1,12 @@ +SSO — Single Sign On
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 new file mode 100644 index 000000000..0caeab17a --- /dev/null +++ b/guides/token-authentication.html @@ -0,0 +1,12 @@ +Token Based Authentication
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 new file mode 100644 index 000000000..994790068 --- /dev/null +++ b/guides/torrent-client.html @@ -0,0 +1,391 @@ +Building a BitTorrent Client
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Jesse Li·January 17, 2021·Improve this Guide

Building a BitTorrent Client

Learn everything you need to know about BitTorrent by writing a client in Go

BitTorrent is a protocol for downloading and distributing files across the Internet. In contrast with the traditional client/server relationship, in which downloaders connect to a central server (for example: watching a movie on Netflix, or loading the web page you're reading now), participants in the BitTorrent network, called peers, download pieces of files from each other—this is what makes it a peer-to-peer protocol. In this article we will investigate how this works, and build our own client that can find peers and exchange data between them.

diagram showing the difference between client/server (all clients connecting to one server) and peer-to-peer (peers connecting to each other) relationships

The protocol evolved organically over the past 20 years, and various people and organizations added extensions for features like encryption, private torrents, and new ways of finding peers. We'll be implementing the original spec from 2001 to keep this a weekend-sized project.

I'll be using a Debian ISO file as my guinea pig because it's big, but not huge, at 350MB. As a popular Linux distribution, there will be lots of fast and cooperative peers for us to connect to. And we'll avoid the legal and ethical issues related to downloading pirated content.

Finding peers

Here’s a problem: we want to download a file with BitTorrent, but it’s a peer-to-peer protocol and we have no idea where to find peers to download it from. This is a lot like moving to a new city and trying to make friends—maybe we’ll hit up a local pub or a meetup group! Centralized locations like these are the big idea behind trackers, which are central servers that introduce peers to each other. They’re just web servers running over HTTP, and you can find Debian’s at http://bttracker.debian.org:6969/

illustration of a desktop computer and laptop sitting at a pub

Of course, these central servers are liable to get raided by the feds if they facilitate peers exchanging illegal content. You may remember reading about trackers like TorrentSpy, Popcorn Time, and KickassTorrents getting seized and shut down. New methods cut out the middleman by making even peer discovery a distributed process. We won't be implementing them, but if you're interested, some terms you can research are DHT, PEX, and magnet links.

Parsing a .torrent file

A .torrent file describes the contents of a torrentable file and information for connecting to a tracker. It's all we need in order to kickstart the process of downloading a torrent. Debian's .torrent file looks like this:

d8:announce41:http://bttracker.debian.org:6969/announce7:comment35:"Debian CD from cdimage.debian.org"13:creation datei1573903810e9:httpseedsl145:https://cdimage.debian.org/cdimage/release/10.2.0//srv/cdbuilder.debian.org/dst/deb-cd/weekly-builds/amd64/iso-cd/debian-10.2.0-amd64-netinst.iso145:https://cdimage.debian.org/cdimage/archive/10.2.0//srv/cdbuilder.debian.org/dst/deb-cd/weekly-builds/amd64/iso-cd/debian-10.2.0-amd64-netinst.isoe4:infod6:lengthi351272960e4:name31:debian-10.2.0-amd64-netinst.iso12:piece lengthi262144e6:pieces26800:�����PS�^�� (binary blob of the hashes of each piece)ee
+

That mess is encoded in a format called Bencode (pronounced bee-encode), and we'll need to decode it.

Bencode can encode roughly the same types of structures as JSON—strings, integers, lists, and dictionaries. Bencoded data is not as human-readable/writable as JSON, but it can efficiently handle binary data and it's really simple to parse from a stream. Strings come with a length prefix, and look like 4:spam. Integers go between start and end markers, so 7 would encode to i7e. Lists and dictionaries work in a similar way: l4:spami7ee represents ['spam', 7], while d4:spami7ee means {spam: 7}.

In a prettier format, our .torrent file looks like this:

d
+  8:announce
+    41:http://bttracker.debian.org:6969/announce
+  7:comment
+    35:"Debian CD from cdimage.debian.org"
+  13:creation date
+    i1573903810e
+  4:info
+    d
+      6:length
+        i351272960e
+      4:name
+        31:debian-10.2.0-amd64-netinst.iso
+      12:piece length
+        i262144e
+      6:pieces
+        26800:�����PS�^�� (binary blob of the hashes of each piece)
+    e
+e
+

In this file, we can spot the URL of the tracker, the creation date (as a Unix timestamp), the name and size of the file, and a big binary blob containing the SHA-1 hashes of each piece, which are equally-sized parts of the file we want to download. The exact size of a piece varies between torrents, but they are usually somewhere between 256KB and 1MB. This means that a large file might be made up of thousands of pieces. We'll download these pieces from our peers, check them against the hashes from our torrent file, assemble them together, and boom, we've got a file!

"illustration of a file being cut with scissors into multiple pieces, starting with piece 0

This mechanism allows us to verify the integrity of each piece as we go. It makes BitTorrent resistant to accidental corruption or intentional torrent poisoning. Unless an attacker is capable of breaking SHA-1 with a preimage attack, we will get exactly the content we asked for.

It would be really fun to write a bencode parser, but parsing isn't our focus today. But I found Fredrik Lundh's 50 line parser to be especially illuminating. For this project, I used github.com/jackpal/bencode-go:

import (
+    "github.com/jackpal/bencode-go"
+)
+
+type bencodeInfo struct {
+    Pieces      string `bencode:"pieces"`
+    PieceLength int    `bencode:"piece length"`
+    Length      int    `bencode:"length"`
+    Name        string `bencode:"name"`
+}
+
+type bencodeTorrent struct {
+    Announce string      `bencode:"announce"`
+    Info     bencodeInfo `bencode:"info"`
+}
+
+// Open parses a torrent file
+func Open(r io.Reader) (*bencodeTorrent, error) {
+    bto := bencodeTorrent{}
+    err := bencode.Unmarshal(r, &bto)
+    if err != nil {
+        return nil, err
+    }
+    return &bto, nil
+}
+

Because I like to keep my structures relatively flat, and I like to keep my application structs separate from my serialization structs, I exported a different, flatter struct named TorrentFile and wrote a few helper functions to convert between the two.

Notably, I split pieces (previously a string) into a slice of hashes (each [20]byte) so that I can easily access individual hashes later. I also computed the SHA-1 hash of the entire bencoded info dict (the one which contained the name, size, and piece hashes). We know this as the infohash and it uniquely identifies files when we talk to trackers and peers. More on this later.

a name tag saying 'Hello my name is 86d4c80024a469be4c50bc5a102cf71780310074'

type TorrentFile struct {
+    Announce    string
+    InfoHash    [20]byte
+    PieceHashes [][20]byte
+    PieceLength int
+    Length      int
+    Name        string
+}
+
+func (bto *bencodeTorrent) toTorrentFile() (*TorrentFile, error) {
+    // ...
+}
+

Retrieving peers from the tracker

Now that we have information about the file and its tracker, let's talk to the tracker to announce our presence as a peer and to retrieve a list of other peers. We just need to make a GET request to the announce URL supplied in the .torrent file, with a few query parameters:

func (t *TorrentFile) buildTrackerURL(peerID [20]byte, port uint16) (string, error) {
+    base, err := url.Parse(t.Announce)
+    if err != nil {
+        return "", err
+    }
+    params := url.Values{
+        "info_hash":  []string{string(t.InfoHash[:])},
+        "peer_id":    []string{string(peerID[:])},
+        "port":       []string{strconv.Itoa(int(Port))},
+        "uploaded":   []string{"0"},
+        "downloaded": []string{"0"},
+        "compact":    []string{"1"},
+        "left":       []string{strconv.Itoa(t.Length)},
+    }
+    base.RawQuery = params.Encode()
+    return base.String(), nil
+}
+

The important ones:

  • info_hash: Identifies the file we're trying to download. It's the infohash we calculated earlier from the bencoded info dict. The tracker will use this to figure out which peers to show us.
  • peer_id: A 20 byte name to identify ourselves to trackers and peers. We'll just generate 20 random bytes for this. Real BitTorrent clients have IDs like -TR2940-k8hj0wgej6ch which identify the client software and version—in this case, TR2940 stands for Transmission client 2.94.

a file with a name tag saying 'info_hash' and a person with a name tag 'peer_id'

Parsing the tracker response

We get back a bencoded response:

d
+  8:interval
+    i900e
+  5:peers
+    252:(another long binary blob)
+e
+

Interval tells us how often we're supposed to connect to the tracker again to refresh our list of peers. A value of 900 means we should reconnect every 15 minutes (900 seconds).

Peers is another long binary blob containing the IP addresses of each peer. It's made out of groups of six bytes. The first four bytes in each group represent the peer's IP address—each byte represents a number in the IP. The last two bytes represent the port, as a big-endian uint16. Big-endian, or network order, means that we can interpret a group of bytes as an integer by just squishing them together left to right. For example, the bytes 0x1A, 0xE1 make 0x1AE1, or 6881 in decimal.

diagram showing how 192, 0, 2, 123, 0x1A, 0xE1 can be interpreted as 192.0.1.123:6881

// Peer encodes connection information for a peer
+type Peer struct {
+    IP   net.IP
+    Port uint16
+}
+
+// Unmarshal parses peer IP addresses and ports from a buffer
+func Unmarshal(peersBin []byte) ([]Peer, error) {
+    const peerSize = 6 // 4 for IP, 2 for port
+    numPeers := len(peersBin) / peerSize
+    if len(peersBin)%peerSize != 0 {
+        err := fmt.Errorf("Received malformed peers")
+        return nil, err
+    }
+    peers := make([]Peer, numPeers)
+    for i := 0; i < numPeers; i++ {
+        offset := i * peerSize
+        peers[i].IP = net.IP(peersBin[offset : offset+4])
+        peers[i].Port = binary.BigEndian.Uint16(peersBin[offset+4 : offset+6])
+    }
+    return peers, nil
+}
+

Downloading from peers

Now that we have a list of peers, it's time to connect with them and start downloading pieces! We can break down the process into a few steps. For each peer, we want to:

  1. Start a TCP connection with the peer. This is like starting a phone call.
  2. Complete a two-way BitTorrent handshake. "Hello?" "Hello."
  3. Exchange messages to download pieces. "I'd like piece #231 please."

Start a TCP connection

conn, err := net.DialTimeout("tcp", peer.String(), 3*time.Second)
+if err != nil {
+    return nil, err
+}
+

I set a timeout so that I don't waste too much time on peers that aren't going to let me connect. For the most part, it's a pretty standard TCP connection.

Complete the handshake

We've just set up a connection with a peer, but we want do a handshake to validate our assumptions that the peer

  • can communicate using the BitTorrent protocol
  • is able to understand and respond to our messages
  • has the file that we want, or at least knows what we're talking about

Two computers communicating. One asks 'do you speak BitTorrent and have this file?' and the other replies 'I speak BitTorrent and have that file'

My father told me that the secret to a good handshake is a firm grip and eye contact. The secret to a good BitTorrent handshake is that it's made up of five parts:

  1. The length of the protocol identifier, which is always 19 (0x13 in hex)
  2. The protocol identifier, called the pstr which is always BitTorrent protocol
  3. Eight reserved bytes, all set to 0. We'd flip some of them to 1 to indicate that we support certain extensions. But we don't, so we'll keep them at 0.
  4. The infohash that we calculated earlier to identify which file we want
  5. The Peer ID that we made up to identify ourselves

Put together, a handshake string might look like this:

\x13BitTorrent protocol\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd4\xc8\x00\x24\xa4\x69\xbe\x4c\x50\xbc\x5a\x10\x2c\xf7\x17\x80\x31\x00\x74-TR2940-k8hj0wgej6ch
+

After we send a handshake to our peer, we should receive a handshake back in the same format. The infohash we get back should match the one we sent so that we know that we're talking about the same file. If everything goes as planned, we're good to go. If not, we can sever the connection because there's something wrong. "Hello?" "这是谁? 你想要什么?" "Okay, wow, wrong number."

In our code, let's make a struct to represent a handshake, and write a few methods for serializing and reading them:

// A Handshake is a special message that a peer uses to identify itself
+type Handshake struct {
+    Pstr     string
+    InfoHash [20]byte
+    PeerID   [20]byte
+}
+
+// Serialize serializes the handshake to a buffer
+func (h *Handshake) Serialize() []byte {
+    buf := make([]byte, len(h.Pstr)+49)
+    buf[0] = byte(len(h.Pstr))
+    curr := 1
+    curr += copy(buf[curr:], h.Pstr)
+    curr += copy(buf[curr:], make([]byte, 8)) // 8 reserved bytes
+    curr += copy(buf[curr:], h.InfoHash[:])
+    curr += copy(buf[curr:], h.PeerID[:])
+    return buf
+}
+
+// Read parses a handshake from a stream
+func Read(r io.Reader) (*Handshake, error) {
+    // Do Serialize(), but backwards
+    // ...
+}
+

Send and receive messages

Once we've completed the initial handshake, we can send and receive messages. Well, not quite—if the other peer isn't ready to accept messages, we can't send any until they tell us they're ready. In this state, we're considered choked by the other peer. They'll send us an unchoke message to let us know that we can begin asking them for data. By default, we assume that we're choked until proven otherwise.

Once we've been unchoked, we can then begin sending requests for pieces, and they can send us messages back containing pieces.

"A cartoon in which person 1 says 'hello I would like piece number—' and person 2 grabs him by the neck and says '00 00 00 01 00 (choke)'

Interpreting messages

A message has a length, an ID and a payload. On the wire, it looks like:

A message with 4 byte for the length, 1 byte for ID, and an optional payload

A message starts with a length indicator which tells us how many bytes long the message will be. It's a 32-bit integer, meaning it's made out of four bytes smooshed together in big-endian order. The next byte, the ID, tells us which type of message we're receiving—for example, a 2 byte means "interested." Finally, the optional payload fills out the remaining length of the message.

type messageID uint8
+
+const (
+    MsgChoke         messageID = 0
+    MsgUnchoke       messageID = 1
+    MsgInterested    messageID = 2
+    MsgNotInterested messageID = 3
+    MsgHave          messageID = 4
+    MsgBitfield      messageID = 5
+    MsgRequest       messageID = 6
+    MsgPiece         messageID = 7
+    MsgCancel        messageID = 8
+)
+
+// Message stores ID and payload of a message
+type Message struct {
+    ID      messageID
+    Payload []byte
+}
+
+// Serialize serializes a message into a buffer of the form
+// <length prefix><message ID><payload>
+// Interprets `nil` as a keep-alive message
+func (m *Message) Serialize() []byte {
+    if m == nil {
+        return make([]byte, 4)
+    }
+    length := uint32(len(m.Payload) + 1) // +1 for id
+    buf := make([]byte, 4+length)
+    binary.BigEndian.PutUint32(buf[0:4], length)
+    buf[4] = byte(m.ID)
+    copy(buf[5:], m.Payload)
+    return buf
+}
+

To read a message from a stream, we just follow the format of a message. We read four bytes and interpret them as a uint32 to get the length of the message. Then, we read that number of bytes to get the ID (the first byte) and the payload (the remaining bytes).

// Read parses a message from a stream. Returns `nil` on keep-alive message
+func Read(r io.Reader) (*Message, error) {
+    lengthBuf := make([]byte, 4)
+    _, err := io.ReadFull(r, lengthBuf)
+    if err != nil {
+        return nil, err
+    }
+    length := binary.BigEndian.Uint32(lengthBuf)
+
+    // keep-alive message
+    if length == 0 {
+        return nil, nil
+    }
+
+    messageBuf := make([]byte, length)
+    _, err = io.ReadFull(r, messageBuf)
+    if err != nil {
+        return nil, err
+    }
+
+    m := Message{
+        ID:      messageID(messageBuf[0]),
+        Payload: messageBuf[1:],
+    }
+
+    return &m, nil
+}
+

Bitfields

One of the most interesting types of message is the bitfield, which is a data structure that peers use to efficiently encode which pieces they are able to send us. A bitfield looks like a byte array, and to check which pieces they have, we just need to look at the positions of the bits set to 1. You can think of it like the digital equivalent of a coffee shop loyalty card. We start with a blank card of all 0, and flip bits to 1 to mark their positions as "stamped."

a coffee shop loyalty card with eight slots, with stamps on the first four slots and a stamp on the second to last slot, represented as 11110010

By working with bits instead of bytes, this data structure is super compact. We can stuff information about eight pieces in the space of a single byte—the size of a bool. The tradeoff is that accessing values becomes a little more tricky. The smallest unit of memory that computers can address are bytes, so to get to our bits, we have to do some bitwise manipulation:

// A Bitfield represents the pieces that a peer has
+type Bitfield []byte
+
+// HasPiece tells if a bitfield has a particular index set
+func (bf Bitfield) HasPiece(index int) bool {
+    byteIndex := index / 8
+    offset := index % 8
+    return bf[byteIndex]>>(7-offset)&1 != 0
+}
+
+// SetPiece sets a bit in the bitfield
+func (bf Bitfield) SetPiece(index int) {
+    byteIndex := index / 8
+    offset := index % 8
+    bf[byteIndex] |= 1 << (7 - offset)
+}
+

Putting it all together

We now have all the tools we need to download a torrent: we have a list of peers obtained from the tracker, and we can communicate with them by dialing a TCP connection, initiating a handshake, and sending and receiving messages. Our last big problems are handling the concurrency involved in talking to multiple peers at once, and managing the state of our peers as we interact with them. These are both classically Hard problems.

Managing concurrency: channels as queues

In Go, we share memory by communicating, and we can think of a Go channel as a cheap thread-safe queue.

We'll set up two channels to synchronize our concurrent workers: one for dishing out work (pieces to download) between peers, and another for collecting downloaded pieces. As downloaded pieces come in through the results channel, we can copy them into a buffer to start assembling our complete file.

// Init queues for workers to retrieve work and send results
+workQueue := make(chan *pieceWork, len(t.PieceHashes))
+results := make(chan *pieceResult)
+for index, hash := range t.PieceHashes {
+    length := t.calculatePieceSize(index)
+    workQueue <- &pieceWork{index, hash, length}
+}
+
+// Start workers
+for _, peer := range t.Peers {
+    go t.startDownloadWorker(peer, workQueue, results)
+}
+
+// Collect results into a buffer until full
+buf := make([]byte, t.Length)
+donePieces := 0
+for donePieces < len(t.PieceHashes) {
+    res := <-results
+    begin, end := t.calculateBoundsForPiece(res.index)
+    copy(buf[begin:end], res.buf)
+    donePieces++
+}
+close(workQueue)
+

We'll spawn a worker goroutine for each peer we've received from the tracker. It'll connect and handshake with the peer, and then start retrieving work from the workQueue, attempting to download it, and sending downloaded pieces back through the results channel.

a flow chart of the download strategy

func (t *Torrent) startDownloadWorker(peer peers.Peer, workQueue chan *pieceWork, results chan *pieceResult) {
+    c, err := client.New(peer, t.PeerID, t.InfoHash)
+    if err != nil {
+        log.Printf("Could not handshake with %s. Disconnecting\n", peer.IP)
+        return
+    }
+    defer c.Conn.Close()
+    log.Printf("Completed handshake with %s\n", peer.IP)
+
+    c.SendUnchoke()
+    c.SendInterested()
+
+    for pw := range workQueue {
+        if !c.Bitfield.HasPiece(pw.index) {
+            workQueue <- pw // Put piece back on the queue
+            continue
+        }
+
+        // Download the piece
+        buf, err := attemptDownloadPiece(c, pw)
+        if err != nil {
+            log.Println("Exiting", err)
+            workQueue <- pw // Put piece back on the queue
+            return
+        }
+
+        err = checkIntegrity(pw, buf)
+        if err != nil {
+            log.Printf("Piece #%d failed integrity check\n", pw.index)
+            workQueue <- pw // Put piece back on the queue
+            continue
+        }
+
+        c.SendHave(pw.index)
+        results <- &pieceResult{pw.index, buf}
+    }
+}
+

Managing state

We'll keep track of each peer in a struct, and modify that struct as we read messages. It'll include data like how much we've downloaded from the peer, how much we've requested from them, and whether we're choked. If we wanted to scale this further, we could formalize this as a finite state machine. But a struct and a switch are good enough for now.

type pieceProgress struct {
+    index      int
+    client     *client.Client
+    buf        []byte
+    downloaded int
+    requested  int
+    backlog    int
+}
+
+func (state *pieceProgress) readMessage() error {
+    msg, err := state.client.Read() // this call blocks
+    switch msg.ID {
+    case message.MsgUnchoke:
+        state.client.Choked = false
+    case message.MsgChoke:
+        state.client.Choked = true
+    case message.MsgHave:
+        index, err := message.ParseHave(msg)
+        state.client.Bitfield.SetPiece(index)
+    case message.MsgPiece:
+        n, err := message.ParsePiece(state.index, state.buf, msg)
+        state.downloaded += n
+        state.backlog--
+    }
+    return nil
+}
+

Time to make requests!

Files, pieces, and piece hashes aren't the full story—we can go further by breaking down pieces into blocks. A block is a part of a piece, and we can fully define a block by the index of the piece it's part of, its byte offset within the piece, and its length. When we make requests for data from peers, we are actually requesting blocks. A block is usually 16KB large, meaning that a single 256 KB piece might actually require 16 requests.

A peer is supposed to sever the connection if they receive a request for a block larger than 16KB. However, based on my experience, they're often perfectly happy to satisfy requests up to 128KB. I only got moderate gains in overall speed with larger block sizes, so it's probably better to stick with the spec.

Pipelining

Network round-trips are expensive, and requesting each block one by one will absolutely tank the performance of our download. Therefore, it's important to pipeline our requests such that we keep up a constant pressure of some number of unfulfilled requests. This can increase the throughput of our connection by an order of magnitude.

Two email threads simulating peer connections. The thread on the left shows a request followed by a reply, repeated three times. The thread on the left sends three requests, and receives three replies in quick succession.

Classically, BitTorrent clients kept a queue of five pipelined requests, and that's the value I'll be using. I found that increasing it can up to double the speed of a download. Newer clients use an adaptive queue size to better accommodate modern network speeds and conditions. This is definitely a parameter worth tweaking, and it's pretty low hanging fruit for future performance optimization.

// MaxBlockSize is the largest number of bytes a request can ask for
+const MaxBlockSize = 16384
+
+// MaxBacklog is the number of unfulfilled requests a client can have in its pipeline
+const MaxBacklog = 5
+
+func attemptDownloadPiece(c *client.Client, pw *pieceWork) ([]byte, error) {
+    state := pieceProgress{
+        index:  pw.index,
+        client: c,
+        buf:    make([]byte, pw.length),
+    }
+
+    // Setting a deadline helps get unresponsive peers unstuck.
+    // 30 seconds is more than enough time to download a 262 KB piece
+    c.Conn.SetDeadline(time.Now().Add(30 * time.Second))
+    defer c.Conn.SetDeadline(time.Time{}) // Disable the deadline
+
+    for state.downloaded < pw.length {
+        // If unchoked, send requests until we have enough unfulfilled requests
+        if !state.client.Choked {
+            for state.backlog < MaxBacklog && state.requested < pw.length {
+                blockSize := MaxBlockSize
+                // Last block might be shorter than the typical block
+                if pw.length-state.requested < blockSize {
+                    blockSize = pw.length - state.requested
+                }
+
+                err := c.SendRequest(pw.index, state.requested, blockSize)
+                if err != nil {
+                    return nil, err
+                }
+                state.backlog++
+                state.requested += blockSize
+            }
+        }
+
+        err := state.readMessage()
+        if err != nil {
+            return nil, err
+        }
+    }
+
+    return state.buf, nil
+}
+

main.go

This is a short one. We're almost there.

package main
+
+import (
+    "log"
+    "os"
+
+    "github.com/veggiedefender/torrent-client/torrentfile"
+)
+
+func main() {
+    inPath := os.Args[1]
+    outPath := os.Args[2]
+
+    tf, err := torrentfile.Open(inPath)
+    if err != nil {
+        log.Fatal(err)
+    }
+
+    err = tf.DownloadToFile(outPath)
+    if err != nil {
+        log.Fatal(err)
+    }
+}
+

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 new file mode 100644 index 000000000..171e5cf9c --- /dev/null +++ b/guides/unfamiliar-codebase.html @@ -0,0 +1,12 @@ +Unfamiliar Codebase
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 new file mode 100644 index 000000000..8de46de29 --- /dev/null +++ b/guides/what-are-web-vitals.html @@ -0,0 +1,12 @@ +What are Web Vitals?
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 new file mode 100644 index 000000000..a4b8bc591 --- /dev/null +++ b/guides/what-is-internet.html @@ -0,0 +1,24 @@ +How does the internet work?
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 new file mode 100644 index 000000000..9a03402de --- /dev/null +++ b/guides/what-is-sli-slo-sla.html @@ -0,0 +1,12 @@ +SLIs, SLOs and SLAs
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 new file mode 100644 index 000000000..91d7a85dd --- /dev/null +++ b/guides/why-build-it-and-they-will-come-wont-work-anymore.html @@ -0,0 +1,17 @@ +Build it and they will come?
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 new file mode 100644 index 000000000..e0ab47bb0 --- /dev/null +++ b/index.html @@ -0,0 +1,6 @@ +Developer Roadmaps
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 2022

Backend

Step by step guide to becoming a backend developer in 2022

DevOps

Step by step guide for DevOps or operations role in 2022

React

Step by step guide to become a React Developer in 2022

Angular

Step by step guide to become a Angular Developer in 2022

Android

Step by step guide to becoming an Android Developer in 2022

Python

Step by step guide to becoming a Python Developer in 2022

Go

Step by step guide to becoming a Go developer in 2022

Java

Step by step guide to becoming a Java Developer in 2022

DBA

Step by step guide to become a PostgreSQL DBA in 2022

AWS

Step by step guide to learn AWS in 2022

Upcoming

QA

Step by step guide to becoming a modern QA Engineer in 2022

Upcoming

Video Explanations

Queue Data Structure
4 minutes
Stack Data Structure
5 minutes
Linked List Data Structure
11 minutes
All about Array Data Structure
10 minutes
What are Data Structures?
1 minute
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
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 new file mode 100644 index 000000000..8f36bf9b9 --- /dev/null +++ b/java.html @@ -0,0 +1,12 @@ +Learn to become a modern Java developer
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 2022

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 new file mode 100644 index 000000000..56668b404 --- /dev/null +++ b/java/interactive.html @@ -0,0 +1,6 @@ +Learn to become a modern Java developer
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 2022

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 new file mode 100644 index 000000000..caeb64a05 --- /dev/null +++ b/java/java.html @@ -0,0 +1,6 @@ +Learn to become a modern Java developer
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 new file mode 100644 index 000000000..0784a8402 --- /dev/null +++ b/java/resources.html @@ -0,0 +1,16 @@ +Learn to become a modern Java developer
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 2022

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 new file mode 100644 index 000000000..b7a0c73e4 --- /dev/null +++ b/postgresql-dba.html @@ -0,0 +1,20 @@ +DBA Roadmap: Learn to become a database administrator with PostgreSQL
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 2022

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 new file mode 100644 index 000000000..fc2d7fbbc --- /dev/null +++ b/postgresql-dba/interactive.html @@ -0,0 +1,6 @@ +DBA Roadmap: Learn to become a database administrator with PostgreSQL
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 2022

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 new file mode 100644 index 000000000..d6f3a9fd6 --- /dev/null +++ b/postgresql-dba/postgresql-dba.html @@ -0,0 +1,6 @@ +DBA Roadmap: Learn to become a database administrator with PostgreSQL
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 new file mode 100644 index 000000000..2be7a6ab6 --- /dev/null +++ b/postgresql-dba/resources.html @@ -0,0 +1,16 @@ +DBA Roadmap: Learn to become a database administrator with PostgreSQL
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 2022

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 a30ccb365..5345ce317 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 new file mode 100644 index 000000000..d661a2e14 --- /dev/null +++ b/python.html @@ -0,0 +1,12 @@ +Learn to become a modern Python developer
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 2022

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 new file mode 100644 index 000000000..21c9607da --- /dev/null +++ b/python/interactive.html @@ -0,0 +1,6 @@ +Learn to become a modern Python developer
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 2022

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 new file mode 100644 index 000000000..d8fb48bf2 --- /dev/null +++ b/python/python.html @@ -0,0 +1,6 @@ +Learn to become a modern Python developer
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 new file mode 100644 index 000000000..9d3d905a7 --- /dev/null +++ b/python/resources.html @@ -0,0 +1,16 @@ +Learn to become a modern Python developer
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 2022

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 new file mode 100644 index 000000000..8d6615b85 --- /dev/null +++ b/qa.html @@ -0,0 +1,16 @@ +QA Roadmap: Learn to become a modern QA engineer
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 2022

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 new file mode 100644 index 000000000..91c6107c6 --- /dev/null +++ b/qa/interactive.html @@ -0,0 +1,6 @@ +QA Roadmap: Learn to become a modern QA engineer
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 2022

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 new file mode 100644 index 000000000..2cfe876a5 --- /dev/null +++ b/qa/qa.html @@ -0,0 +1,6 @@ +QA Roadmap: Learn to become a modern QA engineer
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 new file mode 100644 index 000000000..a369e3a94 --- /dev/null +++ b/qa/resources.html @@ -0,0 +1,16 @@ +QA Roadmap: Learn to become a modern QA engineer
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 2022

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 new file mode 100644 index 000000000..210fb9285 --- /dev/null +++ b/react.html @@ -0,0 +1,12 @@ +React Developer Roadmap: Learn to become a React developer
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 2022.

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 new file mode 100644 index 000000000..0fbe442a3 --- /dev/null +++ b/react/interactive.html @@ -0,0 +1,6 @@ +React Developer Roadmap: Learn to become a React developer
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 2022.

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 new file mode 100644 index 000000000..3789d8c4a --- /dev/null +++ b/react/react.html @@ -0,0 +1,6 @@ +React Developer Roadmap: Learn to become a React developer
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 new file mode 100644 index 000000000..2b559f71e --- /dev/null +++ b/react/resources.html @@ -0,0 +1,16 @@ +React Developer Roadmap: Learn to become a React developer
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 2022.

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 new file mode 100644 index 000000000..80da2a48d --- /dev/null +++ b/roadmaps.html @@ -0,0 +1,6 @@ +Developer Roadmaps
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 2022

Backend

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

DevOps

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

React

Everything that is there to learn about React and the ecosystem in 2022.

Angular

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

Android

Step by step guide to becoming an Android developer in 2022

Python

Step by step guide to becoming a Python developer in 2022

Go

Step by step guide to becoming a Go developer in 2022

Java

Step by step guide to becoming a Java developer in 2022

DBA

Step by step guide to becoming a modern PostgreSQL DB Administrator in 2022

AWS

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

Upcoming

QA

Steps to follow in order to become a modern QA Engineer in 2022

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 be11322fc..240a197e8 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 701dcaa07..e12a63a40 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,73 +3,73 @@ https://roadmap.sh/frontend monthly - 2022-02-14T23:55:31.259Z + 2022-02-15T00:09:39.437Z 1.0 https://roadmap.sh/backend monthly - 2022-02-14T23:55:31.263Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/devops monthly - 2022-02-14T23:55:31.263Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/react monthly - 2022-02-14T23:55:31.263Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/angular monthly - 2022-02-14T23:55:31.263Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/android monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/python monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/golang monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/java monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.441Z 1.0 https://roadmap.sh/postgresql-dba monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.445Z 1.0 https://roadmap.sh/aws monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.445Z 1.0 https://roadmap.sh/qa monthly - 2022-02-14T23:55:31.267Z + 2022-02-15T00:09:39.445Z 1.0 @@ -243,43 +243,43 @@ https://roadmap.sh/about monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 0.8 https://roadmap.sh/guides monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 1.0 https://roadmap.sh/ monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 1.0 https://roadmap.sh/roadmaps monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 1.0 https://roadmap.sh/signup monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 0.9 https://roadmap.sh/thanks monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 0.5 https://roadmap.sh/watch monthly - 2022-02-14T23:55:31.271Z + 2022-02-15T00:09:39.453Z 1.0 \ No newline at end of file diff --git a/terms.html b/terms.html index 66de83c6b..fe6ed623e 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 92562c9b1..355ee9c11 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

  • Ash P
  • Reset
  • Ricardo Lino
  • Yan Valuyskiy
  • Josue V
  • Novecento88
  • Gerald-Markus Zabos
  • Ahmed Bebars
  • Hassan Abudu
  • Stuart Bowles
  • Joseph Jacks

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

  • Ash P
  • Reset
  • Ricardo Lino
  • Yan Valuyskiy
  • Josue V
  • Novecento88
  • Gerald-Markus Zabos
  • Ahmed Bebars
  • Hassan Abudu
  • Stuart Bowles
  • Joseph Jacks

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 new file mode 100644 index 000000000..50df4faa8 --- /dev/null +++ b/watch.html @@ -0,0 +1,6 @@ +Watch
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe

Watch

Graphical video demonstrations on development topics

NewFebruary 14, 2022

Queue Data Structure

Learn everything you need to know about the queue data structure

NewFebruary 7, 2022

Stack Data Structure

Learn everything you need to know about the stack data structure

January 31, 2022

Linked List Data Structure

Learn everything you need to know about linked list data structure

January 9, 2022

All about Array Data Structure

Learn everything you need to know about array data structure

December 12, 2021

What are Data Structures?

Learn about the different data structures in this illustrated series

November 30, 2021

What is Eventual Consistency?

Learn about the different consistency models in distributed systems

November 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 new file mode 100644 index 000000000..7c8e7c184 --- /dev/null +++ b/watch/acid-explained.html @@ -0,0 +1,10 @@ +ACID Explained
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 new file mode 100644 index 000000000..c93d20f16 --- /dev/null +++ b/watch/all-about-http-caching.html @@ -0,0 +1,10 @@ +All about HTTP Caching
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/array-structure.html b/watch/array-structure.html new file mode 100644 index 000000000..eb8f9644b --- /dev/null +++ b/watch/array-structure.html @@ -0,0 +1,10 @@ +All about Array Data Structure
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·January 9, 2022·Watch on YouTube

All about Array Data Structure

Learn everything you need to know about array data structure

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 new file mode 100644 index 000000000..e47b31119 --- /dev/null +++ b/watch/arrays-and-objects-in-javascript.html @@ -0,0 +1,10 @@ +Arrays and Objects in JavaScript
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 new file mode 100644 index 000000000..658e4b4a3 --- /dev/null +++ b/watch/async-javascript.html @@ -0,0 +1,10 @@ +Asynchronous JavaScript
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 new file mode 100644 index 000000000..ba03abeb1 --- /dev/null +++ b/watch/big-o-notation.html @@ -0,0 +1,10 @@ +Big O Notation
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 new file mode 100644 index 000000000..d637ea264 --- /dev/null +++ b/watch/content-delivery-networks.html @@ -0,0 +1,10 @@ +Content Delivery Networks
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 new file mode 100644 index 000000000..fd790b9b1 --- /dev/null +++ b/watch/dns-explained.html @@ -0,0 +1,10 @@ +DNS and how does it work?
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 new file mode 100644 index 000000000..a8077e999 --- /dev/null +++ b/watch/dns-records.html @@ -0,0 +1,10 @@ +DNS Records
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 new file mode 100644 index 000000000..956d33281 --- /dev/null +++ b/watch/floating-point-arithmetic.html @@ -0,0 +1,10 @@ +Floating Point Arithmetic
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 new file mode 100644 index 000000000..d1b96f0dc --- /dev/null +++ b/watch/freeze-and-seal-objects-in-javascript.html @@ -0,0 +1,10 @@ +Freeze and Seal in JavaScript
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 new file mode 100644 index 000000000..289ed176e --- /dev/null +++ b/watch/how-to-use-css-variables.html @@ -0,0 +1,10 @@ +How to use CSS Variables?
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 new file mode 100644 index 000000000..aba986859 --- /dev/null +++ b/watch/how-to-use-github-actions.html @@ -0,0 +1,10 @@ +Automate with GitHub Actions
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 new file mode 100644 index 000000000..8d74b76f9 --- /dev/null +++ b/watch/javascript-fetch-api.html @@ -0,0 +1,10 @@ +JavaScript Fetch API
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/linked-list-data-structure.html b/watch/linked-list-data-structure.html new file mode 100644 index 000000000..fa124e852 --- /dev/null +++ b/watch/linked-list-data-structure.html @@ -0,0 +1,10 @@ +Linked List Data Structure
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·January 31, 2022·Watch on YouTube

Linked List Data Structure

Learn everything you need to know about linked list data structure

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 new file mode 100644 index 000000000..310862164 --- /dev/null +++ b/watch/load-balancers-101.html @@ -0,0 +1,10 @@ +Load Balancers 101
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 new file mode 100644 index 000000000..38f2b1440 --- /dev/null +++ b/watch/osi-model.html @@ -0,0 +1,10 @@ +OSI Model Explained
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 new file mode 100644 index 000000000..e5ac8885c --- /dev/null +++ b/watch/practical-intro-to-react.html @@ -0,0 +1,19 @@ +Practical Introduction to React
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 new file mode 100644 index 000000000..a17719949 --- /dev/null +++ b/watch/promises-in-javascript.html @@ -0,0 +1,10 @@ +All about Promises in JavaScript
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/queue-data-structure.html b/watch/queue-data-structure.html new file mode 100644 index 000000000..fcca9e211 --- /dev/null +++ b/watch/queue-data-structure.html @@ -0,0 +1,10 @@ +Queue Data Structure
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·February 14, 2022·Watch on YouTube

Queue Data Structure

Learn everything you need to know about the queue data structure

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 new file mode 100644 index 000000000..f6f0501fb --- /dev/null +++ b/watch/random-number-generators.html @@ -0,0 +1,10 @@ +Random Number Generators
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 new file mode 100644 index 000000000..7ae375c40 --- /dev/null +++ b/watch/scaling-the-unscalable.html @@ -0,0 +1,10 @@ +Scaling the Unscalable
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 new file mode 100644 index 000000000..e360cd60e --- /dev/null +++ b/watch/ssh-ssl-tls.html @@ -0,0 +1,10 @@ +SSH vs TLS vs SSL
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/stack-data-structure.html b/watch/stack-data-structure.html new file mode 100644 index 000000000..e3f7e8a5b --- /dev/null +++ b/watch/stack-data-structure.html @@ -0,0 +1,10 @@ +Stack Data Structure
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·February 7, 2022·Watch on YouTube

Stack Data Structure

Learn everything you need to know about the stack data structure

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 new file mode 100644 index 000000000..4a3bc0e53 --- /dev/null +++ b/watch/system-design-101.html @@ -0,0 +1,10 @@ +System Design 101
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 new file mode 100644 index 000000000..73cec9ba5 --- /dev/null +++ b/watch/tcp-ip-model.html @@ -0,0 +1,10 @@ +TCP/IP Model Explained
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 new file mode 100644 index 000000000..50ff10e55 --- /dev/null +++ b/watch/transport-protocols-tcp-vs-udp.html @@ -0,0 +1,10 @@ +Transport Protocols: TCP vs UDP
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-are-data-structures.html b/watch/what-are-data-structures.html new file mode 100644 index 000000000..d054373ae --- /dev/null +++ b/watch/what-are-data-structures.html @@ -0,0 +1,10 @@ +What are Data Structures?
We now have a YouTube Channel. Subscribe for the video content.
roadmap.sh
Roadmaps
Subscribe
Kamran Ahmed·December 12, 2021·Watch on YouTube

What are Data Structures?

Learn about the different data structures in this illustrated series

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 new file mode 100644 index 000000000..b214e980a --- /dev/null +++ b/watch/what-is-cap-theorem.html @@ -0,0 +1,10 @@ +What is CAP Theorem?
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 new file mode 100644 index 000000000..aed4c941d --- /dev/null +++ b/watch/what-is-dependency-injection.html @@ -0,0 +1,10 @@ +What is Dependency Injection?
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 new file mode 100644 index 000000000..d97b31930 --- /dev/null +++ b/watch/what-is-dom-shadow-dom-virtual-dom.html @@ -0,0 +1,10 @@ +DOM, Shadow DOM, Virtual DOM
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 new file mode 100644 index 000000000..6f01ba68c --- /dev/null +++ b/watch/what-is-eventual-consistency.html @@ -0,0 +1,10 @@ +What is Eventual Consistency?
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 new file mode 100644 index 000000000..5eb98a78f --- /dev/null +++ b/watch/yaml-in-depth.html @@ -0,0 +1,10 @@ +YAML in Depth
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